コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】【Tips】MonoBehaviourを継承したシングルトンではなくstaticクラスを使用する

Before

public class ScoreManager : SingletonMonoBehaviour<ScoreManager>
{
    public int Score { get; set; }
}
ScoreManager.Instance.Score += 100;

After

public static class ScoreManager
{
    public static int Score { get; set; }
}
ScoreManager.Score += 100;

ときどきUnityで開発されたゲームで、スコアや体力を管理するクラスも
MonoBehaviourを継承してシングルトンになっているのを見かけますが
MonoBehaviourを継承するとスコアや体力が
位置情報を持つという変な状態になってしまうため
個人的にはシングルトンで参照したいデータクラスは
staticにする方が良いと思ってます