当鼠标点击修改器的canvas界面时,有时会出现在canvas后面的物体也接收到鼠标点击信号的问题,这个问题如果修改,应该需要修改在[UnityGameUI](https://github.com/GlossMod/UnityGameUI/blob/master/UIControls.cs)中的东西。 解决思路: 之前觉得可能是`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
Activity
3DMXM commentedon Feb 22, 2024
点击穿透的问题,我记得之前修复了,
3DMXM commentedon Feb 22, 2024
你是在哪个地方遇到的穿透的问题