理解していない事
2つの呼び出しの違い、メリットデメリットをご教授下さい
問題に至る経緯
ゲーム制作時HitStopを実装しようと参考に観ていた時、御二方の似通った呼び出し処理を見掛け、疑問を抱きました
内容
●1人目のパターン
ーーーHitStopクラスーーー public class HitStop : MonoBehaviour{ public void Stop(float duration) { StartCoroutine(Wait(duration)); } //IEnumerator Wait の処理 ーーー使う側Enemyクラスーーー public class Enemy : MonoBehaviour{ void OnCollisionEnter2D(Collision2D c) { if (c.gameObject.CompareTag("Hoge")) { FindObjectOfType<HitStop>().Stop(0.1f); }
●2人目のパターン
ーーーHitStopクラスーーー public class HitStop : MonoBehaviour{ public static HitStop Instance; private void Awake() { Instance = this; } public void Stop(float duration) { StartCoroutine(Wait(duration)); } //IEnumerator Wait の処理 ーーー使う側Enemyクラスーーー public class Enemy : MonoBehaviour{ void OnCollisionEnter2D(Collision2D c) { if (c.gameObject.CompareTag("Hoge")) { HitStop.Instance.Stop(0.1f); }
補足
2人目のパターンではインスタンスが増え過ぎると問題があると解説しておりました、この解説についても増え過ぎるケースとはどういう事なのか?理解しておりません
考察
知識が浅い為、憶測ですが
どちらのパターンもGameManagerオブジェクトに所持させるとすれば、使う側は①探して処理をしているか、②クラスのメソッドを生成して処理をしている という様な違いでしょうか?
制作を進める上で後々問題にならなければ①のパターンで良い気はしているのですが、曖昧を回避したいと思い質問致しました
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/18 05:44
2022/09/18 05:54
2022/09/18 08:00