Unity代码设置shader属性

本文详细介绍了如何在Unity中使用代码动态控制材质的颜色和纹理,包括如何使用Material.SetTexture和SetColor方法,以及如何确定Shader属性名称的过程。适用于游戏开发和Unity引擎使用者。
摘要由CSDN通过智能技术生成

主要是用到了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源码查看,像这样:

 

转载于:https://www.cnblogs.com/unity3ds/p/6221540.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值