对象池的可视化目的是方便开发者实时观察资源的调用释放过程,不用再加断点调试,对用户没用,因此使用##if UNITY_EDITOR宏定义来限定只在Editor下执行。
PoolSystem的修改:
/// <summary>
/// 初始化一个GameObject类型的对象池类型
/// </summary>
/// <param name="assetName">资源名称</param>
/// <param name="maxCapacity">容量限制,超出时会销毁而不是进入对象池,-1代表无限</param>
/// <param name="defaultCapacity">默认容量,填写会向池子中放入对应数量的对象,0代表不预先放入</param>
/// <param name="prefab">填写默认容量时预先放入的对象</param>
public static void InitGameObjectPool(string assetName, int maxCapacity = -1,GameObject prefab = null,int defaultCapacity = 0)
{
GameObjectPoolModule.InitObjectPool(assetName, maxCapacity,prefab,defaultCapacity);
#if UNITY_EDITOR
if (JKFrameRoot.EditorEventModule != null)
JKFrameRoot.EditorEventModule.EventTrigger<string, int>("OnInitGameObjectPool", assetName, defaultCapacity);
#endif
}