第六話 Behavior Designer④
【注意】この記事は「とりあえず動いた」を記録するものです。記されている内容は、正しい用法ではない可能性があります。
今回はEnemyをPrefab化する話をします。
-
Prefab化するぞ
しました。
すると…
SeekやCan See ObjectのInspectorをみるとTargetがNoneになっとるやんけ!!!!
Scene内のPlayerをTargetにすると怒られます。
というわけでツリーの中に「追跡対象を取得する」を実装しよう!!!!
-
変数をつくる
Variablesから変数をアレできます。今回はPlayerというGameObjectをゲットしたいのでGameObjectを選びます。名前はPlayerObjectにしました。
Addを押すかName欄でエンターキーを押すと追加されます。
-
Playerを取得する
という訳でタスクを追加していきましょう…なんか見覚えのある名前がたくさんありますね!!!!
今回は大人しくGameObjectのFindを選びます。
Game Object Nameの欄には取得したいGameObjectの名前を入力しましょう。今回はPlayerと入力します。次にStore Valueを先ほど作ったPlayerObjectに指定します。これでPlayerと言う名前のGameObjectをPlayerObjectに格納してくれるようになりました。
このタスクを一番初めに実行してほしいので、Sequenceの一番左に設置します。これでPlayerを取得してからほかの処理が実行されるようになったぞ!
これで完成…と言いたいところなんだけどもうちょっとだけ付き合ってくれ!
-
おまけ:視界の問題
この状態でPrefabをいくつか配置して追いかけっこしてみるとお分かり頂けると思うんだけど、EnemyがEnemyによって視界を遮られるので、Enemyの後ろのEnemyが追跡を止めてしまう問題が起こります。
なので、第四話でちょっと話した気がするIgnor Layer Maskを使ってEnemyはEnemyを透視できるようにしましょう。やり方は簡単というか皆様お察しの通り透視できるLayerを選ぶだけです。
まずEnemyにLayerを指定します。今回は適当にEnemyというLayerを作りました。
次にすべてのCan See ObjectのIgnor Layer MaskにEnemyを追加しましょう。
これでOK!!!!!!!!縦に並んで追ってくるようになった。
これでAIっぽいものが組めました。
次回のネタは考え付いていません。お疲れ様でした。
みんなもBehavior Designerを買って楽しいAI製作ライフをおくろう!!!!