Пример #1
0
    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();
    }
Пример #3
0
 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();
 }
Пример #4
0
    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;
    }
Пример #5
0
 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));
 }
Пример #6
0
    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;
    }
Пример #7
0
    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());
    }
Пример #8
0
    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());
    }
Пример #9
0
 private void OnGUI()
 {
     noise = (NoiseBox)EditorGUILayout.ObjectField(noise, typeof(NoiseBox), true);
     NoiseBoxEditor(noise);
 }