void LightingModePopup() { EditorGUI.BeginChangeCheck(); _lightMode = (eLightMode)EditorGUILayout.Popup("Lighting Mode", (int)_lightMode, Enum.GetNames(typeof(eLightMode))); if (EditorGUI.EndChangeCheck()) { var material = _materialEditor.target as Material; switch (_lightMode) { case eLightMode.VertexLit: if (material.shader.name != kShaderVertexLit) { _materialEditor.SetShader(Shader.Find(kShaderVertexLit), false); } break; case eLightMode.PixelLit: if (material.shader.name != kShaderPixelLit) { _materialEditor.SetShader(Shader.Find(kShaderPixelLit), false); } break; case eLightMode.Unlit: if (material.shader.name != kShaderUnlit) { _materialEditor.SetShader(Shader.Find(kShaderUnlit), false); } break; } MaterialChanged(material); } }
protected virtual bool RenderLightingModes() { bool dataChanged = false; EditorGUI.BeginChangeCheck(); eLightMode lightMode = GetMaterialLightMode((Material)_materialEditor.target); EditorGUI.showMixedValue = false; foreach (Material material in _materialEditor.targets) { if (lightMode != GetMaterialLightMode(material)) { EditorGUI.showMixedValue = true; break; } } lightMode = (eLightMode)EditorGUILayout.Popup(_lightingModeText, (int)lightMode, _lightingModeOptions); if (EditorGUI.EndChangeCheck()) { foreach (Material material in _materialEditor.targets) { switch (lightMode) { case eLightMode.VertexLit: if (material.shader.name != kShaderVertexLit) { _materialEditor.SetShader(Shader.Find(kShaderVertexLit), false); } break; case eLightMode.PixelLit: if (material.shader.name != kShaderPixelLit) { _materialEditor.SetShader(Shader.Find(kShaderPixelLit), false); } break; case eLightMode.Unlit: if (material.shader.name != kShaderUnlit) { _materialEditor.SetShader(Shader.Find(kShaderUnlit), false); } break; } } dataChanged = true; } return(dataChanged); }
void SetLightModeFromShader(Material material) { if (material.shader.name == kShaderPixelLit) { _lightMode = eLightMode.PixelLit; } else if (material.shader.name == kShaderUnlit) { _lightMode = eLightMode.Unlit; } else { _lightMode = eLightMode.VertexLit; } }
protected virtual bool RenderModes() { bool dataChanged = false; //Lighting Mode { EditorGUI.BeginChangeCheck(); eLightMode lightMode = GetMaterialLightMode((Material)_materialEditor.target); EditorGUI.showMixedValue = false; foreach (Material material in _materialEditor.targets) { if (lightMode != GetMaterialLightMode(material)) { EditorGUI.showMixedValue = true; break; } } lightMode = (eLightMode)EditorGUILayout.Popup(_lightingModeText, (int)lightMode, _lightingModeOptions); if (EditorGUI.EndChangeCheck()) { foreach (Material material in _materialEditor.targets) { switch (lightMode) { case eLightMode.VertexLit: if (material.shader.name != kShaderVertexLit) { _materialEditor.SetShader(Shader.Find(kShaderVertexLit), false); } break; case eLightMode.PixelLit: if (material.shader.name != kShaderPixelLit) { _materialEditor.SetShader(Shader.Find(kShaderPixelLit), false); } break; case eLightMode.Unlit: if (material.shader.name != kShaderUnlit) { _materialEditor.SetShader(Shader.Find(kShaderUnlit), false); } break; case eLightMode.LitLightweight: if (material.shader.name != kShaderLitLW) { _materialEditor.SetShader(Shader.Find(kShaderLitLW), false); } break; } } dataChanged = true; } } //Blend Mode { eBlendMode blendMode = GetMaterialBlendMode((Material)_materialEditor.target); EditorGUI.showMixedValue = false; foreach (Material material in _materialEditor.targets) { if (blendMode != GetMaterialBlendMode(material)) { EditorGUI.showMixedValue = true; break; } } EditorGUI.BeginChangeCheck(); blendMode = (eBlendMode)EditorGUILayout.Popup(_blendModeText, (int)blendMode, _blendModeOptions); if (EditorGUI.EndChangeCheck()) { foreach (Material mat in _materialEditor.targets) { SetBlendMode(mat, blendMode); } dataChanged = true; } if (QualitySettings.activeColorSpace == ColorSpace.Linear && !EditorGUI.showMixedValue && blendMode == eBlendMode.PreMultipliedAlpha) { EditorGUILayout.HelpBox(MaterialChecks.kPMANotSupportedLinearMessage, MessageType.Error, true); } } // GUILayout.Label(Styles.advancedText, EditorStyles.boldLabel); // m_MaterialEditor.RenderQueueField(); // m_MaterialEditor.EnableInstancingField(); EditorGUI.BeginChangeCheck(); EditorGUI.showMixedValue = _renderQueue.hasMixedValue; int renderQueue = EditorGUILayout.IntSlider(_rendererQueueText, (int)_renderQueue.floatValue, 0, 49); if (EditorGUI.EndChangeCheck()) { SetInt("_RenderQueue", renderQueue); dataChanged = true; } EditorGUI.BeginChangeCheck(); var culling = (eCulling)Mathf.RoundToInt(_culling.floatValue); EditorGUI.showMixedValue = _culling.hasMixedValue; culling = (eCulling)EditorGUILayout.Popup(_cullingModeText, (int)culling, _cullingModeOptions); if (EditorGUI.EndChangeCheck()) { SetInt("_Cull", (int)culling); dataChanged = true; } EditorGUI.showMixedValue = false; EditorGUI.BeginChangeCheck(); _materialEditor.ShaderProperty(_pixelSnap, _pixelSnapText); dataChanged |= EditorGUI.EndChangeCheck(); return(dataChanged); }
void LightingModePopup () { EditorGUI.BeginChangeCheck(); _lightMode = (eLightMode)EditorGUILayout.Popup("Lighting Mode", (int)_lightMode, Enum.GetNames(typeof(eLightMode))); if (EditorGUI.EndChangeCheck()) { var material = _materialEditor.target as Material; switch (_lightMode) { case eLightMode.VertexLit: if (material.shader.name != ShaderVertexLit) _materialEditor.SetShader(Shader.Find(ShaderVertexLit), false); break; case eLightMode.PixelLit: if (material.shader.name != ShaderPixelLit) _materialEditor.SetShader(Shader.Find(ShaderPixelLit), false); break; case eLightMode.Unlit: if (material.shader.name != ShaderUnlit) _materialEditor.SetShader(Shader.Find(ShaderUnlit), false); break; } MaterialChanged(material); } }
void SetLightModeFromShader (Material material) { if (material.shader.name == ShaderPixelLit) _lightMode = eLightMode.PixelLit; else if (material.shader.name == ShaderUnlit) _lightMode = eLightMode.Unlit; else _lightMode = eLightMode.VertexLit; }
protected virtual bool RenderModes() { bool dataChanged = false; //Lighting Mode { EditorGUI.BeginChangeCheck(); eLightMode lightMode = GetMaterialLightMode((Material)_materialEditor.target); EditorGUI.showMixedValue = false; foreach (Material material in _materialEditor.targets) { if (lightMode != GetMaterialLightMode(material)) { EditorGUI.showMixedValue = true; break; } } lightMode = (eLightMode)EditorGUILayout.Popup(_lightingModeText, (int)lightMode, _lightingModeOptions); if (EditorGUI.EndChangeCheck()) { foreach (Material material in _materialEditor.targets) { switch (lightMode) { case eLightMode.VertexLit: if (material.shader.name != kShaderVertexLit) { _materialEditor.SetShader(Shader.Find(kShaderVertexLit), false); } break; case eLightMode.PixelLit: if (material.shader.name != kShaderPixelLit) { _materialEditor.SetShader(Shader.Find(kShaderPixelLit), false); } break; case eLightMode.Unlit: if (material.shader.name != kShaderUnlit) { _materialEditor.SetShader(Shader.Find(kShaderUnlit), false); } break; } } dataChanged = true; } } //Blend Mode { eBlendMode blendMode = GetMaterialBlendMode((Material)_materialEditor.target); EditorGUI.showMixedValue = false; foreach (Material material in _materialEditor.targets) { if (blendMode != GetMaterialBlendMode(material)) { EditorGUI.showMixedValue = true; break; } } EditorGUI.BeginChangeCheck(); blendMode = (eBlendMode)EditorGUILayout.Popup(_blendModeText, (int)blendMode, _blendModeOptions); if (EditorGUI.EndChangeCheck()) { foreach (Material mat in _materialEditor.targets) { SetBlendMode(mat, blendMode); } dataChanged = true; } } // GUILayout.Label(Styles.advancedText, EditorStyles.boldLabel); // m_MaterialEditor.RenderQueueField(); // m_MaterialEditor.EnableInstancingField(); EditorGUI.BeginChangeCheck(); EditorGUI.showMixedValue = _renderQueue.hasMixedValue; int renderQueue = EditorGUILayout.IntSlider(_rendererQueueText, (int)_renderQueue.floatValue, 0, 49); if (EditorGUI.EndChangeCheck()) { SetInt("_RenderQueue", renderQueue); dataChanged = true; } EditorGUI.BeginChangeCheck(); eCulling culling = (eCulling)Mathf.RoundToInt(_culling.floatValue); EditorGUI.showMixedValue = _culling.hasMixedValue; culling = (eCulling)EditorGUILayout.Popup(_cullingModeText, (int)culling, _cullingModeOptions); if (EditorGUI.EndChangeCheck()) { SetInt("_Cull", (int)culling); dataChanged = true; } EditorGUI.showMixedValue = false; EditorGUI.BeginChangeCheck(); _materialEditor.ShaderProperty(_pixelSnap, _pixelSnapText); if (EditorGUI.EndChangeCheck()) { dataChanged = true; } return(dataChanged); }