IshidaGames【UnityC#講座】列挙型(enum)で行動を分ける【NavMeshAgent】Tweetnoteで管理人イシゲーのゲームの思い出記事を100円で公開しました。列挙型(enum)とは基本的に変更しないデータを扱う型で、コードを読みやすくするのに便利です。今回は例としてNavMeshAgentを使うスクリプトを紹介します。切り替える行動が2つ3つ程度だとBool変数などでも対応できますが、それ以上増えるとどの変数がどれを指しているのか分かりにくくなります。そんな時に列挙型を使うと分かりやすくなり便利です。今回作ったのはこちらの動画です。赤いCubeは黄色のSphereを順にたどっていきますが、緑のCubeが接触すると5秒間追跡してきます。追跡時に触れると回転して攻撃してきます。2019赤いCubeは巡回、追跡、攻撃の3つの行動をします。そのスクリプトはこちら。Action{}で宣言しますが、このActionの部分は私が考えた型の名前です。actionで変数を宣言します。If文ではその変数と型の名前、列挙子(列挙型の中身のデータ)を使いました。OnCollisionEnterでもその時の選択されていた列挙子によって命令が変わるようになっています。ChaseがPlayerの追跡。それら3つの列挙子で赤いCubeの行動を管理しました。Bool変数などを使うよりもずっと分かりやすくなっていると思います。ちなみにInspecotrではこのように列挙子が選べるようになっています。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。