【Unity】Visual Scriptingで、動くプレイヤーの方向を向き続けるGameObjectの作り方

Unity

スポンサーリンク

Unity2021から標準パッケージとなった"Visual Scripting(ビジュアルスクリプティング)"(旧Bolt)を使用して、動くプレイヤー(ターゲット)の方向を向き続けるGameObjectを作成するやり方です。
Quaternion.LookRotationを使います。

プレイヤーとしては以下を使います。

完成動作

※大砲のようなゲームオブジェクトがターゲット(unity-chan)の方向を向き続けています。

作り方

1.シーンに各オブジェクトを配置

1-1.以下のようにunity-chan(今回はこれをターゲット)とBase(赤いCylinder)とNozzle(青いCylinder)を設置する。Baseが親、Nozzleが子のオブジェクトとなるようにする。
※今回はNozzleがunity-chanの方を向き続けるようにする。この後のビジュアルスクリプトのLookRotationの便宜上、Nozzleは先端がZ軸を向くようにする。
流れとしてはBaseをスクリプトでプレイヤーの方向に回転させて、子であるNozzleも回転する仕組み

2.プレイヤー(ターゲット)の方向を向き続けるビジュアルスクリプトを作成

2-1.Baseオブジェクトに"Script Machine"コンポーネントを追加

2-2.以下のような変数を作成

2-3.作成した変数のValueに以下のように値を入れる。
Target変数にはunitychanをアタッチ(方向を見続けさせるターゲットをアタッチ)

2-4."Graph"プロパティの"New"ボタンを押下

2-5.ファイルの保存ダイアログが開かれるので任意の場所にLookRotationという名前で保存する。

2-6."Edit Graph"ボタンを押下して、以下のようにグラフを作成する。

※もしBase(Nozzle)オブジェクトが上下方向の回転はしてほしくない場合は、以下のようにMultiplyでYに0を掛ければよい。(もっといい方法あるかも)

完成

これでゲームをスタートするとNozzle(Base)オブジェクトがターゲット(unity-chan)の方向を見続ける。

Unity

Posted by ton