protected void DrawTerrainGUI(MaterialEditor materialEditor) { // Don't draw the header if we have empty content if (enableHeightBlend == null && enableInstancedPerPixelNormal == null && customProperties.Count == 0) { return; } using (var header = new MaterialHeaderScope(styles.terrainText, (uint)Expandable.Terrain, materialEditor)) { if (header.expanded) { if (enableHeightBlend != null) { materialEditor.ShaderProperty(enableHeightBlend, styles.enableHeightBlend); if (enableHeightBlend.floatValue > 0) { EditorGUI.indentLevel++; materialEditor.ShaderProperty(heightTransition, styles.heightTransition); EditorGUI.indentLevel--; } } if (enableInstancedPerPixelNormal != null) { EditorGUI.BeginDisabledGroup(!materialEditor.IsInstancingEnabled()); materialEditor.ShaderProperty(enableInstancedPerPixelNormal, styles.enableInstancedPerPixelNormal); EditorGUI.EndDisabledGroup(); } foreach (var prop in customProperties) { materialEditor.ShaderProperty(prop, prop.displayName); } } } }
public override void OnGUI() { using (var header = new MaterialHeaderScope(Styles.header, (uint)m_ExpandableBit, materialEditor)) { if (header.expanded) { DrawAdvancedOptionsGUI(); } } }
public override void OnGUI() { // We're using a subheader here because we know that layering options are only used within layers using (var header = new MaterialHeaderScope(Styles.header, (uint)m_ExpandableBit, materialEditor, colorDot: kLayerColors[m_LayerIndex], subHeader: true)) { if (header.expanded) { DrawLayeringOptionsGUI(); } } }
public override void OnGUI() { bool subHeader = (m_Features & Features.SubHeader) != 0; using (var header = new MaterialHeaderScope(Styles.header, (uint)m_ExpandableBit, materialEditor, subHeader: subHeader, colorDot: m_DotColor)) { if (header.expanded) { DrawDetailsGUI(); } } }
public override void OnGUI() { for (int layerIndex = 0; layerIndex < layerCount.floatValue; layerIndex++) { using (var header = new MaterialHeaderScope(Styles.headers[layerIndex], (uint)Styles.layerExpandableBits[layerIndex], materialEditor)) { if (header.expanded) { DrawLayerGUI(layerIndex); } } } }
public override void OnGUI() { // If we don't have tesselation if (tessellationMode == null) { return; } using (var header = new MaterialHeaderScope(Styles.header, (uint)m_ExpandableBit, materialEditor)) { if (header.expanded) { DrawTesselationGUI(); } } }
public override void OnGUI() { // Disable the block if one of the materials is not transparent: if (materials.Any(material => material.GetSurfaceType() != SurfaceType.Transparent)) { return; } using (var header = new MaterialHeaderScope(Styles.header, (uint)m_ExpandableBit, materialEditor)) { if (header.expanded) { transparencyBlocks.OnGUI(materialEditor, properties); } } }
public override void OnGUI() { bool subHeader = (m_Features & Features.SubHeader) != 0; using (var header = new MaterialHeaderScope(Styles.header, (uint)m_ExpandableBit, materialEditor, subHeader: subHeader, colorDot: m_DotColor)) { if (header.expanded) { if ((m_Features & Features.Standard) != 0) { DrawSurfaceInputsGUI(); } if ((m_Features & Features.LayerOptions) != 0) { DrawLayerOptionsGUI(); } } } }