【Unity】Visual Scriptingで、ある範囲内でランダムな場所にGameObjectを生成させる方法

Unity

スポンサーリンク

Unity2021から標準パッケージとなった"Visual Scripting(ビジュアルスクリプティング)"(旧Bolt)を使用して、ある範囲内でランダムな場所にGameObjectを生成させる方法を紹介します。

完成動作

※生成スピードを1秒に1個にしてます。

作り方

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

1-1.2つの空のオブジェクト(Create Empty)を作成し、それぞれの名前をRangeA、RangeBとし、配置場所を以下の図のようにする。
※RangeAとRangeBの範囲の中でランダムな場所にGameObjectを生成するようにする。

RangeAを以下のように配置

RangeBを以下のように配置

2.指定した範囲内でランダムな場所にGameObjectを生成するスクリプトを作成

2-1.空のゲームオブジェクト(Create Empty)を作成

2-2.名前を"CreateRandomManager"にする。

2-3.CreateRandomManagerに"Script Machine"コンポーネントを追加

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

2-5.作成した変数のValueに以下のように値を入れる。
RangeA変数には、Hierarchyタブの"RangeA"オブジェクト
RangeB変数には、Hierarchyタブの"RangeB"オブジェクト
CreatePrefabefab変数には、今回ランダムな場所に生成したいPrefab(今回は赤いCubeをプレハブ化したものを使用)
ElapsedTime変数は、0のままでよい。(この後ビジュアルスクリプト内で経過時間を計算するために使用する)

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

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

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

完成

これでゲームをスタートするとRangeAとRangeBの範囲内のランダムな場所にGameObjectが生成されるようになる。

Unity

Posted by ton