Unity2021から標準パッケージとなった”Visual Scripting(ビジュアルスクリプティング)”(旧Bolt)を使用して、あるゲームオブジェクトが一定の範囲内に入ったターゲット(プレイヤーなど)を追いかけるようにしてみます。NavMeshを使います。
※こちらは以下の内容を行ったことを前提として進めます。
![](https://programming.sincoston.com/wp-content/uploads/2018/12/cropped-icon.jpg)
プレイヤーとしては以下を使います。
完成動作
ターゲット(unitychan)が一定の範囲内に入るとCube(赤)が追いかけています。
作り方
1.プレイヤーにタグをつける
1-1.プレイヤー(今回はunitychan)のみを対象として敵が追いかけてくるように、プレイヤーに”Player”タグをつける。
Hierarchyウィンドウでプレイヤーのオフジェクトを選択して、InspectorウィンドウのTag欄で”Player”を選択する。
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-15.png)
2.一定の範囲に入ったことを検知するためのColliderを設定する
2-1.HierarchyウィンドウでCubeオブジェクト上で右クリックをして「Create Empty」を選択して、空の子オブジェクトを作成する。
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-34.png)
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-35.png)
2-2.空の子オブジェクトの名前を「CollisionDetector」とする
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-36.png)
2-3.CollisionDetectorにSphere Colliderをアタッチする。
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-37.png)
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-38.png)
2-4.”Sphere Collider”コンポーネントの”Radius”プロパティを任意の値(今回は2)にし、どの範囲にターゲットが入れば追いかけるようにするかを設定する。
※”Sphere Collider”の範囲は、”Edit Collider”プロパティをクリックすると、以下の画面のように緑色の枠で表示される。
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-45.png)
2-5.”Is Trigger”にチェックを入れる。
※”Is Trigger”にチェックを入れない場合、Collider同士がぶつかり跳ね返ってしまう。
チェックを入れるとすり抜けるようになる。
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-46.png)
3.一定の範囲にターゲットが入ると追いかけるビジュアルスクリプトを作成
3-1.Cubeオブジェクトの”Script Machine”コンポーネントの”Edit Graph”を押下
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-42.png)
3-2.グラフを以下のように修正する。
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-43-1024x400.png)
※以下の変数はもう使わないので消しても良い。
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-44.png)
3-3.Cubeに”Script Machine”コンポーネントを追加
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-47.png)
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-48.png)
3-4.”Graph”プロパティの”New”ボタンを押下
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-3.png)
3-5.ファイルの保存ダイアログが開かれるので任意の場所にCollisionDetectPlayerという名前で保存する。
![](https://programming.sincoston.com/wp-content/uploads/2022/05/image-51.png)
3-6.”Edit Graph”ボタンを押下して、以下のようにグラフを作成する。
![](https://programming.sincoston.com/wp-content/uploads/2022/07/image-8-1024x524.png)
※補足
・以下のユニットで一番上の親のゲームオブジェクトを取得できる。
![](https://programming.sincoston.com/wp-content/uploads/2022/07/image-7.png)
一つ上の親のゲームオブジェクトを取得したい場合は以下のようにする。
![](https://programming.sincoston.com/wp-content/uploads/2022/07/image-9.png)
完成
これで実行すると、Colliderの範囲内にターゲット(unitychan)が入っている場合のみ、Cubeが追いかける。
コメント