はじめに
今回のTIPSは、オブジェクトリンクです。
オブジェクトリンクとは、ふたつのインスタンスをリンクさせる機能です。
例えば、シーンに複数存在する同じキャラクターのインスタンスすべてにHPバーを追従させたい場合、キャラクターとHPバーをリンクさせるとキャラクターの座標に合わせてHPバーの座標を追従して変更できます。
このシステムに最低限必要なものは
- リンク元となるオブジェクト
- リンクさせるオブジェクト
- foreachイベント
この3つです。
foreachとは、ループ処理のひとつです。
高速ループに似ていますがすこし違います。
高速ループに似ていますがすこし違います。
高速ループが、指定した回数だけアクションを繰り返すイベントなのに対し
foreachは、指定したオブジェクトのインスタンスごとにアクションを繰り返すイベントです。
では、さっそく手順をご紹介します。
ふたつのオブジェクトをリンクさせる
リンク元オブジェクト(敵キャラ)を生成し、同じイベント内で敵のヘルスバーを生成したなら、ふたつを同イベント内でリンクさせます。
このイベントでは周期的に敵キャラとヘルスバーが同時に生成されます。
複数の敵キャラクターの座標に同時生成されたヘルスバーをそれぞれ追従させるには、foreachを使います。
「クリックしてこのイベントでリピートするオブジェクトを選択してください」と表示された場所をクリックし、リンク元となるオブジェクトを選択します。
そして、このforeachイベントに「リンク元オブジェクトにリンクされたすべてのヘルスバーを考慮」という条件を追加します。
ヘルスバーと同じ要領で影や敵キャラクターの表示名なども生成してリンクさせてみましょう。
リンクさせたオブジェクトを削除する
今度は、敵キャラクターが倒されたりして消失するタイミングで、ヘルスバーなどリンクしたオブジェクトも同時に削除するイベントを追加します。
これが無いと、敵キャラクターが消失後もヘルスバーや影だけその場に残ってしまいます。
手順としては、敵消失の条件を満たしたときにサブイベントで、ヘルスバーの座標変更の時と同じ要領でforeachイベントと条件を追加し、アクションでヘルスバーを削除します。
このとき、敵キャラを削除するタイミングはヘルスバーを削除したあとにします。
サンプルオンラインプレビュー
サンプルゲームを公開します。
画面をクリックするとプレイヤーが敵キャラを攻撃します。
敵キャラ死亡時に、リンクさせたヘルスバー、影、IDが同時に削除されます。
サンプルプロジェクトファイル
今回のTIPSで使用したプロジェクトファイルを配布します。
改変や組み込みなど、ご自由にご利用くださいませ。
おわりに
オブジェクトリンクはこのほかにもさまざまな用途があります。
いろいろと応用してみましょう。
※追記(2024/03/29):PANDAKOさんによって翻訳の一部が修正されました。
PANDAKOさん、ありがとうございます。
0 件のコメント:
コメントを投稿