GlossMod / UnityScriptTrainer

一些unity游戏的内置修改器
https://pan.aoe.top/ScriptTrainer
134 stars 53 forks source link

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

Open EndsM opened 6 months ago

EndsM commented 6 months ago

当鼠标点击修改器的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

3DMXM commented 6 months ago

点击穿透的问题,我记得之前修复了,

3DMXM commented 6 months ago

你是在哪个地方遇到的穿透的问题