Esempio n. 1
0
    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];
            }
        }
    }
Esempio n. 2
0
    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();
        }
    }