👏

ワールドを一通り遊べるようにする

2024/04/22に公開

はじめに

今まで作ってきたアイテムをまっすぐ動かすcomponent
アイテムを反復して動かすcomponent
中間ポイント、ゲームオーバー、ゲームクリア用のcomponentを使用して、アスレチックワールドを一通り遊べるようにしましょう!

2024-03-26 18-25-06.gif

配置作業の前に

image.png

Propatyなどが設定されたゲームオブジェクトはPrefabにしておいて、それぞれの差分としてPrefab Variantを作っておくと、今後Propertyを増やしたい時に、Prefabに対して変更を適用させれば、自動的に、Prefab Variantにも適用されるようになり、仕様を変更したいときも柔軟に対応することが出来るようになります。

アスレチックギミックの設定

どんどんと上ってきて、プレイヤーが当たるとゲームオーバーになるマグマ

image.png

マグマにはItemMove componentを付けて、Propatyとして、y軸方向に + 0.3ずつ上っていくようにしています。

また、仮モデルとして、HEO Objectに赤色のPlaneを設定しています。

GameClearManager componentや、GameOverManager componentは、Magmaという名前のItemを取得することで動作するようになっているので、この名前は変えないようにしておきます。

ある程度のところまで進んだらそこからスタートするための中間ポイント

※可視化のため、半透明のマテリアルを適用させています。
image.png

中間ポイントの構造は中間ポイントで作った内容と同じですが、位置をそれぞれ調整しています。

これによって、ある程度進んだ後、中間ポイント設定用コライダーを経過することによって、中間ポイント変更されるようにできました。

コライダーの大きさを変えることで、中間ポイントが設定される広さも変更できるので、ワールドに合わせてプレイヤーが中間ポイント周辺を通過しているにもかかわらず、実際に中間地点が更新されていない…。という事は起きないようにしましょう。

ゲームオーバーとリトライ

image.png

ゲームオーバー画面用のボックスは、マグマの初期位置よりもかなり下に配置して、アスレチック内のアイテムの動作の影響を受けないようにしましょう。

また、remain(残機)は3に設定していますが、ゲームの難易度によって上下して設定します。

上下に反復して動く床

image.png

上下に動く床をoffsetを0.5ずつ互い違いになるように配置しています。
これによって、タイミングよく床を飛び移っていくようなアスレチックを作ることが出来ます。

2024-03-29 11-12-34_4.gif

横に押し出されるブロック

image.png

横に押し出されるブロックは、これだけでも

  • プレイヤー自体が横に押し出されて急いで渡らないといけない橋のアスレチック
  • 橋をなくすことでブロック自体にプレイヤーが乗り移ることのできるアスレチック

の二つのアスレチックを作ることが出来ます。

こちらは、プレイヤー自体が押し出されるブロックはは同じoffset(タイミング)にして、乗り移るブロックは、0.5ずつの互い違いになるように配置しています。

2024-03-29 11-12-34_5.gif

マグマを止める

マグマを止める処理は、GameClearManager compornentの中の、OnClickNode()によって呼ばれているため、GameClearManager componentを付けた、HEO Field配下にあるNode(GameObject)であれば、マグマを止める処理が呼ばれるようになります。
今回は、仮としてSphereを配置しておいて、これをクリックしたら、マグマを止めることが出来るようにしておきます。

2024-03-29 11-12-34_6.gif

まとめ

今まで作ってきたcomponentを利用して、ワールドを一通り遊ぶことが出来るようになりました!
propertyを利用したcomponentを作ることで、自分だけの大ボリュームなVket Cloudのワールドが簡単に、短い時間で作れるようになります。
次回からはより多様なコンポーネントを作って、より豪華なアスレチックを作っていきます。

前 : Heliscriptで中間ポイント、ゲームオーバー、ゲームクリアを実装する【コピペで使えるサンプルコード付き】
次 : HeliScriptでアイテムを回転させる【コピペで使えるサンプルコード付き】】

株式会社HIKKY

Discussion