メインコンテンツへスキップ
< すべてのトピックに戻る

Unityでステートマシンを自前実装する方法は?

各状態(待機、歩き、攻撃など)を個別のクラスとして作成し、それらを管理する親クラス(StateMachine)から呼び出します。

巨大な Update()の中に switch 文や if 文で状態分岐を書き殴ると、コードが数千行に膨れ上がり、新しい状態を追加した時にバグが多発する(スパゲッティコード化する)ためです。

IStateというインターフェース(OnEnter, OnUpdate, OnExitのルール)を作成し、WalkState クラスなどで実装します。StateMachine クラスは現在の IStateを保持し、毎フレームその OnUpdate() だけを呼び出します。

目次

9周年キャンペーン実施中 早い申込みほど受講料がお得に