소스 검색

ObjectPool增加Clear方法,在切换场景时可以清空下对象池

tanghai 7 년 전
부모
커밋
a17a4c450c
2개의 변경된 파일26개의 추가작업 그리고 0개의 파일을 삭제
  1. 13 0
      Unity/Assets/Hotfix/Base/Object/ObjectPool.cs
  2. 13 0
      Unity/Assets/Model/Base/Object/ObjectPool.cs

+ 13 - 0
Unity/Assets/Hotfix/Base/Object/ObjectPool.cs

@@ -45,5 +45,18 @@ namespace ETHotfix
 			}
 			queue.Enqueue(obj);
 		}
+		
+		public void Clear()
+		{
+			foreach (var kv in this.dictionary)
+			{
+				foreach (Component component in kv.Value)
+				{
+					component.IsFromPool = false;
+					component.Dispose();
+				}
+			}
+			this.dictionary.Clear();
+		}
 	}
 }

+ 13 - 0
Unity/Assets/Model/Base/Object/ObjectPool.cs

@@ -45,5 +45,18 @@ namespace ETModel
             }
             queue.Enqueue(obj);
         }
+
+	    public void Clear()
+	    {
+		    foreach (var kv in this.dictionary)
+		    {
+			    foreach (Component component in kv.Value)
+			    {
+				    component.IsFromPool = false;
+				    component.Dispose();
+			    }
+		    }
+		    this.dictionary.Clear();
+	    }
     }
 }