当前位置: 首页 > article >正文

unity——Preject3——UI管理器

目录

1.canvas

Canvas 的主要功能

Canvas 的组件

Canvas 的渲染模式

Canvas 的使用步骤

Match 的作用

Match 的工作原理

如何选择合适的 Match 值

示例

总结

EventSystem 的作用

EventSystem 和 Canvas 的关系

EventSystem 的组件

EventSystem 的工作流程

2.代码

3.代码分析思路

4.代码疑惑语法讲解 


1.canvas

Canvas 是 Unity 中用于构建和管理 UI(用户界面) 的核心组件。它是所有 UI 元素的容器,负责渲染和管理 UI 元素的布局、交互和显示。Canvas 是 Unity UI 系统的基础,任何 UI 元素(如按钮、文本、图像等)都必须放在 Canvas 下才能正确显示。


Canvas 的主要功能

  1. UI 元素的容器

    • Canvas 是所有 UI 元素的父对象,UI 元素必须作为 Canvas 的子对象才能显示。

    • 例如,按钮、文本、图像等 UI 元素都需要放在 Canvas 下。

  2. 渲染 UI 元素

    • Canvas 负责将 UI 元素渲染到屏幕上。

    • 它使用 RectTransform 组件来管理 UI 元素的位置、大小和旋转。

  3. 屏幕空间和世界空间

    • Canvas 可以工作在两种模式下:

      • Screen Space - Overlay:UI 元素直接渲染在屏幕上,不受场景中摄像机的影响。

      • Screen Space - Camera:UI 元素渲染到指定的摄像机,可以受摄像机视角的影响。

      • World Space:UI 元素作为 3D 对象存在于场景中,可以与其他 3D 对象交互。

  4. 分辨率自适应

    • Canvas 提供了 Canvas Scaler 组件,可以根据屏幕分辨率自动调整 UI 元素的大小和布局,确保 UI 在不同设备上显示一致。

  5. 事件系统

    • Canvas 与 Unity 的 EventSystem 配合,处理 UI 元素的交互事件(如点击、拖拽等)。


Canvas 的组件

  1. RectTransform

    • 所有 UI 元素都使用 RectTransform 组件(继承自 Transform),用于控制 UI 元素的位置、大小、旋转和锚点。

    • 锚点(Anchors)和轴心点(Pivot)是 RectTransform 的核心概念,用于实现 UI 元素的动态布局。

  2. Canvas Scaler

    • 用于根据屏幕分辨率自动缩放 UI 元素,支持以下模式:

      • Constant Pixel Size:UI 元素的大小固定为像素值。

      • Scale With Screen Size:UI 元素根据屏幕分辨率按比例缩放。

      • Constant Physical Size:UI 元素的大小固定为物理尺寸(如英寸)。

  3. Graphic Raycaster

    • 用于检测 UI 元素的交互事件(如点击、拖拽等)。

    • 只有带有 Graphic Raycaster 的 Canvas 才能响应 UI 事件。


Canvas 的渲染模式

Canvas 有三种渲染模式,适用于不同的场景需求:

  1. Screen Space - Overlay

    • UI 元素直接渲染在屏幕上,覆盖在所有场景内容之上。

    • 不受摄像机影响,适合简单的 2D UI。

    • 示例:游戏中的 HUD(血量、分数等)。

  2. Screen Space - Camera

    • UI 元素渲染到指定的摄像机,可以受摄像机视角的影响。

    • 适合需要与场景内容交互的 UI。

    • 示例:游戏中的对话框、菜单。

  3. World Space

    • UI 元素作为 3D 对象存在于场景中&#x


http://www.kler.cn/a/506161.html

相关文章:

  • CentOS 9 Stream 上安装 Node.js 18.20.5
  • 正则表达式 匹配特定字符后的所有字符
  • 2024年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(一)
  • RV1126+FFMPEG推流项目(7)AI音频模块编码流程
  • Life Long Learning(李宏毅)机器学习 2023 Spring HW14 (Boss Baseline)
  • 2025 年前端开发学习路线图完整指南
  • 【华为路由/交换机的ftp文件操作】
  • CSS的小知识
  • 蓝桥杯刷题第一天——判断闰年
  • 【k8s面试题2025】2、练气初期
  • 手摸手实战前端项目CI CD
  • 用 Python 自动化处理日常任务
  • 解决 chls.pro/ssl 无法进入问题
  • 【Rust自学】13.2. 闭包 Pt.2:闭包的类型推断和标注
  • 麒麟系统WPS提示字体缺失问题
  • 力扣 查找元素的位置
  • # [游戏开发] Unity中的碰撞与触发器实现:从基础到应用
  • usb通过hdc连接鸿蒙next的常用指令
  • 判断192.168.1.0/24网络中,当前在线的ip有哪些
  • 文件上传生成pdf
  • 混币器是什么,波卡跨链交易平台
  • 河道流量在线自动监测系统:实时监控水流,保障河道管理安全
  • 阿里云轻量应用服务器全新升级,通用型实例峰值带宽高达200Mbps
  • 基于Oracle与PyQt6的电子病历多模态大模型图形化查询系统编程构建
  • 使用Go语言中的Buffer实现高性能处理字节和字符串
  • hashcat破解密码时出现signature unmatched error或者no hashes loaded的一种可能的原因