Unity UGUI Button 無法點擊問題一例


理論上,只要一個按鈕自己這一層或者子節點有一個控件勾選了RaycastTarget,並且按鈕為Interactable的.並且不被其他可以點擊的控件阻擋,那么這個按鈕就可以被點擊

在調一個界面時發現一個詭異的問題,有個按鈕死活無法點擊,EventSystem無法檢測到.旁邊的一個按鈕卻是ok的

對比了下,發現兩者的區別是:

可點擊的  x軸旋轉-180

不可點擊  無旋轉

將不可點擊的旋轉-180,發現可以點擊了

排查父節點,發現父節點掛了個Image為了做表現,旋轉了180.

既然確定問題是旋轉導致的,google了一下,發現了帖子:

https://forum.unity.com/threads/button-with-rotation-y-180-can-not-click.293482/

確認UGUI無法接受反向按鈕的點擊.

在和同事討論時,同事提醒,有個開關是否接受反轉的點擊,即 Graphic Raycaster 的 Ignore Reversed Graphics這個選項

當然這個選項默認是勾選的,不接受反向點擊,為點擊時檢測的性能考慮.

所以這種情況下,還是要靠做界面時留心下旋轉.不建議關閉這個開關

后面試了下,哪怕把這個勾關掉,如果我旋轉90度自然也是無法接受點擊的

看了下相關源碼,是按這個Gameobject的Vector3.forward去算的.所以還是要小心

當然可以考慮寫一個腳本,檢測這種forward是不是面向屏幕的,並校正

一般來說,沒有可點擊的物體是背對屏幕或者是90度旋轉的吧.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM