82.性能优化-GPU-UI系统优化-使用Text拦截全屏UI交互
82.1 知识点
常见的全屏交互方式
项目里常需要一层全屏交互,用来:
- 拦截点击、屏蔽底层 UI:后方内容不可点,只能操作前方内容(即模态窗口);或
- 做全屏按钮:点击屏幕任意处触发流程。
常见做法有:
- 透明 Image:在 Canvas 下放一个
Image,拉满全屏,颜色设为几乎透明,开启Raycast Target。 - 空 Text 或 TMP_Text:用不显示文字的文本控件拉满全屏,开启
Raycast Target。 - Button:全屏按钮。
这些方式都是为了拦截输入事件,不让其继续向底层传递。
使用 Text 进行全屏交互
若目的只是“让后面层的 UI 不能被点击”,推荐用空 Text 或 TMP_Text 的方式,性能更好,不需要额外渲染(无透明像素、无贴图)。
注意:若需要半透明背景遮罩效果,这种方式不适用,应改用透明 Image 等可渲染的控件。
82.2 知识点代码
Lesson82_性能优化_GPU_UI系统优化_使用Text拦截全屏UI交互.cs
public class Lesson82_性能优化_GPU_UI系统优化_使用Text拦截全屏UI交互
{
#region 知识点一 常见的全屏交互方式
//在进行项目开发时
//我们经常会有全屏交互层
//用于拦截点击,屏蔽底层UI(后方内容不能点击,只能点击前方内容,一般称为 模态窗口)
//或
//制作类似全屏按钮功能(点击屏幕触发流程)
//我们常见的方式有:
//1.透明Image
// 在Canvas下放一个Image,拉满全屏,颜色设为几乎透明,开启RaycastTarget
//2.空Text或TMP_Text
// 用一个没有文字显示的文本控件,拉满全屏,开启RaycastTarget
//3.Button
// 全屏按钮
//等等
//这些方法的主要目的,都是用来将输入事件拦截
//不再往下方传递
#endregion
#region 知识点二 使用UIText进行全屏交互
//在这些方法中
//如果我们只是为了让后面层的UI不能被点击
//那么我们推荐使用 空Text或TMP_Text的方式
//因为它的性能表现相对较好
//不需要进行额外渲染工作
//注意:
//如果你的背景需要类似半透明效果
//那么这种方式不太适用
#endregion
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com