通知
すべてクリア
04/09/2020 10:45 am
サンプルのItemListプロジェクトをトレースしていたのですが、シングルトンの利点がまだよくわかっていません。。
具体的にはスクショの箇所でいうと、`GetInstance()` しているところで`new クラス名()` としてはダメなのか?という疑問があります。
04/09/2020 10:50 am
Unityでの開発で、シングルトンは主にManagerクラスに使われることが多いです。
Managerクラスはゲーム全体に影響を及ぼす値等を持つオブジェクトですが、これらが複数存在してしまうとデータ取得の時にどっちのManagerクラスから取得したらいいのかわからなくなってしまいます。(さらに、同じManagerクラスでも持っている値が違ったらさらに大変ですね)
そういった「複数のオブジェクトがデータを重複して持つ」といった事を避けるためにシングルトンは利用されます。
シングルトンとはこのインスタンスが1つしか生成されないということを保証するものであり、シングルトンを使って作成したオブジェクトはゲーム内に1つしか存在しません。
よって先ほどのデータが重複してしまうことを避けることができます。
さらにグローバル変数のような扱いをすることができ、ゲーム開始時にFindでManagerクラスを探したり
Managerをpublicにして、毎回インスペクター上でつないでいたりするのを避けられるメリットもあります。
複雑な事を長々と書きましたが、端的に言うと「2つ以上存在すると困るManagerオブジェクトに対して利用するとかなり便利」くらいに把握しておくと良いです。