IEnumerator WaitForController() { tankController = target.GetComponent <RTCTankController>(); yield return(new WaitWhile(() => !tankController)); tankGunController = tankController.GetComponentInChildren <RTCTankGunController>(); }
void Start() { nc = GameObject.FindObjectOfType <NetworkController>(); errorlevel = GetComponent <Text>(); CurrentScene = SceneManager.GetActiveScene(); if (EmptyFuelArrow) { EmptyFuelArrow.SetActive(false); } if (APP.PlayerTankManager == null || APP.PlayerTankManager.player == null) // if the player doesn't have a player tank manager, then wait and spawn one { StartCoroutine(WaitForPTMToSpawn()); return; } // Setting UI elements inactive or active HideScopeFade(); win.GetComponent <Canvas>().enabled = false; lose.GetComponent <Canvas>().enabled = false; scoresCanvas.enabled = false; skipButton.SetActive(false); edgeFade.SetActive(false); damageFade.SetActive(true); blackFade.SetActive(false); viewSlit.SetActive(false); // Assigning/Finding data from objects present in the scene levelManagerRef = FindObjectOfType <LevelManager>(); mapCanvasController = miniMap.GetComponent <MapCanvasController>(); tankController = APP.PlayerTankManager.player.GetComponent <RTCTankController>(); tankGunController = tankController.GetComponentInChildren <RTCTankGunController>(); if (!tankController) { StartCoroutine("WaitForController"); } // Cursor Related Cursor.visible = false; Cursor.lockState = CursorLockMode.Locked; if (levelManagerRef.errorInStack) { errors.SetActive(true); errorlevel.text = levelManagerRef.checkpointsCount + levelManagerRef.destroyTargetCount + levelManagerRef.collectCount + levelManagerRef.waveCount + levelManagerRef.destinationsCount + levelManagerRef.deliverCount + levelManagerRef.captureCount + levelManagerRef.cutSceneCount + "Error in Level Manager"; DEBUG.Log("Errors in LevelManager detected, behaviour may be broken", Warning_Types.Error); } else { errors.SetActive(false); } LoadoutPanel.Initialize(); // Fuel Arrow only for the grasslands level if (CurrentScene.name.Contains("Campaign_Grasslands")) { EmptyFuelArrow.SetActive(tankController.CurrentFuel <= 0 ? true : false); } else { EmptyFuelArrow.SetActive(false); } }