Open EndsM opened 6 months ago
当鼠标点击修改器的canvas界面时,有时会出现在canvas后面的物体也接收到鼠标点击信号的问题,这个问题如果修改,应该需要修改在UnityGameUI中的东西。
解决思路:
之前觉得可能是Canvas.sortingOrder的问题,但是应该不是这个问题。
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这个包的版本问题,可能具体设置方式会有所不同
CreatePanel
createUIPanel
相关文档和链接: 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
点击穿透的问题,我记得之前修复了,
你是在哪个地方遇到的穿透的问题
当鼠标点击修改器的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