シーン上にボタンが5個あるとします。
それぞれのボタンに、「クリックされるとパーティクルを出す」という機能を持たせたいとします。
まず思いつくのは、
1.EmitParticle()
的なメソッドを持つスクリプトを用意して、それぞれのボタンにアタッチ。
2.EventTriggerコンポーネントやらもアタッチして、クリックされたときにEmitParticle()
が発火?するようにする。
で、まあこれで期待通りの動きはすると思うのですが、
なんか、「ボタンごとにちょっと違う処理をする」というわけではないとき、
全く同じメソッドをボタンそれぞれがみんな持っているというのが、なんか、それでいいのかな?と思いました。
(Prefabは使っています)
独学・実務未経験で、この辺のことが分かりません。
できはするけど、それでいいのかな?という感じです。
それぞれにスクリプトをアタッチするのは、「それぞれ違う処理をさせたいとき」「それぞれに別々の値を持たせたいとき」などに限った方が、
なんか良いのかなと思いました。なんかなんかですみません。
そこで、EventTriggerのEventって、他のゲームオブジェクトを紐づけて、自分が持っていないメソッドを発火できますよね。
これを使い、「ボタンが押されたときに、そのボタンの位置をもらってそこにパーティクルを出すManager」みたいなのを用意して、
「各ボタンは押された時にそのManagerに自分のTransformを渡す」だけにしました。
こうしたらスッキリするというか...まあ別にこうしなくてもごちゃごちゃにはなってないのですが...。
そもそも全く同じメソッドをボタンそれぞれがみんな持っているという捉え方がちょっと違うのでしょうか?
Prefabを作ってやってるならそれで良いのでしょうか?
処理負荷的にもどうなのか気になります。
伝わらなかったらすみません。
ちなみに本当はボタンとかパーティクルとかではないのですが、シンプルにするために例えとして提示しています。
よろしくお願いします。
あなたの回答
tips
プレビュー