はじめに
「○○Settings」のようなものを実装するときに使えるSingletonScriptableObjectの紹介です。
コード
using UnityEngine;
public abstract class SingletonScriptableObject : ScriptableObject where T : SingletonScriptableObject {
static T m_Instance;
public static T Instance {
get {
if (m_Instance == null) {
m_Instance = Resources.Load(typeof(T).Name);
}
return m_Instance;
}
}
}
クラス名と同じアセットをResourcesからロードします。
using UnityEngine;
[CreateAssetMenu(fileName = nameof(ExampleSettings))]
public class ExampleSettings : SingletonScriptableObject {
}