Skip to content

【觅长生】鼠标点击信号有时会穿过Trainer界面 #23

@EndsM

Description

@EndsM

当鼠标点击修改器的canvas界面时,有时会出现在canvas后面的物体也接收到鼠标点击信号的问题,这个问题如果修改,应该需要修改在UnityGameUI中的东西。

解决思路:

之前觉得可能是Canvas.sortingOrder的问题,但是应该不是这个问题。

Unity中,canvas本身并不被认为是"Raycast Target",即例如鼠标点击的Raycast事件并不会被Canvas本身所“拦截”,而是会继续穿过该UI元素“往后”继续传导。UI中真实对射线进行“拦截”的是被Raycaster认为是"Raycast Target"的对象,射线检测在通过该类型的物体后才会被“阻止”,否则会继续传播。
可以拥有"Raycast Target"属性的东西例如“图片”、“按钮”等UI元素,而非Canvas本身,因此在修改器的UI上,进行例如按住空白处上下滑动的事情的时候,便会导致按到UI后面的游戏物体的事情。

解决方案:

可能在CreatePanel createUIPanel这些func里面进行修改,创建该Image的时候设置其属性raycastTarget为true
但是由于Unity版本问题和UI这个包的版本问题,可能具体设置方式会有所不同

相关文档和链接:
1.Canvas.sortingOrder 可能和这个问题没有关系
https://docs.unity3d.com/ScriptReference/Canvas-sortingOrder.html
2.Unity中的Raycaster
https://docs.unity3d.com/Packages/com.unity.ugui@2.0/manual/Raycasters.html
3.Canvas
https://docs.unity3d.com/2022.3/Documentation/ScriptReference/Canvas.html
4.Image
https://docs.unity3d.com/Packages/com.unity.ugui@2.0/manual/script-Image.html

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions