只今誠意制作中のゲームで、仕様に躓いて知識を覚えるまで時間を要した箇所のメモを残します。
event機能を忘れないため、少し具体的なコードを載せた覚書メモになります。
まだ理解の途中ですが、自分が忘れないようにする為に記述します。
※この記事では、Unity上でのdelegateやeventについては詳しく書きません。
使用例
「プレイヤー」オブジェクトの点数が変化するたびに、「テキスト」オブジェクトがデバッグlogコメントを出す。
2つのオブジェクト間のデータ更新を、上記の仕様をUnityの点数変化の参照に対して「update」メソッドを使わずに、コードを書こうと構築したものが下記になります。
「HogeEventPoint」、「HogePointUp」をアタッチしたオブジェクトと「HogeLog」をアタッチしたオブジェクトを用意します。
最後に「HogeEventPoint.cs」をシリアライズフィールドされている「HogeEventPoint」、「HogeLog」に参照させたら完成です。
始めに、ZorXキー押すとポイントを入力されてログが出力されます。
次に、最初に押されたキー以外を押すと、ポイントが変わりログが出力されます。
以前のキーと同じキーを押した場合、ポイントも変わらずログも出力されません。
今回記述したコードは、ゲーム内で採用されたモノの最小構成になります。
別オブジェクトの値が変化したら、変化した値を取得して動作したい時に便利です。
例
プレイヤーオブジェクトの取得点数が変わった変化を受け取り、UIオブジェクトのテキストを変更する。
こういった具体的な動作の足掛かりになればと思い記事を書きました。
タイトルにある、「action」、「event」、そして元になっている「delegate」については、今後自分が学んだ範囲で記事を書いていこうと思っています。
コメント