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

UnityでState Machine(状態遷移)を使うべき場面は?

プレイヤーの「待機・歩き・ジャンプ」の切り替えや、敵AIの「巡回・発見・攻撃」の行動パターンの管理など、状態が3つ以上存在する場面です。

Update()の中に if (isJumping)if (isAttacking) などの条件分岐を書き連ねると、コードがすぐに肥大化し「ジャンプ中に攻撃したら空中に浮いたままになる」等のバグが頻発するためです。

IState インターフェース(Enter, Update, Exit)を作成し、「WalkState」などの各状態を別のクラスとして作ります。本体のスクリプトは「現在のStateのUpdate()を呼ぶだけ」というシンプルな構造にします。

目次

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