瀏覽代碼

修复一个bug,Entity在回收到池中不能再设置status字段,因为其它线程可能取出了Entity

tanghai 2 年之前
父節點
當前提交
232ae13a90
共有 1 個文件被更改,包括 5 次插入5 次删除
  1. 5 5
      Unity/Assets/Scripts/Core/Entity/Entity.cs

+ 5 - 5
Unity/Assets/Scripts/Core/Entity/Entity.cs

@@ -534,12 +534,12 @@ namespace ET
 
 
             base.Dispose();
             base.Dispose();
             
             
-            if (this.IsFromPool)
-            {
-                ObjectPool.Instance.Recycle(this);
-            }
+            // 把status字段其它的status标记都还原
+            bool isFromPool = this.IsFromPool;
+            this.status = EntityStatus.None;
+            this.IsFromPool = isFromPool;
             
             
-            status = EntityStatus.None;
+            ObjectPool.Instance.Recycle(this);
         }
         }
 
 
         private void AddToComponents(Entity component)
         private void AddToComponents(Entity component)