Unity

シングルトンの使い方

初めての方、初めまして、しげるです。今回はゲーム開発で地味に活躍するシングルトンについて1分で解説しようと思います。

Youtubeやってます

この記事の内容はyoutube動画にしていますので、是非みてください。
【1分解説】シングルトンの使い方(2分半)

シングルトンとは?

クラスをシングルトンにしてできることは以下の2つです。
①シングルトンの持つ変数やメソッドを外部からGetComponentなしで使うことができる。
②シーンを遷移してもシングルトンを持つゲームオブジェクトは破壊されない。

これによって例えばBGMや効果音を出すクラスをシングルトンにすると
音を鳴らすときにいちいちGetComponentしなくてもよくなり。
さらにはシーンの移動の際にもBGMは流し続けることなどができるようになります。

シーン間で破棄されないのでスコアなどの一時的な保存なんかにも使えると思います。

使い方

①クラスをシングルトンにする

クラスをシングルトンにするのは簡単で、すでに作っているクラスの最初にこのコードを書いてあげるだけです。
クラス名のとこはシングルトンにするクラスの名前にしてください。

static public クラス名 instance;
void Awake ()
{
 if (instance == null) 
 {
 
     instance = this;
     DontDestroyOnLoad (gameObject);
 }
 else 
 {
 
     Destroy (gameObject);
 }
}

②シングルトンの変数とメソッドを外部から使う

//変数の取得
int score = クラス名.instance.score;

//変数への代入
クラス名.instance.score = 3;

//メソッドを使う
クラス名.instance.ChangeScore();