namespace AtlasUtility { using UnityEditor; using UnityEngine; using System.IO; public class SerializeObject : MonoBehaviour { #region Variable public static string DefaultPath { get { return DefaultDirectory + DefaultName; } } public static string SerializeObjectPath { get { return AssetDatabase.GUIDToAssetPath(SerializeObjectGUID); } } public static string SerializeObjectGUID { get { return PlayerPrefs.GetString(Key_SerializeObjectGUID, ""); } } private static string DefaultName = "SerializeObject.prefab"; private static string DefaultDirectory = "Assets/AtlasUtility/"; private static string Key_SerializeObjectGUID = "AtlasUtility_SerializeObjectGUID"; #endregion public static AtlasUtility GetAtlasUtility() { if (File.Exists(SerializeObjectPath)) { return AssetDatabase.LoadAssetAtPath(SerializeObjectPath); } else { Create(); return AssetDatabase.LoadAssetAtPath(SerializeObjectPath); } } public static void Create() { if (!Directory.Exists(DefaultDirectory)) { Directory.CreateDirectory(DefaultDirectory); } GameObject serializeObject = new GameObject("AtlasUtility_SerializeObject"); serializeObject.AddComponent(); PrefabUtility.CreatePrefab(DefaultPath, serializeObject); DestroyImmediate(serializeObject); PlayerPrefs.SetString(Key_SerializeObjectGUID, AssetDatabase.AssetPathToGUID(DefaultPath)); } } }