zoukankan      html  css  js  c++  java
  • Unity代码设置shader属性

    主要是用到了Material.SetTexture这个方法,具体可以参考如下:

    举个例子,比如我想用代码动态控制Skybox/Cubemap下的Cubemap,可以这样写:

    public Cubemap text32;
    void Start ()
    {
        gameObject.GetComponent<MeshRenderer>().material.SetTexture("_Tex", text32);
    }

    有些Material没有Color属性.

    选取材质球Shader的时候一定要看是否可以在监视面板中修改颜色属性.如果可以修改,基本上都可以用renderer.material.color = 颜色; 修改.

    等同于 renderer.material.SetColor("_Color",颜色);

    有些不能直接通过面板调试赋值修改的,就没法更改颜色.

    有些获取颜色的时候报错说找不到"_Color"定义,但是可以在检视面板中更改材质球颜色,如下图:

    你可以通过renderer.material.SetColor("_TintColor",颜色);来修改.

    第一个参数是指定要修改的变量名.根据左下角的TintColor决定应该是什么字符串.前面加上一个英文下划线.

    具体的propertyName可以打开Shader源码查看,像这样:

  • 相关阅读:
    SP6779 GSS7
    P2218 [HAOI2007]覆盖问题
    day10-包的定义和内部类
    day09-final、多态、抽象类、接口
    day08-代码块和继承
    day07-变量,封装
    day05-方法、数组
    day04-switch、循环语句
    day03-运算符、键盘录入
    day02-基本概念
  • 原文地址:https://www.cnblogs.com/unity3ds/p/6221540.html
Copyright © 2011-2022 走看看