在遊戲開發中,我們有時需要製作不規則形狀的按鍵。
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...