예제 #1
0
        void OnDisable()
        {
            MainUICamera.getInstance().UnRegisterGesture();
            UIMainScene.getInstance().OnDisable();
            if (playerEntity != null)
            {
                playerEntity.removeEventListener(PlayerEntity.MainNinjaChangeEvent, UpdateActor);
            }
            KHUIManager inst = KHUIManager.getInstance();

            if (inst != null && inst.Dispatcher != null)
            {
                inst.Dispatcher.removeEventListener("OnOpenWindow", OnOpenOtherWindow);
                inst.Dispatcher.removeEventListener("OnCloseWindow", OnCloseOtherWindow);
            }

            mainModel.Dispatcher.removeEventListener(UIMainScene.EVT_REQ_SCENE_CHANGE_CHECK, OnReqSceneChangeCheckRecived);

            KHSceneSettingModel sceneSettingModel = KHPluginManager.Instance.GetModel(KHSceneSettingPlugin.pluginName) as KHSceneSettingModel;

            sceneSettingModel.Dispatcher.removeEventListener(KHSceneSettingModel.SELECT_SCENE_SETTING_EVT, OnRreshSceneSetting);
            sceneSettingModel.Dispatcher.removeEventListener(KHSceneSettingModel.PREVIEW_SCENE_SETTING_CANCEL_EVT, OnRreshSceneSetting);
            sceneSettingModel.Dispatcher.removeEventListener(KHSceneSettingModel.PREVIEW_SCENE_SETTING_EVT, OnRreshSceneSetting);

            UnReigstBuildingButtonClickEvtProc();
        }
예제 #2
0
        void Update()
        {
            MainUICamera.getInstance().update(Time.deltaTime);
            UIMainScene.getInstance().Update();

//			if (Input.GetKeyDown (KeyCode.A))
//			{
//				Debuger.Log("KeyCode........................................A");
//				//UIActivityTipView.ShowTip("ABC", "12345");
//				//KHPluginManager.Instance.SendMessage(UltimateKillPlugin.pluginName, UltimateKillZhanjiAndRewardOperation.OpenZhanjiRewardView);
//				//KHPluginManager.Instance.SendMessage(UltimateKillPlugin.pluginName, UltimateKillOperation.OpenRewardView);
//
//				UIShareMainCityView.TopName = KHUIManager.getInstance ().GetTopWindow ().name;
//				KHPluginManager.Instance.SendMessage(SharePlugin.PLUGIN_NAME, "ShowView", new ShowViewArgument(UIDef.SHARE_MAINCITY_VIEW, false, null));
//				//UIActivityTipView.ShowTipV2(KHDataManager.CONFIG.GetFeatureDefineTitle1(SystemConfigDef.Match), KHDataManager.CONFIG.GetFeatureDefineDes1(SystemConfigDef.Match),"");
//				//单触发定时器:Invoke(string method, int Secondtimes) 过Secondtimes 秒后触发method 函数,
//				//重复触发InvokeRepeating(string method, int Secondtimetowake, int Secondtimetonext)每Secondtimetonext触发下一次
//			}
        }
예제 #3
0
        private void DoRefereshSceneLoad()
        {
            MainSceneLoader.Instance.RefereshLoad((praScenePrefabGo, praIsDiff) =>
            {
                if ((praIsDiff) && (praScenePrefabGo != null) && !mIsDestroy)
                {
                    //如果处于隐藏状态, 则尝试切换
                    if (UIMainScene.getInstance().GetVisibleState() == false || forceToRefresh)
                    {
                        //Debuger.Log("来切换一把");
                        this.RefereshMainScene();

                        //更新忍者皮肤设置
                        this.UpdateActorPrefabSet(actorId, curActorCfg, CharacterPos);

                        forceToRefresh = false;
                    }
                }
            });
        }
예제 #4
0
 void OnDestroy()
 {
     mIsDestroy = true;
     MainSceneLoader.Instance.ClearUsingInf();
     UIMainScene.getInstance().ClearUIRef();
 }
예제 #5
0
        void RefereshMainScene()
        {
            var tMainModel = KHPluginManager.Instance.GetModel("MainUI") as MainUIModel;

            bool tSceneChanged = false;

            //找到当前是否已经存在的纹理层
            Transform tCurSceneInstTrans = null;

            for (int i = 0, max = this.SceneRoot.childCount; i < max; ++i)
            {
                Transform tTrans = this.SceneRoot.GetChild(i);
                if (tTrans.gameObject != this.sceneLogic && !tTrans.gameObject.name.Equals("IPX_BOUND"))
                {
                    if (null == tCurSceneInstTrans)
                    {
                        tCurSceneInstTrans = tTrans;
                    }
                    else
                    {
                        Debuger.LogError("场景层级结构错误, 有多个纹理层");
                    }
                }
            }

            //要销毁的旧场景
            GameObject tOldSceneTransToDestroy = null;

            //当前场景挂着的GameObject
            GameObject tCurSceneInstGo = (tCurSceneInstTrans != null) ? (tCurSceneInstTrans.gameObject) : (null);

            //当前场景所需 (must not null.)
            string tCurSceneResPath = MainSceneLoader.Instance.CurShouldUseSceneResPath();

            if (string.IsNullOrEmpty(tCurSceneResPath))
            {
                Debuger.LogError("当前场景资源无配置");
                return;
            }

            //当前实例指向
            string tCurUsingResPath = MainSceneLoader.Instance.CurUsingResPath;

            //如果当前所需场景和MainUi上已经挂接的实例不相同
            if (tCurSceneResPath != tCurUsingResPath)
            {
                //生成新场景, 此处必定保证非空
                GameObject tScenePrefab = MainSceneLoader.Instance.CurShouldUseSceneGo();
                if (tScenePrefab)
                {
                    KHResource.unLoadRes(tCurSceneResPath, null);
                    KHResource.unLoadRes(tCurUsingResPath, null);
                    GameObject tSceneInstance = GameObject.Instantiate(tScenePrefab) as GameObject;
                    //append
                    tSceneInstance.transform.parent        = this.SceneRoot;
                    tSceneInstance.transform.localPosition = Vector3.zero;
                    tSceneInstance.transform.localScale    = Vector3.one;

                    //销毁旧场景
                    tOldSceneTransToDestroy = tCurSceneInstGo;

                    tCurSceneInstGo = tSceneInstance;
                    MainSceneLoader.Instance.CurUsingResPath  = tCurSceneResPath;
                    MainSceneLoader.Instance.CurUsingInstance = tSceneInstance;

                    tSceneChanged = true;

                    Debuger.Log(string.Format("新场景加载完毕_ tCurSceneResPath:{0} | tCurUsingResPath:{1}",
                                              (tCurSceneResPath != null) ? tCurSceneResPath : "null", (tCurUsingResPath != null) ? tCurUsingResPath : "null"));
                }
                else
                {
                    Debuger.LogError("未读取到场景资源资源");
                    return;
                }
            }
            else
            {
                Debuger.Log(string.Format("场景实例不变_ {0}", (tCurUsingResPath != null) ? tCurUsingResPath : "null"));
                return;
            }

            SceneUIObject tSceneWarrper = new SceneUIObject();

            tSceneWarrper.AddScene(sceneLogic, true);
            if (tCurSceneInstGo != null)
            {
                tSceneWarrper.AddScene(tCurSceneInstGo);
                tSceneWarrper.SetCurrScene(tCurSceneInstGo);
                UIMainScene.getInstance()._initialize(tSceneWarrper);
            }

            //发出场景变换事件
            if (tSceneChanged)
            {
                tMainModel.Dispatcher.dispatchEvent(new KHEvent(MainUIModel.EVT_MAINSCNENE_CHANGED));
            }

            if (tOldSceneTransToDestroy != null)
            {
                GameObject.Destroy(tOldSceneTransToDestroy.gameObject);
            }
        }