关于Unity中的Emission和Albedo中的Color的修改

Albedo的Color修改

 obj.GetComponent<Renderer>().material.SetColor("_Color", new Color(0, 0, 0));

_Color是单下划线

Emission的Color修改

obj.GetComponent<Renderer>().material.SetColor("_EmissionColor", new Color(0, 0, 0, 0)); 

_EmissionColor是单下划线

但是注意:如果要实现交换变色的话,也就是在Update里面进行变换颜色的话,最好还是修改对应组件的材质,不然直接修改颜色的值的话,Unity里面会来不及进行渲染,导致颜色更改不来,可以使用以下方法(连续变换),如果不想要连续变换,只需要变换一次的话,可以使用协程

[Header("灯光")]
public GameObject light;		//	自行拖动
[Header("材质一")]
public Material lightColor1;	//	自行拖动
[Header("材质二")]
public Material lightColor2;	//	自行拖动
private float timer;			//	计时器
private float interval = 1f;
private bool isTurn;
private void Awake()
{
	isTurn = true;
}
private void Update()
{
	timer += Time.deltaTime;
    if (timer > interval)
    {
        if (isTurn)
            light.GetComponent<MeshRenderer>().material = lightColor1;
        else
            light.GetComponent<MeshRenderer>().material = lightColor2;
        isTurn = !isTurn;
        timer = 0;
    }
}	
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值