// Use this for initialization public override void Initialize(Action <SystemBase> OnInitialized = null) { if (!APP.IsReady) // checking whether APP is active or not { APP.WaitForSubsystem(APP.PlayerTankManager, Start); return; } if (APP.PlayerTankManager.isArcade) // checking if current game mode is arcade mode { if (APP.PlayerTankManager._ArcadeMode == arcadeMode.defend || APP.PlayerTankManager._ArcadeMode == arcadeMode.SearchAndDestroy) { defendModeSettings = FindObjectOfType <ExitZone>(); } } levelManagerRef = FindObjectOfType <LevelManager>(); myCanvas = GetComponent <Canvas>(); myCanvas.enabled = false; Time.timeScale = 1; if (loadingOverlay) { loadingOverlay.SetActive(false); } if (restartMissionPrompt) { restartMissionPrompt.SetActive(false); } if (leaveMissionPrompt) { leaveMissionPrompt.SetActive(false); } gameWon = false; IsInitialized = true; if (OnInitialized != null) { OnInitialized.Invoke(this); } }