82.使用Text拦截全屏UI交互

82.性能优化-GPU-UI系统优化-使用Text拦截全屏UI交互


82.1 知识点

常见的全屏交互方式

项目里常需要一层全屏交互,用来:

  • 拦截点击、屏蔽底层 UI:后方内容不可点,只能操作前方内容(即模态窗口);或
  • 做全屏按钮:点击屏幕任意处触发流程。

常见做法有:

  1. 透明 Image:在 Canvas 下放一个 Image,拉满全屏,颜色设为几乎透明,开启 Raycast Target
  2. 空 Text 或 TMP_Text:用不显示文字的文本控件拉满全屏,开启 Raycast Target
  3. 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

×

喜欢就点赞,疼爱就打赏