Unity3D中模型变换颜色的问题!!急~~~~~~~!!!

2024-10-28 19:38:55
推荐回答(4个)
回答1:

你的代码是为被给脚本的物体服务的,所以他只改变那个被给的脚本的物体的颜色
要想改变子物体,必须要遍历子物体,遍历部分可以如下写法
*****************************************************************************************************
//得到所有可渲染的子物体
Renderer[] rds = transform.GetComponentsInChildren();
//逐一遍历他的子物体
foreach (Renderer r in rds)
{
//逐一遍历子物体的子材质
foreach (Material m in r.materials)
{
m.color = Color.black;
}
}

回答2:

如果是unity自建的object,应该没问题,但如果是导入的,可能会出现改不了的情况,其颜色也可能是由材质贴图控制的~这种情况下应该改贴图颜色才能改变颜色吧?~~
如果真是材质贴图倒方便了~~你可以通过PS多设置几张贴图,直接更改贴图就可以实现改变颜色了~~我用过这种方便 ~~嘻嘻~
我对unity不是很精通~~希望这个回答能给你帮上点小忙,而不是添乱~~嘻嘻~~~

回答3:

只要把你想要换色的部分都通用一个材质球(比如已经实现换色的那个材质球)就可以了,我刚好也在做一个汽车,已经实现车体换色了。

回答4:

脚本赋给根对象就行了,不必遍历子对象