IEnumerator nextRoomCoroutine(CollisionBehaviour cb) { SMovableObject mainRole = MainGameData.MainRole; mainRole.enabled = false; mainRole.SetKinematic(true); unregisterEvent(); mCurRoom.OnExitRoom(); //try get next room DRoom nextRoom = mCurRoom.GetJointRoom(cb); if (nextRoom == null) { //TODO: Be Random After GameObject go = Instantiate(Rooms[0]) as GameObject; nextRoom = go.GetComponent <DRoom>(); nextRoom.Init(); CollisionBehaviour nextCb = nextRoom.AlignmentOtherRoom(cb, mCurRoom.CenterPos); mCurRoom.JointRoom(cb, nextRoom); nextRoom.JointRoom(nextCb, mCurRoom); } StartCoroutine(mainRoleCutScene(nextRoom.CenterPos)); yield return(StartCoroutine(SCameraMgr.Instance.moveToPos(nextRoom.CenterPos))); while (mRoleCurSceneEnable == true) { yield return(null); } mCurRoom = nextRoom; registerEvent(); mCurRoom.OnEnterRoom(); mainRole.SetKinematic(false); mainRole.enabled = true; }
// Use this for initialization void Start() { mInput = this.gameObject.AddComponent <SInput>(); InputReceiver inputRecObj = MainRoleModel.AddComponent <InputReceiver>(); SMovableObject moveObj = MainRoleModel.AddComponent <SMovableObject>(); inputRecObj.MovableObject = moveObj; mInput.InputReceiver = inputRecObj; //Camera init gameObject.AddComponent <SCameraMgr>(); }
IEnumerator mainRoleCutScene(Vector3 pos) { mRoleCurSceneEnable = true; SMovableObject mainRole = MainGameData.MainRole; while ((mainRole.CurPos - pos).sqrMagnitude > 0.01f) { mainRole.MoveTo(Vector3.Lerp(mainRole.CurPos, pos, 0.1f)); yield return(null); } mainRole.MoveTo(pos); mRoleCurSceneEnable = false; }
// Use this for initialization void Start() { mInput = this.gameObject.AddComponent <SInput>(); InputReceiver inputRecObj = MainRoleModel.AddComponent <InputReceiver>(); SMovableObject moveObj = MainRoleModel.AddComponent <SMovableObject>(); inputRecObj.MovableObject = moveObj; mInput.InputReceiver = inputRecObj; //Camera init gameObject.AddComponent <SCameraMgr>(); //Dungeon init GameObject go = Instantiate(DungeonMgrPrefab) as GameObject; Common.changGOParent(go, gameObject); moveObj.MoveTo(DungeonMgr.Instance.CurRoomPos()); //MainGameData init MainGameData.MainRole = moveObj; }