Ⅰ 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你可以先在面板裡面找到相應的組件然後代碼獲取。