Exemplo n.º 1
0
        internal static bool TryGetSettings(out ApexSettings settings)
        {
            if (_instance != null)
            {
                settings = _instance;
                return(true);
            }

            var    apexRoot           = AssetPath.GetApexRoot(false);
            var    dataFolder         = AssetPath.GetApexDataFolder(false);
            var    relativeDataFolder = AssetPath.GetApexDataFolder(true);
            string settingsPath       = AssetPath.Combine(relativeDataFolder, "ApexSettings.asset");

            AssetPath.EnsurePath(relativeDataFolder);

            _instance = AssetDatabase.LoadAssetAtPath(settingsPath, typeof(ApexSettings)) as ApexSettings;

            bool settingsFound = (_instance != null);

            if (!settingsFound)
            {
                _instance = ScriptableObject.CreateInstance <ApexSettings>();

                AssetDatabase.CreateAsset(_instance, settingsPath);
                AssetDatabase.SaveAssets();
            }

            _instance.rootFolder         = apexRoot;
            _instance.dataFolder         = dataFolder;
            _instance.relativeDataFolder = relativeDataFolder;
            settings = _instance;
            return(settingsFound);
        }