protected void RenderingModeOptions(MaterialEditor materialEditor) { EditorGUI.BeginChangeCheck(); EditorGUI.showMixedValue = renderingMode.hasMixedValue; RenderingMode mode = (RenderingMode)renderingMode.floatValue; EditorGUI.BeginChangeCheck(); mode = (RenderingMode)EditorGUILayout.Popup(renderingMode.displayName, (int)mode, BaseStyles.renderingModeNames); if (EditorGUI.EndChangeCheck()) { materialEditor.RegisterPropertyChangeUndo(renderingMode.displayName); renderingMode.floatValue = (float)mode; Object[] targets = renderingMode.targets; foreach (Object target in targets) { MaterialChanged((Material)target); } } EditorGUI.showMixedValue = false; if ((RenderingMode)renderingMode.floatValue == RenderingMode.Custom) { EditorGUI.indentLevel += 2; customRenderingMode.floatValue = EditorGUILayout.Popup(customRenderingMode.displayName, (int)customRenderingMode.floatValue, BaseStyles.customRenderingModeNames); materialEditor.ShaderProperty(sourceBlend, BaseStyles.sourceBlend); materialEditor.ShaderProperty(destinationBlend, BaseStyles.destinationBlend); materialEditor.ShaderProperty(blendOperation, BaseStyles.blendOperation); materialEditor.ShaderProperty(depthTest, BaseStyles.depthTest); depthWrite.floatValue = EditorGUILayout.Popup(depthWrite.displayName, (int)depthWrite.floatValue, BaseStyles.depthWriteNames); materialEditor.ShaderProperty(depthOffsetFactor, BaseStyles.depthOffsetFactor); materialEditor.ShaderProperty(depthOffsetUnits, BaseStyles.depthOffsetUnits); materialEditor.ShaderProperty(colorWriteMask, BaseStyles.colorWriteMask); EditorGUI.indentLevel -= 2; } if (!PropertyEnabled(depthWrite)) { if (MixedRealityToolkitShaderGUIUtilities.DisplayDepthWriteWarning(materialEditor)) { renderingMode.floatValue = (float)RenderingMode.Custom; depthWrite.floatValue = (float)DepthWrite.On; } } materialEditor.ShaderProperty(cullMode, BaseStyles.cullMode); }
protected void DoModePanel() { EditorGUI.indentLevel += 1; var depthWrite = FindProperty("_ZWrite", m_Properties, false); if (depthWrite != null) { m_Editor.ShaderProperty(depthWrite, depthWrite.displayName); if (depthWrite.floatValue.Equals(0.0f)) { if (MixedRealityToolkitShaderGUIUtilities.DisplayDepthWriteWarning(m_Editor)) { depthWrite.floatValue = 1.0f; } } } EditorGUI.indentLevel -= 1; EditorGUILayout.Space(); }