記事作成 2019年6月
PlayMaker 1.9.0 / Unity 2018.2.6f1
ランダムな場所からオブジェクトを発生させます。
空中から、Cube が発生、落下。落ちた Cube は一定時間で消滅します。
発生場所とするところに、目印となるオブジェクトを置きます。
空オブジェでもいいのですが、わかりやすいように Sphere を3つ並べてみます。
また、Mesh Renderer のチェックも外すと、動画のようにメッシュが非表示になります。
発生させる、Cube を作ります。
また、この例では Collider のMaterial に Physic Material「Cube 跳ねるため」
を作成し適用しています
Cube に状態遷移を設定し、ノード、アクションを以下のようにしてみます。
(Disconnected…はとりあえず関係ないです)
はじめの状態、[Set Random Rotation]で発生直後にランダムに傾けます。
こうしないと、すべて同じ状態で落下し面白みがないからです。
そして [Wait] 5 でTime 5 経った後、遷移。
[Destroy Self] で 消滅します。
これで、シーンがCubeでいっぱいになってしまうことを防ぎます。
一度この状態で再生し、Cubeの動きを確かめてみるといいでしょう。
作成、設定した Cube をProject 内のフォルダにドロップし、プレハブ化します。
これで、発生させるオブジェクトの準備ができました。
シーン上に作った空オブジェクト、「emp ランダム発生」に
このような、ノード、アクションを設定します。
前回目標を追いかけるオブジェクトでは [Get Random Object] でTagを目印にシーン上の
オブジェクトを選択しましたが今回は
[Select Random Game Object] で直接、出現場所Sphere をドロップした選択リストの
中から選んで、GameObject変数、[gobj 選択_出現場所]に格納します。そして
[Creat Object] で先程作成した、Cubeプレハブを生成します。Game Object欄にドロップ。
Spawn Point(生成場所)は、 [gobj 選択_出現場所]です。
状態は、自動的に遷移し、次の [Wait] でTime 0.5 待った後
また「マーカからCubuの発生」に戻ります。
(アクションが Wait だけの場合、イベント指定がなくても時間経過後にFINISHから遷移します)
----------------------------------------------
@おまけ
落下物が、Cube だけでは寂しいので種類を増やしてみたい。どうしましょう。
Cube と同様に Capusele をプレハブ化してみます。設定も Cube 同様です。
その上で「emp ランダム発生」に以下のように変更を加えます。
2つのアクションの間に、もう一つ
[Select Random Game Object]を追加し、選択リストに、作成したプレハブ
Cube と Capsule をドロップ。
選択したオブジェクトは、新たな変数 [gobj 選択_出現オブジェクト] に格納。
[Creat Object]では、生成する Game Object にその変数 [gobj 選択_出現オブジェクト]を。
プレハブも選択肢にできます。
----------------------------------------------
再生してみると、このように Cube と Cupsile がランダムに、
またランダムな場所から出現します。
0 件のコメント:
コメントを投稿