Version: 2020.3

Animator.GetBehaviours

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

描述

返回匹配类型 T 或从 T 派生的所有 StateMachineBehaviour。如果未找到,则返回 null。

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; } }