UGUI_忽略UI被拦截事件
?
如果一個按鈕有一半的區域被Image擋住,那么被擋住的按鈕區域的點擊事件就會被攔截掉。解決這個問題有兩個方法。
?
2.通過重寫Image類,讓Image不參與射線檢測。
?
繼承Image 重寫 IsRaycastLocationValid 直接返回 false就行了。
C#
1 2 3 4 5 6 7 8 9 10 | using UnityEngine; using System.Collections; using UnityEngine.UI; public class ImagePlus : Image { ? ? ????override public bool IsRaycastLocationValid(Vector2 sp, Camera eventCamera) ????{ ????????return false; ????} } ? ? |
?
如果你想整體的關閉某個父節點下的所有UI事件。把如下腳本綁定在父節點上即可。
1 2 3 4 5 6 7 8 9 10 11 | using UnityEngine; using System.Collections; ? ? public class UIFocus : MonoBehaviour ,ICanvasRaycastFilter { ????public bool IsFocus= false; ????public bool IsRaycastLocationValid (Vector2 sp, Camera eventCamera) ????{ ????????return IsFocus; ????} } |
?
?
3.加個UGUI內建的CanvasGroup組件, 把Interactable和Blocks Raycasts選項取消。?
?
?
總結
以上是生活随笔為你收集整理的UGUI_忽略UI被拦截事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UGUI_不添加摄像机解决UI与UI特效
- 下一篇: UGUI_判断鼠标或者手指是否点击在UI