コード例 #1
0
ファイル: TerrainEditor.cs プロジェクト: zhenyao2008/SLGMap
    private void DrawDiffuseLayerGUI(HexGridChunk chunk)
    {
        int count = 0;

        HexGridChunk.TerrainLayer[] terrainLayers = chunk.terrainLayers;
        for (int i = 0; i < terrainLayers.Length; i++)
        {
            HexGridChunk.TerrainLayer curLayer = terrainLayers[i];
            if (curLayer == null || curLayer.terrainIndex == -1)
            {
                continue;
            }
            count++;
            EditorGUILayout.BeginHorizontal();
            Texture2D curTex = curLayer.albedoMap;
            Texture2D newTex = EditorGUILayout.ObjectField(curTex, typeof(Texture2D), false, GUILayout.Width(72), GUILayout.Height(72)) as Texture2D;
            EditorGUILayout.BeginVertical();
            EditorGUILayout.LabelField("Layer: " + (i + 1).ToString());
            EditorGUILayout.BeginHorizontal();
            if (EditorGUILayout.Toggle(materialBrush.TerrainType == (TerrainTypes)i, GUILayout.Width(18)))
            {
                materialBrush.TerrainType = (TerrainTypes)i;
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.EndVertical();
            EditorGUILayout.EndHorizontal();
            if (newTex != curTex)
            {
                chunk.ReplaceAlbedoMap(i, newTex);
            }
        }

        if (terrainLayers.Length < 6 || count < 6)
        {
            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button(CONTENT_ADD_LAYER, GUILayout.MaxWidth(20)))
            {
                chunk.AddTerrainLayer(null);
            }
            EditorGUILayout.EndHorizontal();
        }
    }