/**********************************************************************************/ // в FixedUpdate мы проверяем некоторые состояния зависящие от отклика игрока // /**********************************************************************************/ private void FixedUpdate() { // в конце миссии и дожидаемся окончания диалогов - и производим запуск следующей(перезапуск текущей) миссии if (m_state == CM_STATE.WAIT_FOR_DIALOG_CLOSE) { if (CompanyDialogManager.GetInstance().GetIsReady()) { if (m_missionState == MISSION_STATE.COMPLITED) { // переходим на следующий уровень, если это возможно m_levelNumber++; if (m_levelNumber < m_companyMissionData.missions.Length) { SceneManager.LoadScene("SingleGame", LoadSceneMode.Single); } else { // если достигли конца компании - выходим в главное меню SceneManager.LoadScene("MainMenu", LoadSceneMode.Single); } } else if (m_missionState == MISSION_STATE.FAILED) { // перезапускаем текущий уровень SceneManager.LoadScene("SingleGame", LoadSceneMode.Single); } else { Debug.LogError("Wrong mission state :" + m_missionState.ToString() + " !"); } m_state = CM_STATE.READY; } } }
/**********************************************************************************************/ // Загружаем все данные из файлов настройки (m_defaultSettingsDataFile) // /**********************************************************************************************/ void LoadSettingsFromFile() { m_state = CM_STATE.INITIALIZATION; string filePath = Path.Combine(Application.streamingAssetsPath, m_defaultSettingsDataFile); if (File.Exists(filePath)) { string dataAsJson = File.ReadAllText(filePath); m_companyMissionData = JsonUtility.FromJson <CompanyDescriptor>(dataAsJson); m_state = CM_STATE.READY; } else { Debug.LogError("Cannot find file!"); } }
/**********************************************************************************/ // функция извещающая CompanyManager о том, что игрок проиграл парию // /**********************************************************************************/ public void OnGoalsFailed() { CompanyDialogManager.GetInstance().OnMissionFailed(); m_missionState = MISSION_STATE.FAILED; m_state = CM_STATE.WAIT_FOR_DIALOG_CLOSE; }
/**********************************************************************************/ // функция извещающая CompanyManager о том, что все цели игры были уничтожены // /**********************************************************************************/ public void OnGoalsAchieved() { CompanyDialogManager.GetInstance().OnMissionComplite(); m_missionState = MISSION_STATE.COMPLITED; m_state = CM_STATE.WAIT_FOR_DIALOG_CLOSE; }