public override void OnInspectorGUI() { NoiseBox t = target as NoiseBox; if (GUILayout.Button("Add")) { t.noises.Add(new NoiseBox.Noise(0, 0)); } t.overallStrength = EditorGUILayout.FloatField(t.overallStrength); EditorGUILayout.BeginHorizontal(); precision = EditorGUILayout.IntField(precision); if (GUILayout.Button("Randomize")) { t.noises = new List <NoiseBox.Noise>(); t.Randomize(precision); } EditorGUILayout.EndHorizontal(); for (int i = t.noises.Count - 1; i >= 0; i--) { EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Delete")) { t.noises.RemoveAt(i); continue; } DrawNoise(t.noises[i]); EditorGUILayout.EndHorizontal(); } }
void OnGUI() { GUILayout.Label("Texture Creation", EditorStyles.boldLabel); noiseBox = (NoiseBox)EditorGUILayout.ObjectField(noiseBox, typeof(NoiseBox), true); EditorGUI.DrawPreviewTexture(new Rect(10, 50, 256, 256), texture); GUILayout.Space(264); GUILayout.BeginScrollView(scrollPosition); TextureSettings(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Rebuild", GUILayout.MaxWidth(150))) { Rebuild(); } if (GUILayout.Button("Save", GUILayout.MaxWidth(150))) { string path = EditorUtility.SaveFilePanel("Save...", "Assets", "texture", "png"); System.IO.File.WriteAllBytes(path, texture.EncodeToPNG()); AssetDatabase.Refresh(); //string normalPath = path.Replace(".png", "_N.png"); //System.IO.File.WriteAllBytes(normalPath, GetNormal().EncodeToPNG()); } GUILayout.EndHorizontal(); EditorGUI.BeginChangeCheck(); offset = EditorGUILayout.Vector2Field("Offset", offset); rotation = EditorGUILayout.Slider(rotation, 0, 360); fillColor = EditorGUILayout.ColorField(fillColor); secondary = EditorGUILayout.ColorField(secondary); if (EditorGUI.EndChangeCheck() || NoiseBoxWindow.NoiseBoxEditor(noiseBox)) { Rebuild(); } GUILayout.EndScrollView(); }
private void OnGUI() { noise = (NoiseBox)EditorGUILayout.ObjectField(noise, typeof(NoiseBox), true); EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(GUILayout.MaxWidth(277), GUILayout.MinWidth(277)); EditorGUI.DrawPreviewTexture(new Rect(10, 20, 256, 256), texture); GUILayout.Space(264); TextureSettings(); if (GUILayout.Button("Rebuild", GUILayout.MaxWidth(150))) { Rebuild(); } if (GUILayout.Button("Save as PNG", GUILayout.MaxWidth(150))) { string path = EditorUtility.SaveFilePanel("Save...", "Assets", "texture", "png"); System.IO.File.WriteAllBytes(path, texture.EncodeToPNG()); AssetDatabase.Refresh(); //string normalPath = path.Replace(".png", "_N.png"); //System.IO.File.WriteAllBytes(normalPath, GetNormal().EncodeToPNG()); } EditorGUILayout.EndVertical(); if (NoiseBoxEditor(noise)) { Rebuild(); } EditorGUILayout.EndHorizontal(); }
public static void CreateMyAsset() { NoiseBox asset = ScriptableObject.CreateInstance <NoiseBox>(); // AssetDatabase.CreateAsset(asset, "Assets/Fighter.asset"); //AssetDatabase.SaveAssets(); var path = ""; var obj = Selection.activeObject; if (obj == null) { path = "Assets"; } else { path = AssetDatabase.GetAssetPath(obj.GetInstanceID()); } if (path.Length > 0 && Directory.Exists(path)) { ProjectWindowUtil.CreateAsset(asset, path + "Noise.asset"); } else { ProjectWindowUtil.CreateAsset(asset, "Assets/Noise.asset"); } //EditorUtility.FocusProjectWindow(); //Selection.activeObject = asset; }
public void Randomize() { noise = ScriptableObject.CreateInstance <NoiseBox>(); color = Random.ColorHSV(); complement = Random.ColorHSV(); noise.Randomize(); offset = new Vector3(Random.Range(0, 100f), Random.Range(0, 100f), Random.Range(0, 100f)); }
public static void CreateMyAsset() { NoiseBox asset = ScriptableObject.CreateInstance <NoiseBox>(); // AssetDatabase.CreateAsset(asset, "Assets/Fighter.asset"); //AssetDatabase.SaveAssets(); ProjectWindowUtil.CreateAsset(asset, "Assets/Noise.asset"); //EditorUtility.FocusProjectWindow(); //Selection.activeObject = asset; }
public static bool NoiseBoxEditor(NoiseBox nb) { if (nb == null) { return(false); } EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Add")) { nb.noises.Add(new NoiseMaterial()); } nb.colored = EditorGUILayout.Toggle("Colored", nb.colored); EditorGUILayout.EndHorizontal(); nb.useEquation = EditorGUILayout.Toggle("Use Equation", nb.useEquation); if (nb.useEquation) { nb.equation = EditorGUILayout.TextField("Equation:", nb.equation); } scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition); EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginVertical("Box"); for (int i = 0; i < nb.noises.Count; i += 2) { EditorGUILayout.BeginHorizontal(); if (NoiseEditor(nb.noises[i], nb.colored, i)) { nb.noises.RemoveAt(i); i--; } if (i + 1 < nb.noises.Count) { if (NoiseEditor(nb.noises[i + 1], nb.colored, i + 1)) { nb.noises.RemoveAt(i + 1); i--; } } EditorGUILayout.EndHorizontal(); } EditorUtility.SetDirty(nb); EditorGUILayout.EndVertical(); EditorGUILayout.EndScrollView(); EditorGUILayout.EndVertical(); return(EditorGUI.EndChangeCheck()); }
public static bool NoiseBoxEditor(NoiseBox nb) { if (nb == null) { return(false); } EditorGUI.BeginChangeCheck(); scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition); if (GUILayout.Button("Add")) { nb.noises.Add(new NoiseMaterial()); } foreach (NoiseMaterial n in nb.noises) { NoiseEditor(n); } EditorUtility.SetDirty(nb); EditorGUILayout.EndScrollView(); return(EditorGUI.EndChangeCheck()); }
private void OnGUI() { noise = (NoiseBox)EditorGUILayout.ObjectField(noise, typeof(NoiseBox), true); NoiseBoxEditor(noise); }