void StartGame() { Assert.That(_state == GamingStates.WaitingToStart || _state == GamingStates.GameOver); _player.Position = Vector3.zero; _elapsedTime = 0; _player.ChangeState(PlayerStates.Moving); _state = GamingStates.Playing; _enemySpawner.Start(); }
/// <summary> /// 从存档中读取数据后需进行的初始化 /// </summary> public void Start() { if (haveRole) { playerManager.Start(); enemyManager.Start(); //存档中的位置,或初始位置 GameManager.instance.rootMassageNode.SendEvent(MassageList.loadMap, "Floor_1"); } }
public void JumpEnd(bool bDie) { //점프 모션이 끝나면 호출 Transform tr = m_PlayerManager.GetCharTR(); if (bDie) { //캐릭터가 죽었을 시에는 현재 남아있는 캐릭터 중 하나로 자동 교체된다. m_EnemyMangaer.Stop(); m_iTmpIndex = m_PlayerManager.DontDie(); } if (m_iTmpIndex >= 0) { int[] iarr = GameManager.instance.ReturnPlayerList(); int iCurList = GameManager.instance.ReturnCurPlayer(); if (m_Change == null) { GameObject UI = GameObject.Find("GameUI").transform.Find("PlayerKey").gameObject; for (int i = 0; i < 2; i++) { GameObject Button = UI.transform.GetChild(i + 4).gameObject; if (Button.activeSelf) { m_Change = Button.GetComponent <ChangeButton>(); break; } } } m_Change.Change(iarr[iCurList], iCurList, m_PlayerManager.GetPlayerData(PLAYER_DATA.PLAYER_CUR_HP), m_PlayerManager.GetPlayerData(PLAYER_DATA.PLAYER_MAX_HP), m_PlayerManager.GetPlayerData(PLAYER_DATA.PLAYER_CUR_SP), m_PlayerManager.GetPlayerData(PLAYER_DATA.PLAYER_MAX_SP)); //캐릭터 버튼 체인지 및 쿨타임 실행 m_PlayerManager.PlayerSet(m_iTmpIndex, tr.position, tr.rotation, JumpEnd); //캐릭터의 위치와 교대하고 m_EnemyMangaer.TrSetting(m_PlayerManager.GetCharTR()); //에너미의 타겟을 새로 설정하고 m_EnemyMangaer.Start(); //코루틴 스타트 m_CallBack(m_PlayerManager.GetCharTR()); //카메라 콜백 함수 재선언 m_bChanging = true; m_Change = null; } else { PlayerDie(); } }