对象池的可视化目的是方便开发者实时观察资源的调用释放过程,不用再加断点调试,对用户没用,因此使用##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
        }