using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
|
public class SetBoolBehaviour : StateMachineBehaviour
|
{
|
public string boolName;
|
public bool updateOnState;
|
public bool updateOnStateMachine;
|
public bool valueOnEnter, valueOnExit;
|
|
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state
|
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
{
|
if(updateOnState)
|
{
|
animator.SetBool(boolName, valueOnEnter);
|
}
|
}
|
|
// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks
|
//override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
//{
|
//
|
//}
|
|
// OnStateExit is called when a transition ends and the state machine finishes evaluating this state
|
override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
{
|
if (updateOnState)
|
{
|
animator.SetBool(boolName, valueOnExit);
|
}
|
}
|
|
// OnStateMove is called right after Animator.OnAnimatorMove()
|
//override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
//{
|
// // Implement code that processes and affects root motion
|
//}
|
|
// OnStateIK is called right after Animator.OnAnimatorIK()
|
//override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
|
//{
|
// // Implement code that sets up animation IK (inverse kinematics)
|
//}
|
public override void OnStateMachineEnter(Animator animator, int stateMachinePathHash)
|
{
|
if (updateOnStateMachine)
|
{
|
animator.SetBool(boolName, valueOnEnter);
|
}
|
}
|
public override void OnStateMachineExit(Animator animator, int stateMachinePathHash)
|
{
|
if (updateOnStateMachine)
|
{
|
animator.SetBool(boolName, valueOnExit);
|
}
|
}
|
}
|