unity ugui显示模型_UGUI(一)- Canvas

对于想学习Unity游戏开发的人来说,UI是很好的入门部分。时至今日,越来越多的Unity游戏UI框架从 NGUI 转向 UGUI,两者优势也有很多大神做过实例对比。在接下来的文章里,我会对 UGUI 的基础使用以及实战中容易出现的问题进行讲解。欢迎关注。

UGUI 是作为内置功能部分集成到Unity各个版本当中的,不需要额外下载。当我们打开Unity,并在Hierarchy视图中右键菜单中随便创建一个 UGUI 元素,Unity便会自动创建出 UGUI 的树结构。

f3199f81c12a261121cb7a866790e00c.png

创建完成是这个样子的

b7ba62941008e1ea13fbf515cf4ca9a2.png

Hierarchy视图中多了Canvas、Image、EventSystem三个物体。我们先从 Canvas 入手 UGUI 的学习。

什么是 Canvas

Canvas (画布) 是所有 UGUI 组件的父物体,每一个 UGUI 组件都必须在 Canvas 下,作为 Canvas 的子物体时,才能被正确地渲染出来。当你创建一个 UGUI 控件时,如果在 Hierarchy 视图没有 Canvas 组件, Unity会自动帮你创建一个 Canvas, 并将你想创建的 UGUI 控件置于 Canvas 下。当然也可以通过右键菜单来主动创建一个新的 Canvas。

选中 Hirearchy 视图中的Canvas,在Inspector视图中会看到它挂有 4 个脚本。今天我们先来学习其中的 Canvas 组件。

fed87a1dc3fa3fe5b06a8b718bc9c086.png

属性其一

Additional Shader Channels

附加着色通道,决定Shader可以读取哪些相关数据,比如 法线、 切线 等数据。

属性其二

RenderMode

写文章的过程当中发现 Unity 2020 中 Canvas 渲染模式名称变了,像这样

94487025213d7e8e8b39c7e0162567fd.png

而UNity 2019 是这样的三个渲染模式, 文章主要以此为例,毕竟 Unity 2020 还未正式发布。

17f97349c3f374c1eaf483d2edd59807.png

以下是 RenderMode 的三种渲染模式

1. Screen Space - Overlay

7b5fa3525ed279973ba6915170119734.png

此模式下 UGUI 总会处于渲染队列的最高层级,可以想像成 UGUI 是紧贴相机屏幕的,因此 UI 与屏幕之间无法插入任何 3D 物体。

有三个附属性

Pixel Perfect 使UI元素像素对应,效果就是边缘清晰, 不过渲染过程中的计算量也会相应增加

Sort Order 控制多个 Canvas 的渲染前后顺序,越大越靠近屏幕。

Target Display 指定最终渲染到的Display。

Display主要的作用是分屏,一个主机上连接两个屏幕或者多个屏幕,可以在两个屏幕上显示不同的内容。比如:有两个屏幕,一个大的显示屏挂在高高的墙上作为展示屏,另一个小屏幕可以作为输入屏幕拿在手中进行控制。

2. Screen Space - Camera

d2fa9a4ae1d4c3e73978d190b8e6fec8.png

此模式下需要指定渲染相机,可以在场景中另外新建一个 Camera 做为 UGUI 的渲染相机。

  • UI 相机的 Culling Mask 建议只选 UI 层。
  • UI 相机的 Clear Flags 建议选为 Depth Only。
  • UI 相机可以是透视相机,Canvas 会根据相机视锥体来自动调节宽高以达到铺满屏幕的视觉效果, 建议选择正交相机,方便在 Canvas 间插入 3D 物体时保证 3D 物体渲染不受透视影响。

a87bc1d60371af1696d933cbe3486b7a.png

有五个附属性

Pixel Perfect 同 Screen Space - Overlay 模式。

Render Camera 指定 UI 相机。

Plane Distance 该Canvas到 UI 相机的距离(一般是Z轴距离),可用于调节多个 Canvas 的渲染前后层级。

Sorting Layer 指定该 Canvas 的Sorting Layer, 同样用于调节多个 Canvas 的渲染前后层级。

Order in Layer 用于多个相同Sorting Layer的 Canvas 渲染前后层级控制

  • 此模式下 Canvas 渲染优先级 Sorting Layer > Order in Layer > Plane Distance。
  • Default 的层级低于任何自定义的 Sorting Layer 层级 此模式下 Canvas 与相机之间可以插入 3D 物体,比如 特效 和 皮肤展示模型 等。

6663a1b9642d8cbd345cae9d8ce44483.png

74bb5c9191dca890630206bf1d97e89b.png

3. World Space

39232d21a9d4047c82deb72670e478c7.png

此模式下 UGUI 与其它 3D 物体无区别。

有三个附属性

Event Camera 指定接受 UI 事件的摄像机。

Sorting Layer 与 Order in Layer 同上。

  • 此模式下 UI 不会随相机旋转而旋转,其它两个模式下 UI 总是与 UI相机 保持相对静止 此模式可以用于制作 HUD ,比如 人物血条、 攻击或掉血飘字 等。

欢迎关注公众号,定期分享Unity的实用技巧~~

ffa918b60133ae0135462986a500489c.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值