Example #1
0
        /// <summary>
        /// 销毁场景数据
        /// </summary>
        void DestroyScene(bool clearUI = true)
        {
            DialogManager.Instance.Reset();

            // 保存客户端需要保存的玩家信息
            LocalPlayerManager.Instance.OnDestroyScene();

            // 销毁所有场景不需要的数据
            if (ActorManager.Instance != null)
            {
                ActorManager.Instance.OnDestroyScene();
            }

            InterObjectManager.Instance.DestroyAllAndBoss();

            Game.Instance.SetLocalPlayer(null);

            CullManager.GetInstance().Reset();

            if (ObjCachePoolMgr.Instance != null)
            {
                ObjCachePoolMgr.Instance.OnDestroyScene(clearUI);
            }

            ObjInstHelp.GetInstance().ClearInstedObject();
        }
Example #2
0
        /// <summary>
        /// 当特效文件加载完毕后,进行相应的实例化处理
        /// </summary>
        void OnObjectLoaded(Object obj)
        {
            // 设置特效Object
            mEffectPrefab = obj;

            // 获取特效初始化回调函数列表,实例化特效Object
            for (int i = 0; i < mInitCallback.Count; ++i)
            {
                var callBack  = mInitCallback[i];
                var newEffect = ObjInstHelp.GetInstance().InstantiateReuse(mEffectPrefab, mInstMaxCount);// 限制最大可实例物体的数量
                callBack(newEffect);
            }

            mInitCallback.Clear();
        }
Example #3
0
        /// <summary>
        /// 实例化特效物体
        /// </summary>
        public void CreateInstance(InitFunc callBack)
        {
            if (mIsDestroy)
            {
                return;
            }

            // 如果特效文件已经加载完成,则直接进行实例化
            if (mEffectPrefab != null)
            {
                if (callBack != null)
                {
                    var newEffect = ObjInstHelp.GetInstance().InstantiateReuse(mEffectPrefab, mInstMaxCount);
                    callBack(newEffect);
                }
            }
            // 未加载完成则将初始化回调函数添加到列表中,等到加载完毕后再进行调用
            else
            {
                mInitCallback.Add(callBack);
            }
        }