第3章Unity 3D——AR与VR时代的利器


本章学习目标

 了解Unity 3D引擎的作用及应用领域。
 掌握Unity 3D的下载、安装和平台账号注册方法。
 熟练掌握Unity 3D操作面板的组成及简单的Unity操作。
 掌握C#语言与脚本的编写。
本章首先介绍Unity 3D引擎的作用及应用领域,再介绍Unity 3D的下载、安装和平台账号注册方法,然后重点介绍Unity 3D操作面板的组成及简单的Unity操作方法,最后介绍C#语言和脚本的编写。
3.1Unity 3D简介
Unity 3D是由Unity Technologies公司开发的一个让玩家轻松创建诸如三维视频游戏、可视化建筑、实时三维动画(见图3.1)等类型互动内容的多平台综合游戏开发工具,是一个全面整合的专业游戏引擎。


图3.1使用Unity 3D创作的三维动画  


Unity是利用交互的图形化开发环境为首要方式的软件,类似于Director、Blender Game Engine、Virtools 或 Torque Game Builder等。Unity编辑器运行在Windows和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平台,也可以利用Unity Web Player插件发布网页游戏,支持Mac和Windows的网页浏览。其网页播放器也被Mac Widgets所支持。据不完全统计,目前国内有80%的Android、iPhone手机游戏使用Unity 3D引擎进行开发(见图3.2),比如著名的手机游戏《神庙逃亡》就是使用Unity 3D开发的,还有《纵横时空》《将魂三国》《争锋online》《萌战记》《绝代双骄》《蒸汽之城》《星际陆战队》《新仙剑奇侠传Online》《武士复仇2》《UDog》等上百款网页游戏都是使用Unity 3D开发的。Unity 3D在虚拟仿真、工程模拟、3D设计等方面也有着广泛的应用,例如绿地、保利、中海、招商等大型房地产公司的三维数字楼盘展示系统都是使用Unity 3D开发的。


图3.2使用Unity 3D开发的游戏界面







3.1.1Unity 3D下载与安装
登录Unity 3D官网https://unity3d.com/cn/getunity/download,可根据不同的平台选择不同版本进行下载,如图3.3所示。


图3.3Unity 3D官网下载页面


Unity 3D不定期还会有测试版发布,供开发者使用Unity 3D的新功能。
3.1.2Unity 3D平台账号注册
Unity 3D提供给用户一个强大的引擎平台,也同时提供了一个丰富的线上平台资源商店。用户可以通过注册平台账号(见图3.4)去使用平台免费的资源,或购买Unity 3D提供的各种服务和收费资源。


图3.4Unity 3D平台账号注册


3.1.3Unity 3D操作面板介绍
下载Unity后就可以双击安装软件,用户第一次进入Unity会要求填写个人信息进行验证,将已注册好的Unity平台账号填入,如图3.5所示。



图3.5Unity平台账号信息填写界面


然后用户就可以登录并创建个人的第一个Unity工程,如图3.6所示。



图3.6创建第一个Unity工程


进入第一个Unity工程后,用户首先需要对Unity编辑器进行一些了解。在默认情况下,Unity由Scene、Game、Project、Hierarchy、Inspector和Console六个面板组成,分别是场景视图窗口、游戏视图窗口、项目视图、场景层级视图、检视面板和控制台,如图3.7所示。


图3.7Unity编辑界面


(1) 场景视图(Scene View)用于设置场景以及放置游戏对象,是构造游戏场景的地方。
(2) 游戏视图(Game View)有场景中的相机所渲染的游戏画面,是游戏发布后玩家所能看到的内容。Game视图为用户提供了一种所见即所得的效果,开发者每次做出的改动,都可以在视图中看到。视图的最上方有3个按钮: Display按钮,可以在不同的Display之间进行切换; Free Aspect按钮,可以选择本视图的宽高比; Scale按钮,可以调控缩放比例。
(3) 项目视图(Project)是整个Unity项目所有可用资源的视图面板,展现了各个资源的层级关系,主要包括创建菜单、文件夹层级列表、游戏资源列表及搜索栏、按类型搜索按钮、按标签搜索按钮、保存搜索结果按钮等,如图3.8所示。每个Unity的项目包含一个资源文件夹,可以在资源面板左下侧浏览文件夹的层级列表,也可以在资源面板右侧的游戏资源列表中查看和操作该项目的所有资源,包括场景、模型、脚本、字体、材质、纹理、音频文件和预制组件等。在项目视图里右击任一资源,都可以在资源管理器中(在Mac系统中是Reveal in Finder)找到该资源的原始文件。


图3.8Unity资源面板创建菜单界面


面板左上侧的Favorites展现了用户收藏的所有素材,方便开发者使用。面板右侧的Assets子窗口展示了正在浏览的资源,正上方还可以显示出资源的路径。在Project视图中,右键菜单中可以选择创建等功能,十分方便。搜索栏右边的前两个图标可以选择目标类型和标签过滤搜索结果,第三个图标则可以将素材添加为收藏。
(4) 场景层次视图(Hierarchy)用于显示当前场景中所有游戏对象(Game Object)的层级关系。在这个视图中,可以通过拖曳的方式在当前项目中添加对象,也可以在层次结构视图中选择对象,并设定对象间的父子层级关系。当在场景中增加或者删除对象时,层次结构视图中相应的对象则会出现或消失,如图3.9左侧所示。


图3.9Unity检视面板


(5) 检视面板(Inspector)用于显示当前所选择游戏对象的相关属性与信息。位于整个Unity编辑界面的最右侧,该面板用于呈现各个对象的固有属性,如三维坐标、旋转量、缩放大小、脚本等,如图3.9所示。

(6) 控制台(Console)可以显示项目中的错误、消息和警告。用户可以双击显示的信息,从而自动定位信息所在的脚本代码位置,如图3.10所示。


图3.10Unity控制台界面


除了以上介绍的几个常用面板窗口,用户也经常用到Unity自带的资源商店。选择窗口菜单,单击里面的AssetStore,即可打开资源商店窗口。Unity的资源商店拥有丰富的资源素材,全球的开发者都在这里分享自己的成果,可以在Unity中下载并直接导入项目工程,如图3.11所示。


图3.11Unity资源商店界面


Unity的菜单栏包括文件(File)、编辑(Edit)、资源(Assets)、游戏对象(Gameobject)、组件(Component)、地形(Terrain)、窗口(Window)及帮助(Help)菜单,各菜单截图如图3.12~图3.15所示,各菜单选项含义如表3.1~表3.8所示。


图3.12文件菜单




图3.13编辑菜单





图3.14资源菜单

 


图3.15游戏对象菜单





表3.1文件菜单选项含义说明



名称
说明
New Scene
创建新的场景,就像是游戏中一个一个的场景,Unity 3D为用户提供了方便的场景管理,用户可以随心所欲地创建出自己想要的场景,然后再把每个场景链接起来组成一个完整的游戏

Open Scene
打开一个已经创建的场景
Save Scene
保存当前场景
Save Scene as
当前场景另存为
New Project
新建一个新的项目工程,用户想要制作出自己的游戏,第一步就是创建一个属于这个游戏的工程,这个工程是所有元素的基础。有了工程之后,用户就可以在这个工程里面添加自己的场景
Open Project
打开一个已经创建的工程
Save Project
保存当前项目
Build Settings
项目的编译设置,在编译设置选项中,用户可以选择游戏所在的平台及对工程中的各个场景之间的管理,可以将当前的场景加入工程的编译队列当中,其中的Player Settings选项中可以设置程序的图标、分辨率、启动画面等
Build & Run
编译并运行项目
Exit
退出Unity 3D



表3.2编辑菜单选项含义说明



名称
说明
Undo
撤销上一步操作
Redo
重复上一步动作
Cut
剪切
Copy
复制
Paste
粘贴
Duplicate
复制并粘贴
Delete
删除
Frame Selected
选择一个物体后,使用此功能可以把视角调到观察这个选中的物体上
Find
在资源区可以按资源的名称来查找
Select All
可以选中所有资源
Preferences
选项设置,对Unity 3D的一些基本设置,如选用外部的脚本编辑,皮肤、各种颜色的设置以及一些基本的快捷键设置
Play
编译并在Unity 3D中运行程序
Pause
停止程序
Step
单步执行程序
Load Selection
载入所选
Save Selection
保存所选
Project Settings
项目设置,其中包括输入设置,标签设置(对场景中的元素设置不同类型的标签,方便场景的管理),音频设置,运行时间的设置,用户设置,物理设置(包括重力、弹力、摩擦力等),品质设置(这个比较重要,用户在这个选项里面可以设置工程默认的渲染品质),网络管理,编辑器管理等
Network Emulation
网络仿真,可以选择相应的网络类型进行仿真
Graphics Emulation
图形仿真,主要是配合一些图形加速器的处理
Snap Settings
临时环境,或理解为快照设置


表3.3资源菜单选项含义说明



名称
说明
Reimport
重新导入资源

Create
创建功能,可以用来创建各种脚本、动画、材质、字体、贴图、物理材质、GUI皮肤等
Show in Explorer
打开资源所在的目录位置

Open
打开选中文件
Delete
删除选中的资源文件

Import New Asset
导入新的资源

Refresh
刷新,用于导入资源包之后

Import Package
导入资源包,当创建项目工程时,有些资源包没有导入进来,在开发过程中又需要使用,这时可以用到导入资源包的功能

Export Package
导出资源包
Select Dependencies
选择依赖项
Reimport
全部重新导入



表3.4游戏对象菜单选项含义说明



名称
说明
Create Empty
创建一个空的游戏对象,可以对这个空的对象添加各种组件,即各种属性。在Component里面会讲到

Center On Children
这个功能是作用在父节点上的,即把父节点的位置移动到子节点的中心位置
Make Parent
选中多个物体后,选择这个功能可以把选中的物体组成父子关系,其中在层级视图中最上面的那个为父节点,其他为这个节点的子节点
Apply Changes To Prefab
应用变更为预置

Move To View
这个功能经常用到,把选中的物体移动到当前编辑视角的中心位置,这样就可以快速定位
Align With View
把选中的物体移动到当前编辑视角的中心位置,深度为0,即移动到和视角同一个平面上
Align View To Selected
把编辑视角移动到选中物体的中心位置



表3.5组件菜单选项含义说明



名称
说明
Mesh
添加网格属性
Particles
粒子系统,能够创造出很棒的流体效果
Physics
物理系统,可以使物体带有对应的物理属性
Audio
音频,可以创建声音源和声音的听者
Rendering
渲染
Miscellaneous
杂项
Scripts
脚本,Unity内置的一些功能很强大的脚本
CameraControl
摄像机控制



表3.6地形菜单选项含义说明



名称
说明
Create Terrain
创建地形
Import HeightmapRaw
导入高度图
Export HeightmapRaw
导出高度图
Set Resolution
设置分辨率
Create Lightmap
创建光影图
Mass Place Trees
批量种植树
Flatten Heightmap
展平高度图
Refresh Tree And Detail Prototypes
刷新树及预置细节


表3.7窗口菜单选项含义说明



名称
说明
Next Window
下一个窗口
Previous Window
前一个窗口
Layouts
布局
Scene
场景窗口
Game
游戏窗口
Inspector
检视窗口,主要指各个对象的属性,也可称为属性面板

Hierarchy
层次窗口
Project
工程窗口
Animation
动画窗口,用于创建时间动画的面板
Profiler
探查窗口
Asset Server
源服务器
Console
控制台



表3.8帮助菜单选项含义说明



名称
说明
About Unity
关于Unity
Enter Serial Number
输入序列号

Unity Manual
Unity手册

Reference Manual
参考手册
Scripting Manual
脚本手册

Unity Forum
Unity论坛

Welcome Screen
欢迎窗口

Release Notes
发行说明

Report a Problem
问题反馈

Unity工具栏中的常用工具包括Transform工具、Transform Gizmo切换工具、Play控件、Layers下拉菜单、Layout下拉菜单等,用法说明如表3.9所示。


表3.9工具栏中的常用工具说明



名称
用 法 说 明
Transform工具
从左到右分别表示手型工具、移动工具、旋转工具、缩放工具、UI缩放工具,对应快捷键为Q、W、E、R、T
Transform Gizmo切换工具
用于改变Scene视图中Translate工具的工作方式
Play控件
用于开始、暂停或游戏的测试
Layers下拉列表
控制任何给定时刻在Scene视图中显示哪些特定的对象
Layout下拉列表
改变窗口和视图的布局,并且可以保存所创建的任意自定义布局

3.2简单的Unity操作
用户可以在Scene窗口中对当前场景中的物体进行操作。选中一个物体后,可以分别选用如图3.16所示的工具,依次改变物体的位置、旋转朝向和大小。



图3.16Scene窗口界面


对物体进行轴向移动、旋转、缩放操作如图3.17~图3.19所示。
场景移动和对物体的移动、旋转、缩放四种操作方式分别对应键盘快捷键Q、W、E、R。此外,也可以通过F键,快速定位当前选中的物体并居中显示,鼠标滚轮控制场景视图中物体显示的远近,Alt+鼠标左键可以在旋转场景的视角,如果当前有选中物体并居中,则旋转中心点就是该物体。


图3.17物体轴向移动图




图3.18物体轴向旋转图





图3.19物体轴向缩放图


3.3C#语言与脚本的编写
C#读作C Sharp,是由微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#简单易学,安全可靠,是学习Unity的必备条件之一。Unity程序中大部分脚本都是采用C#语言编写的。
这里以控制场景视图中立方体的旋转为例编写一个简单的脚本。首先在Project面板中右击创建一个C#脚本,命名为rotate,如图3.20所示。



图3.20创建一个C#脚本


将该脚本拖到立方体的检视面板上然后双击打开,如图3.21所示。


图3.21将C#脚本在检视面板中打开


在该脚本中写入简单的一段代码来实现该立方体的旋转,如图3.22所示。


图3.22在C#脚本中写入代码


写完之后保存并退出脚本,然后单击Unity正上方的运行按钮就可以看到立方体在绕着Y轴匀速转动,如图3.23所示。




图3.23代码的运行效果


Unity 3D引擎开发的案例游戏演示效果,请扫描配套资源中二维码观看。
习题
一、 填空题
1. Unity在默认情况下会有、、、、及 6个面板组成,分别是场景视图窗口、游戏视图窗口、项目视图、场景层级视图、检视面板和控制台。
2. Unity程序中大部分脚本都是采用语言来编写的。
3.  Unity的菜单栏包括、、、、、、和菜单。
4.  用户也可以用Unity自带的资源商店,选择窗口菜单,单击“”,即可打开资源商店窗口。
二、 选择题
1. 以下()不是游戏开发引擎。

A.  Unity 3DB. Virtools
C.  Torque Game BuilderD.  Oracle
2.  ()是整个Unity项目所有可用资源的视图面板,展现了各个资源的层级关系,主要包括创建菜单、文件夹层级列表、游戏资源列表及搜索栏、按类型搜索按钮、按标签搜索按钮、保存搜索结果按钮等。
A.  场景视图(Scene View)B.  游戏视图(Game View)
C.  项目视图(Project)D.  场景层次视图(Hierarchy)
3.  ()用于显示当前所选择游戏对象的相关属性与信息,位于整个Unity编辑界面的最右侧,该面板用于呈现各个对象的固有属性,如三维坐标、旋转量、缩放大小、脚本等。
A.  检视视图(Inspector)B.  场景层次视图(Hierarchy)
C.  项目视图(Project)D.  控制台(Console)
三、 简答题
什么是Unity 3D?