まきゼミ技事録!

とあるゼミのプログラマー達が送る技術ブログのようなもの

Stateパターン

皆さんこんにちは。ひろたか('Д')です。

今回はデザインパターンの一つのStateパターンについてご紹介します。

 

目次

 

 Stateパターンとは

Stateパターンとは、振る舞いに関するデザインパターンの一つでオブジェクトの「状態(State)」をクラスで表現するパターンです。

 

状態・動作の変化に応じて振る舞いが変わるようなときに使えます。

 

キャラクターの移動と待機状態をステートパターンで分けたもののサンプルです。

なお、環境はUnity2017.4.0f1です。

悪い例

 

良い例

 

各種ステートクラスの状態がそのままのならばnullが返るためstateは変わりません。

状態が変わった際にはcurrentStateがnullではなくなり14行目のif文に入りstateが変わります。

 

 

まとめ

Stateパターンを使うとif文やswitch文で処理を切り替えずにすみコードが見やすくなります。また、新しい状態が必要になったときも追加が簡単にできます。

 是非皆さんも使ってみて下さい。