Unity代碼設置shader屬性


主要是用到了Material.SetTexture這個方法,具體可以參考如下:

 

舉個例子,比如我想用代碼動態控制Skybox/Cubemap下的Cubemap,可以這樣寫:

public Cubemap text32;
void Start ()
{
    gameObject.GetComponent<MeshRenderer>().material.SetTexture("_Tex", text32);
}

 

有些Material沒有Color屬性.

選取材質球Shader的時候一定要看是否可以在監視面板中修改顏色屬性.如果可以修改,基本上都可以用renderer.material.color = 顏色; 修改.

等同於 renderer.material.SetColor("_Color",顏色);

有些不能直接通過面板調試賦值修改的,就沒法更改顏色.

有些獲取顏色的時候報錯說找不到"_Color"定義,但是可以在檢視面板中更改材質球顏色,如下圖:

你可以通過renderer.material.SetColor("_TintColor",顏色);來修改.

第一個參數是指定要修改的變量名.根據左下角的TintColor決定應該是什么字符串.前面加上一個英文下划線.

 

具體的propertyName可以打開Shader源碼查看,像這樣:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM