public void Start() { mInstanceBase = InstanceBaseManager.instance.Find(InstanceID); if (null == mInstanceBase) { Logger.LogError($"找不到副本配置 id -> {InstanceID}"); return; } var tmpUnitCtrl = Game.ControllerMgr.Get <UnitController>(); Game.WindowsMgr.ShowWindow <FadeWnd, bool, bool>(true, false); Game.TimerMgr.AddTimer(0.5f, obj => { Game.WindowsMgr.CloseWindow <InstanceWnd>(); mLocalPlayer = new LocalPlayer(); mLocalPlayer.Init(1003, 1); mLocalPlayer.SetPosition(new Vector3(1000, 0, 0)); GameObject.DontDestroyOnLoad(mLocalPlayer.UGameObject); ACT.ActionSystem.Instance.ActUnitMgr.Add(mLocalPlayer); ACT.ActionSystem.Instance.ActUnitMgr.LocalPlayer = mLocalPlayer; tmpUnitCtrl.SetLocalPlayer(mLocalPlayer); Game.WindowsMgr.ShowWindow <FightMainWnd>(); SceneLoader.Instance.LoadSceneAsync(mInstanceBase.SceneName, OnSceneLoaded); }, null); }
void OnSceneLoaded() { Game.WindowsMgr.ShowWindow <FadeWnd, bool, bool>(false, true); GameObject tmpSceneMaskGo = GameObject.Find("SceneMask"); mSceneMaskSprs.Clear(); if (null != tmpSceneMaskGo) { for (int i = 0, max = tmpSceneMaskGo.transform.childCount; i < max; ++i) { SpriteRenderer tmpSprRender = tmpSceneMaskGo.transform.GetChild(i).GetComponent <SpriteRenderer>(); if (null != tmpSprRender) { mSceneMaskSprs.Add(tmpSprRender); tmpSprRender.color = Color.clear; } } } GameObject tmpInstanceRoot = GameObject.Find("InstanceRoot"); mTriggerCount = 0; GameObject tmpTransferGo = Utility.GameObj.Find(tmpInstanceRoot, "Transfer"); if (tmpTransferGo) { mTriggerCount += tmpTransferGo.transform.childCount; for (int i = 0, max = tmpTransferGo.transform.childCount; i < max; ++i) { TriggerListener.Get(tmpTransferGo.transform.GetChild(i).gameObject).OnEnter = OnTriggerEnterTransfer; } } GameObject tmpTriggerGo = Utility.GameObj.Find(tmpInstanceRoot, "Trigger"); if (tmpTriggerGo) { mTriggerCount += tmpTriggerGo.transform.childCount; for (int i = 0, max = tmpTriggerGo.transform.childCount; i < max; ++i) { TriggerListener.Get(tmpTriggerGo.transform.GetChild(i).gameObject).OnEnter = OnTriggerEnterTrigger; } } GameObject tmpBornPosGo = Utility.GameObj.Find(tmpInstanceRoot, "BornPos"); if (tmpBornPosGo) { mLocalPlayer.SetPosition(tmpBornPosGo.transform.position); mLocalPlayer.Controller.RepositionCamera(); } }