void LoadPaletteData() { string path = "Assets"; foreach (UnityEngine.Object obj in Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.Assets)) { path = AssetDatabase.GetAssetPath(obj); if (File.Exists(path)) { path = Path.GetDirectoryName(path); } break; } string loadDir = EditorUtility.OpenFilePanel("Open Palette Texture Data", path, "datapal.asset"); loadDir = loadDir.Replace(Application.dataPath, "Assets"); if (!string.IsNullOrEmpty(loadDir)) { //PaletteTextureSaveData paletteData = AssetDatabase.LoadAssetAtPath<PaletteTextureSaveData>(loadDir); // compatibility update for older versions of Unity PaletteTextureSaveData paletteData = AssetDatabase.LoadAssetAtPath(loadDir, typeof(PaletteTextureSaveData)) as PaletteTextureSaveData; PaletteName = paletteData.PaletteName; BasePalette = paletteData.BasePalette; Palettes = new TextAsset[paletteData.Palettes.Length]; for (int i = 0; i < paletteData.Palettes.Length; ++i) { Palettes[i] = paletteData.Palettes[i]; } } }
void SavePaletteData() { string path = "Assets"; foreach (UnityEngine.Object obj in Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.Assets)) { path = AssetDatabase.GetAssetPath(obj); if (File.Exists(path)) { path = Path.GetDirectoryName(path); } break; } string saveDir = EditorUtility.SaveFilePanel("Save Palette Texture Data", path, "", "datapal.asset"); saveDir = saveDir.Replace(Application.dataPath, "Assets"); if (!string.IsNullOrEmpty(saveDir)) { //PaletteTextureSaveData paletteData = PaletteBuilderWindow.CreateAsset<PaletteTextureSaveData>(saveDir); PaletteTextureSaveData paletteData = ScriptableObject.CreateInstance <PaletteTextureSaveData>(); paletteData.PaletteName = PaletteName; paletteData.BasePalette = BasePalette; paletteData.Palettes = new TextAsset[Palettes.Length]; for (int i = 0; i < Palettes.Length; ++i) { paletteData.Palettes[i] = Palettes[i]; } AssetDatabase.CreateAsset(paletteData, saveDir); AssetDatabase.SaveAssets(); } }