上一章介绍了GUI的基础概念:什么是GUI、GUI的两种模式(immediate mode, retained mode)。本章详细介绍如何使用基于retained mode 的GUI编辑系统。
1. 创建Canvas
Canvas是一切GUI元件的基础,所有的GUI都必须附在Canvas上(Unity官方原文是All UI elements must be children of a GameObject that has a Canvas component attached.)。
Canvas有三种渲染模式
-
Screen Space - Overlay
所有的UI元件都渲染在屏幕视野的最顶层(没有相机时,Canvas上的UI也能照常渲染)。无论相机对准何处、摄影角度如何、与Canvas的距离有多远,UI的大小样貌会一直保持不变(因为与相机不相关,without reference with camera),屏幕大小、分辨率改变了,UI也会跟着自动调整适应(automaitcally rescale to fit)。特点:
(1)UI大小不会受相机的影响,屏幕大小、分辨率改变时UI能自动缩放以适应。
(2)UI不会被游戏内物体遮挡 -
Sreen Space - Camera
UI元件大小不会因相机远近、拍摄位置、角度而改变(原理是Canvas会随着相机的变化而相应调整,比如相机远离Canvas时,Canvas则自动缩短与相机的距离,相机改变角度了,Canvas则自动调整角度迎合相机)。但是在该模式下,如果没有相机,UI就不会被渲染,另外,当有物体在Canvas的前面时会遮挡UI。特点:
(1)UI大小不会受相机影响,屏幕大小、分辨率改变时UI能自动缩放以适应。
(2)UI能被游戏内物体遮挡
(3)适合用于制作沉浸式UI -
World Space
正如其名,该模式下的Canvas是融入整个游戏世界的,它就像游戏中的一个物体, 非常适合制作沉浸式UI。处于World Space模式的Canvas受相机设置的影响,在屏幕上的大小受拍摄距离和角度的影响,能被游戏中的物体遮挡。
特点:
(1)UI大小会受相机拍摄距离、角度影响
(2)UI能被游戏内物体遮挡、穿透
(3)适合用于制作沉浸式UI
2. 布置UI元件
UI元件种类很多,有文本、按钮、图片、输入框、滑动条、下拉菜单等。
UI元件众多、功能各不相同,但每个开发者都需要回答的最基本、最重要的问题是放置问题和外观问题,也就是“放在何处”和“看起来如何”。
-
放置问题
在编辑UI位置时可以用往常的Position tool (默认快捷键W),也可以使用对于UI更方便的Rect tool (默认快捷键T)。调整UI大小可以用往常的Scale tool (默认快捷键R),同样地,也能使用更为便捷的Rect tool。所有UI元件都有Anchor,正如其名,它的作用是让物体保持在与Anchor point的一个相对位置上,这在游戏屏幕大小改变时很有用,例如无论如何拉伸游戏屏幕,都让某UI保持在距离右上角10个单位的位置(这就是“锚”的作用)。
打开UI元件Inspector中的Anchor Presets可以设置锚定位置,也可以在Scene视窗中拖动Anchor。Anchor Presets中除了能用left, right, top, bottom, center设置锚定位置外,还能通过stretch设置UI是否随屏幕拉伸而改变大小。这些概念实际操作一番后更容易理解。 -
外观问题
默认UI的外观可能不能满足你的需求,你可以使用图片、材质,更改颜色、字体来定制你的UI。这些设置在Inspector中都可以方便的更改。UI是玩家与游戏交互的关键,是玩家最频繁接触的部分之一,必须用心对待,从细节做起。不同字体的选用能营造不同的氛围。这里分享一些关于字体的帖子:
有哪些值得推荐的字体? - 邵云蛟的回答 - 知乎
有哪些值得推荐的英文字体? - M udo的回答 - 知乎
以及字体下载网站:
求一个干净的字体下载网址? - 知乎我也试验了一下帖子中分享的字体,效果很出众:
来源:CSDN
作者:学号1024
链接:https://blog.csdn.net/qq_39745474/article/details/104227319