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

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

tanghai 2 лет назад
Родитель
Сommit
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();
             
-            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)