示例#1
0
        /// <summary>
        /// Creates the asset and any directories that are missing along its path.
        /// </summary>
        /// <param name="unityObject">UnityObject to create an asset for.</param>
        /// <param name="unityFilePath">Unity file path (e.g. "Assets/Resources/MyFile.asset".</param>
        public static void CreateAssetAndDirectories(UnityEngine.Object unityObject, string unityFilePath)
        {
            var pathDirectory = Path.GetDirectoryName(unityFilePath) + UnityDirectorySeparator;

            AssetDatabaseUtility.CreateDirectoriesInPath(pathDirectory);

            AssetDatabase.CreateAsset(unityObject, unityFilePath);
        }
示例#2
0
        /// <summary>
        /// Loads the saved data, stored as a ScriptableObject at the specified path. If the file or folders don't exist,
        /// it creates them.
        /// </summary>
        /// <returns>The saved data as a ScriptableObject.</returns>
        /// <param name="unityPathToFile">Unity path to file (e.g. "Assets/Resources/MyFile.asset")</param>
        /// <typeparam name="T">The ScriptableObject type</typeparam>
        public static T LoadOrCreateSaveData <T>(string unityPathToFile) where T : ScriptableObject
        {
            var loadedSettings = LoadSaveData <T>(unityPathToFile);

            if (loadedSettings == null)
            {
                loadedSettings = ScriptableObject.CreateInstance <T>();
                AssetDatabaseUtility.CreateAssetAndDirectories(loadedSettings, unityPathToFile);
            }

            return(loadedSettings);
        }