Canvas 的 sort Order
在使用Unity Editor的过程中,我们总是会用到Canvas组件。在Canvas中有一个叫做Sort Order 的设置项。接下来我就讲一下该属性在开发中的应用。
问题
我目前正在做一个PC Unity 版本 的SDK,包含基本的登录支付等相关功能。游戏工程师接入后,发现点击SDK的面板可以穿透,从而触发游戏的事件。
原因
我制作的SDK的面板并不是全屏幕覆盖游戏场景的,而具有固定宽高。
解决
增加一个面板预制体,专门用来阻挡射线穿透。
1、预制体只包含一个子组件:Image
2、设置图片的锚点为横竖向延伸,并勾选 Raycast Target
3、设置sort Order为 XXX,这个XXX需要小于需求面板的sort Order。
补充
1、在Unity 中,Canvas是用于呈现2D元素的组件。它的 Sort Order属性控制Canvas的渲染顺序,影响UI元素的展示顺序。
- Sort Order:是一个整数,在场景中存在多个Canvas时,sortOrder属性决定哪个Canvas的UI元素会出现在其他Canvas的上方。具有较高sortOrder值的Canvas会被渲染在具有较低sortOrder值的Canvas之上。
2、Raycast Target - 如果选中此选项,那么我的 UI 元素将消耗触摸事件,并且其后面的任何 3D 对象将不会获取触摸事件。
- 如果未选中,这会将触摸事件传递给其后面的 3D 对象。
随着对Unity和C#学习和使用的深入,我会逐渐完善每一篇文章。