Ver Fonte

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

缓存服中Entity从数据库读出未赋值IScene,component 和 children 并不会被赋值。如果此时对其进行序列化会调用Entity的BeginInit 清空componentsDB,childrenDB,导致数据丢失。
zzGamer666 há 1 ano atrás
pai
commit
1eb10e9e54
1 ficheiros alterados com 2 adições e 0 exclusões
  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)
             {