// 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 (_objectMap == null) { _objectMap = GameObject.FindWithTag("StateMachine").GetComponent <GameObjectMap>(); } if (_autoReverse) { _activityMap = new Dictionary <GameObject, bool>(); } foreach (string s in _deactivate) { GameObject g = _objectMap.Get(s); if (_autoReverse) { _activityMap.Add(g, g.activeSelf); } g.SetActive(false); } foreach (string s in _activate) { GameObject g = _objectMap.Get(s); if (_autoReverse) { _activityMap.Add(g, g.activeSelf); } g.SetActive(true); } }
// 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) { // //} // OnStateMove is called right after Animator.OnAnimatorMove(). Code that processes and affects root motion should be implemented here //override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { // //} // OnStateIK is called right after Animator.OnAnimatorIK(). Code that sets up animation IK (inverse kinematics) should be implemented here. //override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { // //} private void initIfNeeded() { if (_initialized) { return; } _objectMap = GameObject.FindWithTag("StateMachine").GetComponent <GameObjectMap>(); _playerLauncher = _objectMap.Get("PlayerLauncher").GetComponent <PlayerLauncher>(); _spawner = _objectMap.Get("EnemySpawner").GetComponent <EnemySpawner>(); }