Ejemplo n.º 1
0
    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);
        }
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
 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;
     }
 }
Ejemplo n.º 4
0
    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;
	}
Ejemplo n.º 7
0
    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);
    }