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