遇到了個坑爹的問題,我在想在游戲里寫個功能,大概就是玩家進入一個區域內,整體改變場景的透明度,離開某個區域恢復到最初的透明度。
實際上方法很簡單的,只是在搜索教程的時候,大家都教的是
gameObject.GetComponent.().material.color.a = 0.5;
這樣只能改一個物體的顏色,不能改變所有的。
實際上有個非常簡單的辦法。(這里用JS語句來寫,實際上改成C#也是差不多的)
var? mat : Material;? ? //設置一個Material
function Start()
{mat.color.a = 0.0;} ? //改成全透明
這樣,就可以把整個場景所用的材質球全部改成透明度為0(即隱藏)
唯一的缺點是,這里的改動會在項目運行時保存,所以盡量少改動,除非有我這種游戲設計所需的腦洞不得不做才改之。
2018-3-21補充? 如何更改sprite的顏色
XXX.GetComponent().color = new Color(0.5f, 0.5f, 0.5f, 0.5f);? 4個參數代表的是RGBA,范圍是0-1