更换standard shader模式

来源:互联网 发布:淘宝店关闭了还能开吗 编辑:程序博客网 时间:2024/04/29 15:40
这仅仅是改了选项,实际渲染序列并没有发生变化:
using UnityEngine;using System.Collections;public class test : MonoBehaviour{// Use this for initializationvoid Start (){}// Update is called once per framevoid Update (){if (Input.GetMouseButtonDown (0)) {StartCoroutine ("ChangeColor");}}IEnumerator ChangeColor (){gameObject.GetComponent<Renderer> ().material.SetFloat ("_Mode", 3);yield return null;Color color = Color.red;gameObject.GetComponent<Renderer> ().material.color = new Color (color.r, color.g, color.b, 0.5f);}}



正确的方式:

switch (blendMode)        {            case BlendMode.Opaque:                material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);                material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero);                material.SetInt("_ZWrite", 1);                material.DisableKeyword("_ALPHATEST_ON");                material.DisableKeyword("_ALPHABLEND_ON");                material.DisableKeyword("_ALPHAPREMULTIPLY_ON");                material.renderQueue = -1;                break;            case BlendMode.Cutout:                material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);                material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero);                material.SetInt("_ZWrite", 1);                material.EnableKeyword("_ALPHATEST_ON");                material.DisableKeyword("_ALPHABLEND_ON");                material.DisableKeyword("_ALPHAPREMULTIPLY_ON");                material.renderQueue = 2450;                break;            case BlendMode.Fade:                material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);                material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);                material.SetInt("_ZWrite", 0);                material.DisableKeyword("_ALPHATEST_ON");                material.EnableKeyword("_ALPHABLEND_ON");                material.DisableKeyword("_ALPHAPREMULTIPLY_ON");                material.renderQueue = 3000;                break;            case BlendMode.Transparent:                material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);                material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);                material.SetInt("_ZWrite", 0);                material.DisableKeyword("_ALPHATEST_ON");                material.DisableKeyword("_ALPHABLEND_ON");                material.EnableKeyword("_ALPHAPREMULTIPLY_ON");                material.renderQueue = 3000;                break;        }


0 0