Unity 製作不規則形狀button

2022-04-02 20:04:06 字數 674 閱讀 9368

在遊戲開發中,我們有時需要製作不規則形狀的按鍵。

unity3d中使用ugui的button控制項只能實現規則的長方形按鈕。而通過給button的image元件新增對應的貼圖(sprite)我們可以實現外觀上的各異形狀,但是button所在的矩形塊中的部分空白區域仍能相應點選,如下圖所示

在本專案中, 我們利用unity的image提供的alphahittestminimumthreshold屬性, 這個屬性提供了乙個閾值來限制射線檢測生效的alpha值。也就是說,比如我們將閾值設為0.5(該值型別為float,有效範圍0到1),那麼點選image上畫素的alpha值小於0.5的區域時,程式是不會檢測到點選事件的。

**第一行獲取button控制項的image,第二行將image的alpha閾值設定為0.1。然後我們寫乙個方法,每次按下按鈕時就進行一次計數並顯示,來測試是否按鈕為不規則按鈕

驗證一下效果:

不規則形狀的剪下

原理 根據選擇的區域 區域的選擇需要用到graphicspath 根據區域可以得到這部分區域的邊境矩形,從而不需要迴圈整張,只需要迴圈邊境矩形,將矩形中的選擇區域複製到另一種,這樣大大提高了效率。根據選擇的區域,可以得到複製出位於graphicspath中的這部分,同時設定這部分為透明,同時還要設定...

製作ttplayer式的不規則形狀的視窗

製作ttplayer式的不規則形狀的視窗 結合半透明視窗的實現,更好的理解 setlayeredwindowattributes 函式的功能 setlayeredwindowattributes的函式原型如下 bool setlayeredwindowattributes hwnd hwnd,han...

Qt學習 不規則窗體形狀

窗體可以設定為的形狀 如下 其實就是將窗體設定乙個遮罩,此遮罩設為的遮罩即可 這裡還涉及到一些event的函式過載,具體看 標頭檔案 cpp view plain copy print?include include include class widget public qwidget inclu...