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!"); } }
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!"); } }