Version: 2017.3

Animator.GetBehaviours

切换到手册
public T[] GetBehaviours ();

描述

Returns all StateMachineBehaviour that match type T or are derived from T. Returns null if none are found.

using UnityEngine;
using System.Collections;

// An example StateMachineBehaviour. public class BreathBehaviour : StateMachineBehaviour { public bool fastBreath;

// OnStateUpdate is called at each Update frame between OnStateEnter and OnStateExit callback override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { animator.SetBool("FastBreath", fastBreath); } }

public class RunBehaviour : StateMachineBehaviour { // OnStateUpdate is called at each Update frame between OnStateEnter and OnStateExit callback override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { BreathBehaviour[] breathBehaviours = animator.GetBehaviours<BreathBehaviour>(); for (int i = 0; i < breathBehaviours.Length; i++) breathBehaviours[i].fastBreath = true; } }