SC-101笔记(Unity相机和UI系统)

Unity相机的位置和视角代表了游戏时玩家看到的实际画面,因此在开发中实现相机的跟随移动是非常重要的一部分。本节课介绍相机位置和cinemachine实现跟随相机的功能。

UI系统是游戏乃至所有软件的重要核心部分,Unity搭载的UI组件主要包括canvas,raycast等等。

相机组件

Camera组件的两个主要模式:Perspective(透视)和orthographic(正交)

颜色和渲染

ClearFlag:在空的地方渲染的选项。对应参数有

- Skybox

- SolidColor

- DepthOnly

- Don'tClear

BackgroundColor:背景颜色

Culling Mask:渲染的Layer图层

Depth:相机的渲染顺序

相机的移动

相机的看到的场景和角度由其位置position和旋转角度rotation决定(当然,也包括其模式)。

实现相机关于角色的跟随移动,可以简单地通过cinemachine组件(在package manager-Unity注册表检查你是否已经下载该组件)实现关于跟随玩家的移动,并且该组件相对完善。

UI系统

UI是User Interface的简称,即场景中显示信息或者可以交互的部分。除了游戏场景的其他可视组件基本上都是由UI组成的。所有UI组件都需要canvas组件来进行渲染;默认下UI不归相机渲染,这个常见的GameObject有根本的区别。所以,UI组件必须是canvas组件的子对象。

canvas的基本渲染模式:

- Overlay:显示在场景最上层,遮挡所有其他游戏场景,也是默认的最常见模式

- Camera:使用相机渲染。这通常在需要透视效果的时候使用。需要更多的相机去协调渲染。

- WorldSpace:将UI组件作为场景中的一部分引入,和其他GameObject一起渲染。

Canvas Scaler

根据一定条件适配canvas。通常用于多设备适配(调成scale with screen size)。否则会导致组件错位或者莫名消失的问题。

Graphic Raycaster

检测我们点到(触发)了哪个UI组件。

Rect Transform
常见UI组件

Image: 类似SpriteRenderer,显示一张图片在画布上。其属性包括SourceImage,Color,Material,Raycast Target(是否遮盖鼠标输入)(UI的遮盖顺序是根据Hierachy的顺序决定的)。

Text(TextMeshPro):在画布上显示文件。包括字体、行间距、大小、颜色、对齐、Raycast Target等等。

Button:作用范围:button及其子物体的判定范围,触发方式(不能长按,双击)和触发效果OnClick()。

Slider:一般用来实现进度条或者滑条、血条的功能,包括Background、Fill、Handle等属性,其中最重要的是Fill,显示了当前Slider的值。Slider的Value确定了滑条的位置。

Mask:Mask组件可以保证其子物体只在规定的形状内内显示

RectMask2D:提供了一个矩形形状的Mask,一般用于将背包系统搭载在该Mask内保证不会占用整个屏幕。

RectTransform:是矩形的Transformer,作为Transform的一个子类,多了Pivot和Anchor两个属性。可以根据parent的RectTransform信息调整自身的位置。其中Pivot决定了物体的旋转中心,Anchor(锚点)决定了该物体左下角和右上角(相对parent)的位置。

实现UI界面

先调整好界面,引入一个canvas负责统筹所有的UI。在脚本UImanager中设定按键,比如Input.GetKeyDown("Escape"),引入GameObject并且绑定Canvas,随后在函数中设定操作(例如SetActive()和按钮内容即可(当然,这是一个很初级的做法)。这样就可以实现基本的开关UI菜单功能。

关于在调出UI菜单时如何暂停游戏?这暂时不在这节课的讨论范围。查阅到资料了再来填坑。、

使用动画进行UI过渡

优秀的动画UI系统会极大优化交互体验,从而增强游戏体验。但是UI过渡动画面临一个常见问题,UI物体的控制比较麻烦。Unity内置了Canvas Group组件可以将所有UI层视为一个整体(即,包括canvas和其所有子物体)做一些效果操作。例如,UI菜单的弹出和关闭,玩家触发对话功能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值