본문 바로가기
개발/Unity

Unity) ScriptableObject Sington (instance)

by 테샤르 2022. 8. 24.

ScriptableObject Sington (instance)

 

ScriptableObject를 Sington 형태로 사용하는 간략한 코드 정리이다.

 

반응형

Lazy를 사용해도 되지만 없는 경우에

Load Asset 을 통해서 자동 생성하는 코드이다.

 private class ScriptableSingleton : ScriptableObject
{
    static ScriptableSingleton _instance;
    public static ScriptableSingleton Instance => _instance ?? (_instance = LoadAsset());

    private static ScriptableSingleton LoadAsset()
    {
        var path = GetAssetPath();
        var asset = AssetDatabase.LoadAssetAtPath<ScriptableSingleton>(path);

        if (asset == null)
        {
            asset = CreateInstance<ScriptableSingleton>();
            AssetDatabase.CreateAsset(asset, path);
            AssetDatabase.SaveAssets();
        }

        return asset;
    }
}

전제조건이 있느 경우에  기본값을 추가해서

사용하면 편리하게 사용이 가능하다.

 

★☆☆☆☆

 

 

반응형

댓글