Просмотр исходного кода

Entity在IsCreated之后,序列化时才可以清空componentsDB,childrenDB使用component 和 children对其进行再次赋值。 (#580)

缓存服中Entity从数据库读出未赋值IScene,component 和 children 并不会被赋值。如果此时对其进行序列化会调用Entity的BeginInit 清空componentsDB,childrenDB,导致数据丢失。
zzGamer666 1 год назад
Родитель
Сommit
1eb10e9e54
1 измененных файлов с 2 добавлено и 0 удалено
  1. 2 0
      Unity/Assets/Scripts/Core/Entity/Entity.cs

+ 2 - 0
Unity/Assets/Scripts/Core/Entity/Entity.cs

@@ -941,6 +941,8 @@ namespace ET
         {
             EntitySystemSingleton.Instance.Serialize(this);
             
+            if (!this.IsCreated) return;
+
             this.componentsDB?.Clear();
             if (this.components != null && this.components.Count != 0)
             {