Ⅰ unity3d中怎么用代码换材质
我也在找这个问题的答案。
首先说两种都不起作用的方式:先取游戏对象的meterial,
Material mymeterial=getcomponent<Renderer>().material;
或者是取 sharedMaterial。然后使用遍历本游戏中的材质库:
mymaterials = (Material[])UnityEngine.Resources.FindObjectsOfTypeAll(typeof(Material));
得到的是数组誉镇,取其中的值。
mymaterail1=mymaterials[1];
还是用公共参数取得外部给的值: public Material mymaterail1;
这些方式取得准备应用的meterial.
最源虚辩后让 mymeterial=mymaterail1,都不报错,但是都不起作用。
我哪雹缺里出问题了?哪一步不完善?谁回答一下。
Ⅱ unity3d 2017,怎么用按钮换物体材质
很简单的
我就建立一个名字为test的C#脚本
usingSystem.Collections;
usingSystem.Collections.Generic;
usingUnityEngine;
publicclasstest:MonoBehaviour
{
publicGameObject[]GameObjectUse;//你要改变材质的物体组
publicMaterialMaterial1;//第一个材质球
publicMaterialMaterial2;//第二个材质球
publicMaterialMaterial3;//第三个材质球
//因为就三个材质球比较少就简团行单的方式不需要用数组;
voidOnButtonDown1()//按下第一个按钮
{
for(inti=0;i<GameObjectUse.Length;i++)
{
GameObjectUse[i].GetComponent<MeshRenderer>().material=Material1;//将所有的你所要改的材质的物体改成第一个材质
}
}
voidOnButtonDown2()//按下第二个按钮
{
for(inti=0;i<GameObjectUse.Length;i++)
{
GameObjectUse[i].GetComponent<MeshRenderer>().material=Material2;//将所有的你所要改的材质的物体改成第二个毕谨材质
手或基}
}
voidOnButtonDown3()//按下第三个按钮
{
for(inti=0;i<GameObjectUse.Length;i++)
{
GameObjectUse[i].GetComponent<MeshRenderer>().material=Material3;//将所有的你所要改的材质的物体改成第三个材质
}
}
}
然后找到一个一直存在的物体(不会消失隐藏),把脚本拖给它,将参数拖好,再在button里面去设置每个button对应的事件就行了
Ⅲ unity3d中怎么用代码换材质
单击的代码就搜码不写了,换材质代码如下:
Public Material myMaterial ; //定拍宽义材质类型变量,Public型,从外面拖拽上去
//
gameObject.renderer.material = myMaterial; //将新材质赋予物世贺哪体即可
Ⅳ unity3d里面怎么利用代码同时给多个(是多个)物体换材质
首先要想给多个镇兆物体换材质,必脊旅茄须先有那些物体,比如你获取到之后可以存在一个List<GameObject>中,然后遍历这些物体,获取樱察这个物体中是Render组件,替换render组件中的材质即可
Ⅳ unity3d中怎么用代码换材质,不要用拖进去的方法,要动态加载材质的方法。
mat = new Material( "Shader \"Hidden/Alpha\" {" +
"SubShader {" +
" Pass {" +
" ZTest Always Cull Off ZWrite Off" +
" Blend DstAlpha Zero" +
" Color (1,1,1,1)" +
" }" +
"}" +
"尘贺}"
);
这是代码新建的此兄颂
如果是动态换,声明森郑Material mat 然后gameObject.renderer.material = mat;
Ⅵ unity3d如何用代码更换粒子系统的贴图材质
我现在手上没有电脑,所以先简轿迹单说一雀帆丛下思路。其实就是普通的换物体的材质的思路,首先先建几个材质,找到renderer和Material然后赋值就顷樱行。
例如:
public Material A;
this .GetComponent <ParticleRenderer>().material = A;
最新版本的Unity的粒子我还没试过这种功能,但个人认为方向应该是对的。粒子系统的renderer你可以先在面板里面找到相应的组件然后代码获取。