// OnStateExit is called before OnStateExit is called on any state inside this state machine override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { professorController = GameObject.FindWithTag("Professor").GetComponent <ProfessorController>(); HotPotatoTimer hotpotatoTimer = FindObjectOfType <HotPotatoTimer>(); // Init current level controller. levelController = LevelController.GetCurrentLevelController(); if (stateInfo.IsName("Appear") || stateInfo.IsName("AppearBeer") || stateInfo.IsName("AppearBeerGlass") || stateInfo.IsName("AppearAngry") || stateInfo.IsName("AppearMoney")) { // Activate speech bubble. professorController.speechBubble.gameObject.SetActive(true); // Show speech bubble. professorController.speechBubble.SetVisible(true); } else if (stateInfo.IsName("Disappear") || stateInfo.IsName("DisappearBeer") || stateInfo.IsName("DisappearBeerGlass") || stateInfo.IsName("DisappearAngry") || stateInfo.IsName("DisappearMoney")) { professorController.SetVisible(false); // Hide professor button. ProfessorButton professorButton = FindObjectOfType <ProfessorButton>(); if (professorButton != null) { professorButton.SetVisible(true); } // Deactivate speech bubble. professorController.speechBubble.gameObject.SetActive(false); // Enable gameplay interaction on current level controller. if (levelController != null) { levelController.SetGameInputEnabled(true); } // Invoke OnStopDisappear method on level controller. if (levelController != null) { levelController.OnStopProfessorDisappear(); } // when hotpotato is active, resume timer when prof disappears if (hotpotatoTimer != null) { hotpotatoTimer.ResumeTimer(); } //Enable Camera movement when the prof is gone. CameraFollowPlayer camera = FindObjectOfType <CameraFollowPlayer>(); if (camera != null) { camera.EnableMovement(true); } } }
// OnStateEnter is called before OnStateEnter is called on any state inside this state machine override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { professorController = GameObject.FindWithTag("Professor").GetComponent <ProfessorController>(); HotPotatoTimer hotpotatoTimer = FindObjectOfType <HotPotatoTimer>(); // Init current level controller. levelController = LevelController.GetCurrentLevelController(); if (stateInfo.IsName("Appear") || stateInfo.IsName("AppearBeer") || stateInfo.IsName("AppearBeerGlass") || stateInfo.IsName("AppearAngry") || stateInfo.IsName("AppearMoney")) { professorController.SetVisible(true); // Hide professor button. ProfessorButton professorButton = FindObjectOfType <ProfessorButton>(); if (professorButton != null) { professorButton.SetVisible(false); } // Disable gameplay interaction on current level controller. if (levelController != null) { levelController.SetGameInputEnabled(false); } //when hotpotato is the game mode and the prof appears, stop timers if (hotpotatoTimer != null) { hotpotatoTimer.PauseTimer(); //disable movement of the cam when the prof is visible CameraFollowPlayer camera = FindObjectOfType <CameraFollowPlayer>(); if (camera != null) { camera.EnableMovement(false); } } } else if (stateInfo.IsName("Disappear") || stateInfo.IsName("DisappearBeer") || stateInfo.IsName("DisappearBeerGlass") || stateInfo.IsName("DisappearAngry") || stateInfo.IsName("DisappearMoney")) { // Hide speech bubble. professorController.speechBubble.SetVisible(false); } else if (stateInfo.IsName("Money") || stateInfo.IsName("Money2") || stateInfo.IsName("Money3")) { // Reset money animation flag. professorController.Money(false); } }