private static SOArchitecture_Settings GetInstance()
        {
#if UNITY_EDITOR
            SOArchitecture_Settings instance = FindInstanceInProject();

            if (instance == null)
            {
                return(CreateInstance());
            }

            return(instance);
#else
            return(null);
#endif
        }
        private static SOArchitecture_Settings CreateInstance()
        {
#if UNITY_EDITOR
            SOArchitecture_Settings newSettings = CreateInstance <SOArchitecture_Settings>();

            if (!Directory.Exists(DefaultNewSettingsLocation))
            {
                Directory.CreateDirectory(DefaultNewSettingsLocation);
            }

            AssetDatabase.CreateAsset(newSettings, DefaultNewSettingsLocation + DefaultNewSettingsName);
            AssetDatabase.SaveAssets();

            Selection.activeObject = newSettings;

            Debug.LogWarning("No SOArchitecture_Settings asset found! " +
                             "Created new one at asset root, feel free to move it wherever you please in your project.", newSettings);

            return(newSettings);
#else
            throw new System.NullReferenceException();
#endif
        }