private void StartGame() { // Spawn the player offscreen. SetPlayerDefaults locks it and prevents movement. // Player Object remains in the persistent scene, so we don't need to care // about what happens between scene loads... { m_goPlayerObjectReference = GameInstance.Instantiate(m_goPlayerPrefab, new Vector3(100, 100, 0), Quaternion.identity); GAssert.Assert(null != m_goPlayerObjectReference, "Unable to instantiate Player Object"); m_gcPlayerState = m_goPlayerObjectReference.GetComponent <PlayerState>(); GAssert.Assert(null != m_gcPlayerState, "Unable to get Player State"); m_gcPlayerController = m_goPlayerObjectReference.GetComponent <PlayerController>(); GAssert.Assert(null != m_gcPlayerController, "Unable to get Player Controller"); m_gcPlayerInventory = m_goPlayerObjectReference.GetComponent <PlayerInventory>(); GAssert.Assert(null != m_gcPlayerInventory, "Unable to get Player Inventory!"); } // Set Game Defaults { Messenger.ClearAll(); TimerManager.SetDefaults(1.0f, 1.0f); m_gcPlayerInventory.SetDefaults(); m_gcPlayerState.SetDefaults(); m_gcGameCamera.SetDefaults(); GameGlobals.SetDefaults(); m_gcGameHud.SetDefaults(); m_gcPauseScreen.SetDefaults(); m_gcMainMenu_Cecconoid.SetDefaults(); m_gcGameOverScreen.SetDefaults(); m_gcCompletionSequence.SetDefaults(); #if GDEBUG m_gcDevMenu.SetDefaults(); #endif Messenger.Invoke(Types.s_sHUD_Hide); } }