QA@IT
«質問へ戻る

質問を投稿

Singletonパターンの実現方法は?

引き続き初心者質問です。

ゲーム内でグローバルな状態を保持するためにシングルトンオブジェクトが欲しいと思って以下のようなコードを書きました

using UnityEngine;

public sealed class Singleton : MonoBehaviour {
    static readonly Singleton instance = new Singleton();
    static Singleton() { }
    Singleton() { }
    public static Singleton Instance {
        get {
            return instance;
        }
    }
}

このコードはコンパイルは通るのですが、実行してみるとConsole欄に

You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed.

と表示されてしまいます。どうやらだめなようです。とはいえゲーム内状態を保存することくらいは普通に行われると思うので、シングルトンが使えないというのも考え辛いのですが、なにか他のよい実装法方があるのでしょうか?

引き続き初心者質問です。

ゲーム内でグローバルな状態を保持するためにシングルトンオブジェクトが欲しいと思って以下のようなコードを書きました

```csharp
using UnityEngine;
 
public sealed class Singleton : MonoBehaviour {
    static readonly Singleton instance = new Singleton();
    static Singleton() { }
    Singleton() { }
    public static Singleton Instance {
        get {
            return instance;
        }
    }
}
```

このコードはコンパイルは通るのですが、実行してみるとConsole欄に

> You are trying to create a MonoBehaviour using the 'new' keyword.  This is not allowed.

と表示されてしまいます。どうやらだめなようです。とはいえゲーム内状態を保存することくらいは普通に行われると思うので、シングルトンが使えないというのも考え辛いのですが、なにか他のよい実装法方があるのでしょうか?