在游戲開發中,我們有時需要制作不規則形狀的按鍵。
Unity3d中使用UGUI的Button控件只能實現規則的長方形按鈕。而通過給Button的Image組件添加對應的貼圖(sprite)我們可以實現外觀上的各異形狀,但是Button所在的矩形塊中的部分空白區域仍能相應點擊,如下圖所示
在本項目中, 我們利用unity的Image提供的alphaHitTestMinimumThreshold屬性, 這個屬性提供了一個閾值來限制射線檢測生效的alpha值。也就是說,比如我們將閾值設為0.5(該值類型為float,有效范圍0到1),那么點擊Image上像素的alpha值小於0.5的區域時,程序是不會檢測到點擊事件的。
1.編寫腳本設置image的alphaHitTestMinimumThreshold屬性
代碼第一行獲取button控件的image,第二行將image的alpha閾值設置為0.1。然后我們寫一個方法,每次按下按鈕時就進行一次計數並顯示,來測試是否按鈕為不規則按鈕
2.將對應的sprite的Read/Write Enabled設置打開
驗證一下效果: