第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/getunity/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内置的一些功能很强大的脚本 CameraControl 摄像机控制 表3.6地形菜单选项含义说明 名称 说明 Create Terrain 创建地形 Import HeightmapRaw 导入高度图 Export HeightmapRaw 导出高度图 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?