主要是用到了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源碼查看,像這樣: