// 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); } }
public void ShowBeer(bool show, int version) { // Do nothing if method already running. showBeer = show; if (professorButton != null) { professorButton.SetVisible(false); } if (animator.GetCurrentAnimatorStateInfo(0).IsName("Invisible") && showBeer) { TalkAnimation(false); //Debug.Log("version: " + version); switch (version) { case 0: // Play long get beer sound. //audioGetBeer[version].Play(); // Show professor with beer after audio is finished. StartCoroutine(ShowBeerAfterTime(version)); break; case 1: // Play short get beer sound. audioGetBeer[version].Play(); // Show professor with beer after audio is finished. StartCoroutine(ShowBeerAfterTime(version)); break; case 2: // Show professor with beer but no sound. animator.SetBool("AppearBeer", showBeer); animator.SetBool("DisappearBeer", !showBeer); // Reset flag. showBeer = false; break; case 3: // Play get beer glass sound. audioGetBeer[version].Play(); // Show professor with beer glass after audio is finished. StartCoroutine(ShowBeerAfterTime(version)); break; case 4: // Show professor with beer glass immediately. animator.SetBool("AppearBeerGlass", showBeer); animator.SetBool("Disappear", !showBeer); break; } // Activate eye blinking. if (show && !blink) { StartCoroutine(EyeBlinkAfterTime(5)); } } else { // Hide visible professor. animator.SetBool("Appear", false); animator.SetBool("Disappear", true); // Hide visible professor with beer. animator.SetBool("AppearBeer", false); animator.SetBool("Disappear", true); // Hide visible professor with beer glass. animator.SetBool("AppearBeerGlass", false); animator.SetBool("Disappear", true); } }