unity3d中怎么用代码换材质

就是一个cube单击一次换一次材质,请问程序怎么写... 就是一个cube单击一次换一次材质,请问程序怎么写 展开
 我来答
xhgzgezzm
推荐于2018-04-29 · TA获得超过490个赞
知道小有建树答主
回答量:63
采纳率:0%
帮助的人:93.8万
展开全部
单击的代码就不写了,换材质代码如下:

Public Material myMaterial ; //定义材质类型变量,Public型,从外面拖拽上去
//
gameObject.renderer.material = myMaterial; //将新材质赋予物体即可
追问
我的意思是鼠标单击物体一次换一次材质,比如我事先设定好了3种材质都赋予这个物体,我想单击鼠标后就变换一次材质。你这个只是一次性变换,我想要连续的,能不能帮我把完整的代码写出来,谢谢
大连飞龙在天
2017-10-21 · TA获得超过220个赞
知道答主
回答量:48
采纳率:80%
帮助的人:8.6万
展开全部
我也在找这个问题的答案。
首先说两种都不起作用的方式:先取游戏对象的meterial,
Material mymeterial=getcomponent().material;
或者是取 sharedMaterial。然后使用遍历本游戏中的材质库:
mymaterials = (Material[])UnityEngine.Resources.FindObjectsOfTypeAll(typeof(Material));
得到的是数组,取其中的值。
mymaterail1=mymaterials[1];
还是用公共参数取得外部给的值: public Material mymaterail1;
这些方式取得准备应用的meterial.
最后让 mymeterial=mymaterail1,都不报错,但是都不起作用。
我哪里出问题了?哪一步不完善?谁回答一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
坠爱哆啦A梦
2018-04-29 · TA获得超过140个赞
知道答主
回答量:126
采纳率:0%
帮助的人:19.7万
展开全部
楼上那个方法虽然过时了,但是原理是正确的,现在用gameObject.GetComponent<Render>().material=新的材质,说无效的该不会是没有拖新的材质球吧..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式