关于UGUI的中的层级(layer)问题

使用UGUI时,经常需要设置UI上的层级。

**1.先来说说我们的问题:**由于unity渲染物体时是从上到下直接渲染的,这就导致了渲染出来的效果和我们预期的不一致,因此必须设置层级,指定渲染的先后顺序(层级低的先渲染)才行。
这里写图片描述
这里写图片描述

那么问题来了,UGUII并没有NGUI这么方便的提供设置层级的入口。
2.我们必须给UI添加一个组件(Canvas)来设置UI层级
这里写图片描述
但是坑爹的是:设置完后,层级的问题解决了,但是UI的所有事件被拦截(包括按钮的点击、UI拖拽等等)

3.终极解决方案:给UI再设置一个组件Graphic Raycster,完美解决,既可以显示特效,还不会遮挡UI。
这里写图片描述

至此有个问题,如果界面很多都需要设置上述的canvas,那就需要自己实现一个管理类,给每个ui设置它的order,不过canvas会影响合并批次,所以不能有太多,自己权衡。


  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
在Unity使用UGUI给文字添加材质有几种常见方法。首先可以使用自定义材质来改变文字的外观。 方法一是创建一个新的材质,并将其应用于Text组件。首先,在项目资源创建一个新的材质。然后,选择Text组件,在Inspector视图找到"Material"属性,并将新创建的材质拖拽到该属性上。接下来,点击“编辑”按钮打开材质编辑器,在这里可以调整材质的颜色、纹理、反光等属性,以改变文字的外观。 方法二是使用TextMeshPro组件,该组件相对于UGUI的Text组件提供了更多的文本效果选项。首先,确保项目引入TextMeshPro包。然后,在TextMeshPro组件的Inspector视图,可以找到“Material Preset”属性。在这里可以选择现有的预设材质或自定义材质,并进行相应的编辑来改变文字的外观。 此外,还可以通过脚本控制文字的材质。可以通过获取Text组件的Material属性,然后修改其颜色、纹理等属性,实现给文字添加材质的效果。 需要注意的是,UGUI的文字材质是基于屏幕空间的,因此对于一些特殊效果需要使用shader进行处理。通过编写自定义shader,可以实现更复杂的文字效果,比如描边、发光等。 总之,在UGUI给文字添加材质主要有:使用自定义材质、使用TextMeshPro组件、通过脚本控制。通过这些方法可以实现各种各样的文字效果,满足项目的需求。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cchoop

有用的话请杯肥宅水

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值