Unity中爲UGUI精靈自定義事件響應區域

    到目前爲止,UGUI組件功能還很侷限,這就需要開發者自己動手實現某些開發需求。UGUI中的組件(以按鈕Button爲例)默認響應事件的區域爲整個UI元素區域,我們也可以自定義精靈某些特定區域用來響應事件。

    我們知道所有UI都有Image組件,其中有RaycastTarget屬性,勾選該屬性爲true則表示運行時UI精靈會響應相應交互事件,這套UGUI(包括NGUI)是通過射線檢測實現的交互響應,那麼我們可以通過添加可編輯碰撞器的方式,修改Image默認檢測區域:


現在我們想要點擊按鈕中間三角形區域按鈕纔有效,需要刪除Button原有Image組件,接着爲按鈕Button添加PolygonCollider2D組件:


點擊EditCollider編輯該多邊形碰撞器,

接着我們添加一個C#類:CustomButtonArea,該類繼承自Image,我們查看Image中原生方法,發現有如下內容:


完整代碼截圖如下:


    我們重寫了Image中一個返回值爲Bool的是否爲射線檢測區域的方法,

爲Button添加自定義類,運行unity,我們發現整個按鈕只有點擊中間三角形區域按鈕纔有響應。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章