我恨极了UI工作,于是我想分享一下:
我一直遇到添加边框到UI元素的问题,几乎从一开始就有了这个问题。大多数我用于菜单的UI元素都是半透明的,所以如果不想要过度复杂的层次结构,就不能使用不透明的边框。
菜单也会根据文本数量和本地化而自适应,这又增加了麻烦。
而且,点击不同的元素(比如:[x] 或者 [Space] OK)可以执行不同的操作,这样就总是会因为额外的层次而使边框与射线检测混淆。
最后找到了解决方案:
-
一个背景图像的面板,设置为你想要的透明度。
-
你需要的任何元素。
-
作为最后一个子元素,另一个游戏对象,使用Image:
-
UISprite,设置为白色(边框的颜色)
- Raycast Target:关闭。这样就不会干扰点击
- 图像类型:切片。这是关键的,适应UISprite 9-slice 格式。
- 填充中心:关闭。这个选项我以前不知道,它只是去掉了图像的填充,留下了边框。
- 像素每单位:你想要的值,这会使边框更粗或更细。默认是1
你们可能都已经知道了,但是这个问题已经困扰了我几个月了,我找不到一个合适的可伸缩的解决方案。
祝好!
评论 (0)