private void StartStandingUp() { //Start Sitting to Standing Animation _anim.SetTrigger("IsStandingUp"); _anim.ResetTrigger("IsSitting"); _player.GetComponent <PlayerBehaviour>().FreezePlayer(); if (_anim.GetCurrentAnimatorStateInfo(0).IsName("ForwardLocomotion")) { _currSitState = SittingStates.Standing; _player.GetComponent <PlayerBehaviour>().State = PlayerBehaviour.States.Walking; _allowInteraction = false; } }
private void StartSit() { //Start Standing to Sitting Animation _anim.SetTrigger("IsSitting"); _anim.ResetTrigger("IsStandingUp"); _player.transform.forward = Vector3.Lerp(_player.transform.forward, this.gameObject.transform.forward, Time.deltaTime * 2); _player.GetComponent <PlayerBehaviour>().FreezePlayer(); //Check if Animation is done playing if (_anim.GetCurrentAnimatorStateInfo(0).IsName("Sitting")) { _currSitState = SittingStates.Sitting; _player.GetComponent <PlayerBehaviour>().State = PlayerBehaviour.States.Sitting; } }
private void OnTriggerStay(Collider other) { if (other.tag == "Player") { if (Input.GetButtonDown(_input.A)) { if (_allowInteraction && _currSitState == SittingStates.Sitting) { _currSitState = SittingStates.SitToStand; } if (other.gameObject.GetComponent <PlayerBehaviour>().State == PlayerBehaviour.States.Walking) { _player = other.gameObject; _allowInteraction = true; } } } }
private void SwitchCaseStates() { switch (_currSitState) { case SittingStates.Standing: _currSitState = SittingStates.StandToSit; break; case SittingStates.StandToSit: StartSit(); break; case SittingStates.Sitting: _player.GetComponent <RotateWithMouse>().AllowRotation = true; break; case SittingStates.SitToStand: StartStandingUp(); break; } }