Legacy Documentation: Version 5.1
LanguageEnglish
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Animator.GetBehaviour

Switch to Manual
public function GetBehaviour(): T;

Description

Return the first StateMachineBehaviour that match type T or derived from T. Return null if none are found.

#pragma strict
public class RunBehaviour extends StateMachineBehaviour {
	// OnStateUpdate is called at each Update frame between OnStateEnter and OnStateExit callback
	public override function OnStateUpdate(animator: Animator, stateInfo: AnimatorStateInfo, layerIndex: int) {
		if (animator.GetComponent.<Recorder>().enabled && !animator.GetComponent.<Recorder>().isRecording)return ;
		var transform: Transform = animator.GetComponent.<Transform>();
		var hitInfo: RaycastHit;
		var dir: Vector3 = transform.TransformDirection(Vector3.forward);
		if (Physics.Raycast(transform.position + new Vector3(0, 1.5f, 0), dir, hitInfo, 10)) {
			if (hitInfo.collider.tag == "Obstacle") {
				animator.GetBehaviour.<SlideBehaviour>().target = transform.position + 1.25f * hitInfo.distance * dir;
				if (hitInfo.distance < 6)
					animator.SetTrigger("Slide");
			}
		}
	}
}
public class SlideBehaviour extends StateMachineBehaviour {
	public var target: Vector3;
	public var slideMatchTargetStart: float = 0.11f;
	public var slideMatchTargetStop: float = 0.40f;
	// OnStateUpdate is called at each Update frame between OnStateEnter and OnStateExit callback
	public override function OnStateUpdate(animator: Animator, stateInfo: AnimatorStateInfo, layerIndex: int) {
		animator.MatchTarget(target, new Quaternion(), AvatarTarget.Root, new MatchTargetWeightMask(new Vector3(1, 0, 1), 0), slideMatchTargetStart, slideMatchTargetStop);
	}
}