• unity 多个materials 赋值


    如果有静态图片,属性修改成sprite

     Material[] newBufMat = new Material[newPlayer.GetComponent().materials.Length];
            for (int i = 0; i < 2; i++)
            {
                newBufMat[i] = new Material(Shader.Find("Standard"));
                newBufMat[i].color = new Color(R / 255, G / 255, B / 255, 1);
            }


            newPlayer.GetComponent().materials = newBufMat;

    //更改渲染模式,为透明

    SetMaterialRenderingMode(newBufMat[1], RenderingMode.Transparent);

    public enum RenderingMode
        {
            Opaque,
            Cutout,
            Fade,
            Transparent,
        }

        public static void SetMaterialRenderingMode(Material material, RenderingMode renderingMode)
        {
            switch (renderingMode)
            {
                case RenderingMode.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 RenderingMode.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 RenderingMode.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 RenderingMode.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;
            }
        }

  • 相关阅读:
    【Vant2】Tab标签页组件自动跳转的坑
    Http实战之Wireshark抓包分析
    antd树型表格的逐级展开折叠(每次展开都只展开到当前未展开的最小层级,每次折叠都只折叠到当前未折叠的最大层级)
    GO语言-数据结构-栈
    AI大数据处理与分析实战--体育问卷分析
    VUEX全网最详细讲解之一
    十年磨一剑,奋进新征程!麒麟信安在上交所科创板成功上市
    【AI实践案例】基于Encoder-Decoder模型的Word Level英语到Marathi神经机器翻译
    JVM 堆外内存查看方法
    node开发微信群聊机器人第④章
  • 原文地址:https://blog.csdn.net/frankxixu/article/details/126670259