Version: 5.4 (switch to 5.5b)
言語English
  • C#
  • JS

Script language

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

StateMachineBehaviour

class in UnityEngine

/

Inherits from: ScriptableObject

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

マニュアルに切り替える

Description

StateMachineBehaviour はステートマシンのステートに追加できるコンポーネントです。ステートのすべてのスクリプトが継承する基底クラスでもあります。

通常、Animator はコントローラーで定義されるそれぞれのビヘイビアの新しいインスタンスをインスタンス化しません。クラス属性である SharedBetweenAnimatorsAttribute は、ビヘイビアがどのようにインスタンス化されるかを管理します。

StateMachineBehaviour には事前定義されているメッセージがいくつかあります。 OnStateEnter, OnStateExit, OnStateIK, OnStateMove, OnStateUpdate.

no example available in JavaScript
using UnityEngine;

public class AttackBehaviour : StateMachineBehaviour { public GameObject particle; public float radius; public float power; protected GameObject clone; override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { clone = Instantiate(particle, animator.rootPosition, Quaternion.identity) as GameObject; Rigidbody rb = clone.GetComponent<Rigidbody>(); rb.AddExplosionForce(power, animator.rootPosition, radius, 3.0f); } override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { Destroy(clone); } override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { Debug.Log("On Attack Update "); } override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { Debug.Log("On Attack Move "); } override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { Debug.Log("On Attack IK "); } }

Public Functions

OnStateMachineEnterStateMachine に移行を行うとき、最初の Update フレームが呼ばれます。 StateMachine のサブステートの中へ移行を行うとき、これは呼び出されません。
OnStateMachineExitStateMachine からの移行を行うとき、最後の Update フレームが呼ばれます。StateMachine のサブステートの中へ移行を行うとき、これは呼び出されません。

Messages

OnStateEnterステートマシンがこのステートを評価している場合、最初の Update のフレームで呼び出されます。
OnStateExitステートマシンがこのステートを評価している場合、最後の Update のフレームで呼び出されます。
OnStateIK MonoBehaviour.OnAnimatorIK の直後に呼び出されます。
OnStateMove MonoBehaviour.OnAnimatorMove の直後に呼び出されます。
OnStateUpdate最初と最後のフレームを除いて Update フレームごとに呼び出されます。

Inherited members

Variables

hideFlagsオブジェクトは非表示、シーンに保存、ユーザーが編集可能、などを設定する。
nameオブジェクト名

Public Functions

GetInstanceIDオブジェクトのインスタンス ID を返します
ToStringゲームオブジェクトの名前を返します

Static Functions

Destroyゲームオブジェクトやコンポーネント、アセットを削除します
DestroyImmediateオブジェクト obj を破棄します。
DontDestroyOnLoad新しいシーンを読み込んでもオブジェクトが自動で破壊されないように設定します
FindObjectOfTypeタイプ type から最初に見つけたアクティブのオブジェクトを返します
FindObjectsOfTypeタイプから見つけたすべてのアクティブのオブジェクト配列を返します
Instantiateオブジェクト original のコピーを返します
CreateInstanceScriptableObject のインスタンスを作成します。

Operators

boolオブジェクトが存在するかどうか
operator !=二つのオブジェクトが異なるオブジェクトを参照しているか比較します
operator ==2つのオブジェクト参照が同じオブジェクトを参照しているか比較します。

Messages

Awake ScriptableObject スクリプトを開始するとき、この関数は呼び出されます。
OnDestroyScriptableObject が破棄されるとき、この関数は呼び出されます。
OnDisableScriptableObject クラスのオブジェクトがスコープを外れるとき、この関数は呼び出されます。
OnEnableオブジェクトがロードされたとき、この関数は呼び出されます。