示例#1
0
    public override void OnInspectorGUI()
    {
        GradientMapper gradientMapper = target as GradientMapper;

        DrawDefaultInspector();
        if (gradientMapper.Testing)
        {
            EditorGUILayout.HelpBox("Testing is active.", MessageType.Warning, true);
        }

        _subfolder = EditorGUILayout.Popup("Subfolder", _subfolder, Subfolders);

        if (GUILayout.Button("Make Gradient Map"))
        {
            gradientMapper.Testing = false;
            if (!AssetDatabase.IsValidFolder("Assets/Resources/Gradients"))
            {
                AssetDatabase.CreateFolder("Assets/Resources/", "Gradients");
                AssetDatabase.SaveAssets();
            }

            if (!Directory.Exists($"{Application.dataPath}Resources/Gradients/{Subfolders[_subfolder]}"))
            {
                Directory.CreateDirectory($"{Application.dataPath}/Resources/Gradients/{Subfolders[_subfolder]}");
                GradientMapper.TotalMaps = 0;
            }
            else
            {
                GradientMapper.TotalMaps = Directory.GetFiles(Application.dataPath + "/Resources/Gradients/").Length;
            }

            byte[] bytes = gradientMapper.Texture.EncodeToPNG();

            string fileName;
            do
            {
                fileName = $"{Application.dataPath}/Resources/Gradients/{Subfolders[_subfolder] + '/'}gradient_{GradientMapper.TotalMaps++}.png";
            }while (File.Exists(fileName));

            File.WriteAllBytes(fileName, bytes);
            AssetDatabase.Refresh();

            Debug.Log("Gradient map saved!");
        }
    }
示例#2
0
    public override void OnInspectorGUI()
    {
        GradientMapper gradientMapper = target as GradientMapper;

        DrawDefaultInspector();
        if (gradientMapper.testing)
        {
            EditorGUILayout.HelpBox("Testing is active.", MessageType.Warning, true);
        }
        if (GUILayout.Button("Make Gradient Map"))
        {
            gradientMapper.testing = false;
            if (!AssetDatabase.IsValidFolder("Assets/GradientMaps"))
            {
                AssetDatabase.CreateFolder("Assets/", "GradientMaps");
                AssetDatabase.SaveAssets();
            }
            if (!Directory.Exists(Application.dataPath + "GradientMaps"))
            {
                Directory.CreateDirectory(Application.dataPath + "/GradientMaps/");
                GradientMapper.totalMaps = 0;
            }
            else
            {
                GradientMapper.totalMaps = Directory.GetFiles(Application.dataPath + "/GradientMaps/").Length;
            }

            byte[] bytes = gradientMapper.texture.EncodeToPNG();
            while (File.Exists(Application.dataPath + "/GradientMaps/gradient_map_" + GradientMapper.totalMaps.ToString() + ".png"))
            {
                GradientMapper.totalMaps++;
            }
            File.WriteAllBytes(Application.dataPath + "/GradientMaps/gradient_map_" + GradientMapper.totalMaps.ToString() + ".png", bytes);
            AssetDatabase.Refresh();

            Debug.Log("Gradient map saved!");
        }
    }