public override void OnInspectorGUI()
    {
        Undo.RecordObject(target, "Modified Terrain Material");

        IFerr2DTMaterial mat = target as IFerr2DTMaterial;
        Material         newMat;

        newMat = mat.edgeMaterial = (Material)EditorGUILayout.ObjectField("Edge Material", mat.edgeMaterial, typeof(Material), true);
        if (mat.edgeMaterial != newMat)
        {
            mat.edgeMaterial = newMat;
            Ferr2DT_TerrainMaterialUtility.CheckMaterialMode(mat.edgeMaterial, TextureWrapMode.Clamp);
        }

        newMat = (Material)EditorGUILayout.ObjectField("Fill Material", mat.fillMaterial, typeof(Material), true);
        if (mat.fillMaterial != newMat)
        {
            mat.fillMaterial = newMat;
            Ferr2DT_TerrainMaterialUtility.CheckMaterialMode(mat.fillMaterial, TextureWrapMode.Repeat);
        }

        if (mat.edgeMaterial == null)
        {
            EditorGUILayout.HelpBox("Please add an edge material to enable the material editor!", MessageType.Warning);
        }
        else
        {
            if (GUILayout.Button("Open Material Editor"))
            {
                Ferr2DT_TerrainMaterialWindow.Show(mat);
            }
        }

        DrawUpdateUI();

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);

            Ferr2DT_PathTerrain[] terrain = GameObject.FindObjectsOfType(typeof(Ferr2DT_PathTerrain)) as Ferr2DT_PathTerrain[];
            for (int i = 0; i < terrain.Length; i++)
            {
                if (terrain[i].TerrainMaterial == mat)
                {
                    terrain[i].Build(true);
                }
            }
        }
    }
Exemple #2
0
    public static void Show(Ferr2DT_TerrainMaterial aMaterial)
    {
        Ferr2DT_TerrainMaterialWindow window = EditorWindow.GetWindow <Ferr2DT_TerrainMaterialWindow>();

        window.material       = aMaterial;
        window.wantsMouseMove = true;
        window.title          = "Ferr2DT Editor";
        if (aMaterial != null && aMaterial.edgeMaterial != null)
        {
            window.minSize = new Vector2(width + aMaterial.edgeMaterial.mainTexture.width + 10, aMaterial.edgeMaterial.mainTexture.height + 10);
        }
        window.foldoutStyle           = EditorStyles.foldout;
        window.foldoutStyle.fontStyle = FontStyle.Bold;
        window.currDir = Ferr2DT_TerrainDirection.None;
    }
Exemple #3
0
    public static void Show(Ferr2DT_TerrainMaterial aMaterial)
    {
        Ferr2DT_TerrainMaterialWindow window = EditorWindow.GetWindow <Ferr2DT_TerrainMaterialWindow>();

        window.material          = aMaterial;
        window.wantsMouseMove    = true;
        window.titleContent.text = "Ferr2DT Editor";
        if (aMaterial != null && aMaterial.edgeMaterial != null)
        {
            window.minSize = new Vector2(400, 400);
        }
        window.foldoutStyle           = EditorStyles.foldout;
        window.foldoutStyle.fontStyle = FontStyle.Bold;
        window.currDir = Ferr2DT_TerrainDirection.None;
        window.prevDir = Ferr2DT_TerrainDirection.None;
    }
Exemple #4
0
    public override void OnInspectorGUI()
    {
                #if !(UNITY_4_2 || UNITY_4_1 || UNITY_4_1 || UNITY_4_0 || UNITY_3_5 || UNITY_3_4 || UNITY_3_3 || UNITY_3_1 || UNITY_3_0)
        Undo.RecordObject(target, "Modified Terrain Material");
                #else
        Undo.SetSnapshotTarget(target, "Modified Terrain Material");
                #endif

        Ferr2DT_TerrainMaterial mat = target as Ferr2DT_TerrainMaterial;

        mat.edgeMaterial = (Material)EditorGUILayout.ObjectField("Edge Material", mat.edgeMaterial, typeof(Material), true);
        Material newMat = (Material)EditorGUILayout.ObjectField("Fill Material", mat.fillMaterial, typeof(Material), true);
        if (mat.fillMaterial != newMat)
        {
            mat.fillMaterial = newMat;
            Ferr2DT_TerrainMaterialUtility.CheckMaterialRepeat(mat.fillMaterial);
        }
        if (mat.edgeMaterial == null)
        {
            EditorGUILayout.HelpBox("Please add an edge material to enable the material editor!", MessageType.Warning);
        }
        else
        {
            if (GUILayout.Button("Open Material Editor"))
            {
                Ferr2DT_TerrainMaterialWindow.Show(mat);
            }
        }
        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);

            Ferr2DT_PathTerrain[] terrain = GameObject.FindObjectsOfType(typeof(Ferr2DT_PathTerrain)) as Ferr2DT_PathTerrain[];
            for (int i = 0; i < terrain.Length; i++)
            {
                if (terrain[i].TerrainMaterial == mat)
                {
                    terrain[i].RecreatePath(true);
                }
            }
        }
    }
Exemple #5
0
    public static void Show(IFerr2DTMaterial aMaterial)
    {
        Ferr2DT_TerrainMaterialWindow window = EditorWindow.GetWindow <Ferr2DT_TerrainMaterialWindow>();

        window.material       = aMaterial;
        window.wantsMouseMove = true;
        #if UNITY_5_4_OR_NEWER
        window.titleContent = new GUIContent("Ferr2DT Editor");
        #else
        window.title = "Ferr2DT Editor";
        #endif
        if (aMaterial != null && aMaterial.edgeMaterial != null)
        {
            window.minSize = new Vector2(400, 400);
        }
        window.foldoutStyle           = EditorStyles.foldout;
        window.foldoutStyle.fontStyle = FontStyle.Bold;
        window.currDir = Ferr2DT_TerrainDirection.None;
        window.prevDir = Ferr2DT_TerrainDirection.None;
    }
    public static void Show(IFerr2DTMaterial aMaterial)
    {
        Ferr2DT_TerrainMaterialWindow window = EditorWindow.GetWindow <Ferr2DT_TerrainMaterialWindow>();

        window.material = aMaterial;
    }