internal static void ShowTerrainSplatEditor(string title, string button, Terrain terrain, int index) { TerrainSplatEditor window = EditorWindow.GetWindow <TerrainSplatEditor>(true, title); window.m_ButtonTitle = button; window.InitializeData(terrain, index); }
internal static void EditSplat(MenuCommand item) { Terrain context = (Terrain)item.context; string title = "Edit Terrain Texture"; switch (context.materialType) { case Terrain.MaterialType.BuiltInStandard: title = title + " (Standard)"; break; case Terrain.MaterialType.BuiltInLegacyDiffuse: title = title + " (Diffuse)"; break; case Terrain.MaterialType.BuiltInLegacySpecular: title = title + " (Specular)"; break; case Terrain.MaterialType.Custom: title = title + " (Custom)"; break; } TerrainSplatEditor.ShowTerrainSplatEditor(title, "Apply", (Terrain)item.context, item.userData); }
private void OnGUI() { EditorGUIUtility.labelWidth = (float)((double)this.position.width - 64.0 - 20.0); bool flag1 = true; this.m_ScrollPosition = EditorGUILayout.BeginVerticalScrollView(this.m_ScrollPosition, false, GUI.skin.verticalScrollbar, GUI.skin.scrollView); bool flag2 = flag1 & this.ValidateTerrain(); EditorGUI.BeginChangeCheck(); GUILayout.BeginHorizontal(); string label = string.Empty; float alignmentOffset = 0.0f; switch (this.m_Terrain.materialType) { case Terrain.MaterialType.BuiltInStandard: label = " Albedo (RGB)\nSmoothness (A)"; alignmentOffset = 15f; break; case Terrain.MaterialType.BuiltInLegacyDiffuse: label = "\n Diffuse (RGB)"; alignmentOffset = 15f; break; case Terrain.MaterialType.BuiltInLegacySpecular: label = "Diffuse (RGB)\n Gloss (A)"; alignmentOffset = 12f; break; case Terrain.MaterialType.Custom: label = " \n Splat"; alignmentOffset = 0.0f; break; } TerrainSplatEditor.TextureFieldGUI(label, ref this.m_Texture, alignmentOffset); TerrainSplatEditor.TextureFieldGUI("\nNormal", ref this.m_NormalMap, -4f); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); bool flag3 = flag2 & this.ValidateMainTexture(this.m_Texture); if (flag3) { if (TerrainSplatEditor.IsUsingMetallic(this.m_Terrain.materialType, this.m_Terrain.materialTemplate)) { EditorGUILayout.Space(); float labelWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 75f; this.m_Metallic = EditorGUILayout.Slider("Metallic", this.m_Metallic, 0.0f, 1f, new GUILayoutOption[0]); EditorGUIUtility.labelWidth = labelWidth; } else if (TerrainSplatEditor.IsUsingSpecular(this.m_Terrain.materialType, this.m_Terrain.materialTemplate)) { this.m_Specular = EditorGUILayout.ColorField("Specular", this.m_Specular, new GUILayoutOption[0]); } if (TerrainSplatEditor.IsUsingSmoothness(this.m_Terrain.materialType, this.m_Terrain.materialTemplate) && !TextureUtil.HasAlphaTextureFormat(this.m_Texture.format)) { EditorGUILayout.Space(); float labelWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 75f; this.m_Smoothness = EditorGUILayout.Slider("Smoothness", this.m_Smoothness, 0.0f, 1f, new GUILayoutOption[0]); EditorGUIUtility.labelWidth = labelWidth; } } TerrainSplatEditor.SplatSizeGUI(ref this.m_TileSize, ref this.m_TileOffset); bool flag4 = EditorGUI.EndChangeCheck(); EditorGUILayout.EndScrollView(); GUILayout.FlexibleSpace(); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUI.enabled = flag3; if (GUILayout.Button(this.m_ButtonTitle, new GUILayoutOption[1] { GUILayout.MinWidth(100f) })) { this.ApplyTerrainSplat(); this.Close(); GUIUtility.ExitGUI(); } GUI.enabled = true; GUILayout.EndHorizontal(); if (!flag4 || !flag3 || this.m_Index == -1) { return; } this.ApplyTerrainSplat(); }
internal static void AddSplat(MenuCommand item) { TerrainSplatEditor.ShowTerrainSplatEditor("Add Terrain Texture", "Add", (Terrain)item.context, -1); }
private void OnGUI() { EditorGUIUtility.labelWidth = (float)Screen.width - 64f - 20f; bool flag = true; this.m_ScrollPosition = EditorGUILayout.BeginVerticalScrollView(this.m_ScrollPosition, false, GUI.skin.verticalScrollbar, GUI.skin.scrollView, new GUILayoutOption[0]); flag &= this.ValidateTerrain(); EditorGUI.BeginChangeCheck(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); string label = string.Empty; float alignmentOffset = 0f; switch (this.m_Terrain.materialType) { case Terrain.MaterialType.BuiltInStandard: if (this.m_Terrain.useDefaultSmoothness) { label = "\n Albedo (RGB)"; } else { label = " Albedo (RGB)\nSmoothness (A)"; } alignmentOffset = 15f; break; case Terrain.MaterialType.BuiltInLegacyDiffuse: label = "\n Diffuse (RGB)"; alignmentOffset = 15f; break; case Terrain.MaterialType.BuiltInLegacySpecular: label = "Diffuse (RGB)\n Gloss (A)"; alignmentOffset = 12f; break; case Terrain.MaterialType.Custom: label = " \n Splat"; alignmentOffset = 0f; break; } TerrainSplatEditor.TextureFieldGUI(label, ref this.m_Texture, alignmentOffset); TerrainSplatEditor.TextureFieldGUI("\nNormal", ref this.m_NormalMap, -4f); GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); flag &= this.ValidateMainTexture(this.m_Texture); if (flag) { if (TerrainSplatEditor.IsUsingMetallic(this.m_Terrain.materialType, this.m_Terrain.materialTemplate)) { EditorGUILayout.Space(); float labelWidth = EditorGUIUtility.labelWidth; EditorGUIUtility.labelWidth = 60f; this.m_Metallic = EditorGUILayout.Slider("Metallic", this.m_Metallic, 0f, 1f, new GUILayoutOption[0]); EditorGUIUtility.labelWidth = labelWidth; } else { if (TerrainSplatEditor.IsUsingSpecular(this.m_Terrain.materialType, this.m_Terrain.materialTemplate)) { this.m_Specular = EditorGUILayout.ColorField("Specular", this.m_Specular, new GUILayoutOption[0]); } } } TerrainSplatEditor.SplatSizeGUI(ref this.m_TileSize, ref this.m_TileOffset); bool flag2 = EditorGUI.EndChangeCheck(); EditorGUILayout.EndScrollView(); GUILayout.FlexibleSpace(); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.FlexibleSpace(); GUI.enabled = flag; if (GUILayout.Button(this.m_ButtonTitle, new GUILayoutOption[] { GUILayout.MinWidth(100f) })) { this.ApplyTerrainSplat(); base.Close(); GUIUtility.ExitGUI(); } GUI.enabled = true; GUILayout.EndHorizontal(); if (flag2 && flag && this.m_Index != -1) { this.ApplyTerrainSplat(); } }