Unity5 官方教程笔记(2D Rogue Like)07 —— GUI
最后我们来说一说UI。其实在游戏里UI的实现方式有很多种,你既可以用系统提供的功能,也可以自己绘制一个平面之后在上面绘制你的东西。由于我们这是一个2D的游戏,并且没有打算提供过多的复杂的效果,因此为了降低难度、我们将选择使用系统提供的UI系统制作UI。
首先要知道系统提供的UI有三种渲染模式:Screen Space – Overlay、Screen Space – Camera和World Space。这三种模式分别对应的意义是:
- 直接用UI覆盖屏幕的所有显示。这种方式的特点是不需要一个“相机”来拍摄UI,而是像一个程序一样直接用一个UI界面来作为屏幕的全部内容。
- 在相机的固定距离和方向显示一个UI平面。这相当于是在相机前面摆了一个架子,而把UI平面架在这个架子上。这种方式可以让你既能在设置最少的内容的情况下保证显示效果,同时有必要的时候你也可以在UI前面增加一些别的东西来丰富界面内容(比如一些Shader等特效)
- 直接在空间中架了一块黑板。这种方式可以获得最大的灵活度,比如你想要让拍摄UI的相机有一种摇摆的效果的话,用这种方式会很不错,不过对应的需要你自己去操心的东西(比如相机的角度和位置等)也会更多一些。
在这里我们选用的是最简单的Overlay模式,这样我们只需要操心在UI上面要显示什么就行了。
我们的UI基础是一个“Canvas”,如果你做过其它的带UI的程序或者网页什么的,可能会对这类系统很熟悉(在Unity中除了Canvas以外还有别的类型的UI元素,本例中未涉及到因此不再提及)。在Unity里,这个Canvas系统和其它的GameObject一样,都会出现在Hierarchy视图里。同时他也可以有自己的子元素,当然既然它是本例中UI的基础,所以在他手下的小弟自然都应该是UI元素。
在我们这里一共出现了两类内容,一类是文字,这类内容只需要像一般程序一样修改它对应的text属性即可;另一类是图片,在这里我们使用的其实是一个矩形并用全黑色填充,借此来掩盖下方的内容。
还有一点,就是当你添加任意UI元素的时候,都会有一个叫“EventSystem”的物体被添加进来,这个物体一般可以用来处理一些输入事件(比如鼠标点击、经过等),不过在这里我们也暂时没有用到,所以不做解释。待之后如果有必要的话,会单开文章讲解。
到这里我们对2D Rogue Like这个官方的教程中用到的一些东西就有了初步的认识。由于笔者是在跟着教程做完了之后才写的,所以有些东西的顺序可能会有些混乱,包括需求以及有些东西的设计原因也并没有说的特别清楚。不过之后,笔者会再接再厉,争取写出更高质量的博文。