Unity3d 为什么修改renderer.materials[0]材质球数组没有效果?
GameObject.Find("A").transform.renderer.materials[0]=BanTouMing;GameObject.Find("A")....
GameObject.Find("A").transform.renderer.materials[0] = BanTouMing;
GameObject.Find("A").transform.renderer.materials[1] = BanTouMing;
A物体有两个材质球,我想将两个材质球全都变成半透明的,即事先存好的BanTouMing。但是执行后即无反应也没报错。
为何会这样,或者说,怎样修改一个有多个材质球物体的材质球? 展开
GameObject.Find("A").transform.renderer.materials[1] = BanTouMing;
A物体有两个材质球,我想将两个材质球全都变成半透明的,即事先存好的BanTouMing。但是执行后即无反应也没报错。
为何会这样,或者说,怎样修改一个有多个材质球物体的材质球? 展开
1个回答
展开全部
看没人回答,我就说一下吧。首先一个模型上有多个材质时,我还真不知道怎么find。给你建议,找美工合并材质,吧两个合成一个大的图片,这个美工是可以解决的。这样你就只有一个材质了。其次,如果你想把模型变成半透明,没试过你那样是不是可以,我的做法是,改变一下材质shader属性Transparent->Diffuse。然后gameObject.renderer.material.color.a = alpha(alpha值是0-1的,0.5就表示半透明了)
追问
直接改shader的话容易在还原时让原来的材质丢失,所以我选择了直接替换材质球。目前也没什么解决办法,只好把模型分成多份单材质的模型了。估计你说的合成大图片他们应该还不会。
追答
不知道你说的还原指的是什么,如果是变成初始的不透明的,gameObject.renderer.material.color.a = 1就变成不透明呗,为什么材质会丢失呢?我没遇到过材质丢失的情况啊,如果你那样也可以就按照自己思路来吧!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |