《基于Unity与SteamVR构建虚拟世界》 —3.2 Unity编辑器教学
3.2 Unity编辑器教学
如果你之前从未使用过Unity,随着本书的进程你会需要一些相关的知识。如果已经使用过Unity,阅读本章节以确保我们使用的术语是统一的。
这里不是Unity编辑器的扩展,是针对性访问而非深入分析。如果你需要了解编辑器的更多信息,Unity在其网站上提供了开发文档(https://unity3d-com/learn/tutorials/topics/interface-essentials)。
编辑器界面和面板
目前,Unity编辑器直观且易于使用,编辑器布局可以根据每个人的工作方式做相应不同的设置,在许多不同的设置方式找到最适合你工作方式的配置,设置好Unity是开始使用Unity的好开头。在本书中将使用2×3的布局,而不是使用默认的Unity布局。
从编辑器窗口右上角的下拉菜单中选择2×3布局预设(图3-2),视图将切换更改。
Unity编辑器分成不同的视图和面板(图3-3),重点介绍以下几个部分:
游戏视图(Game View):在常规的游戏开发中,大部分动作发生在这个窗口,可以预览场景中任何摄像机可以看到的,在你运行之前可以观察游戏的外观。在开发过程中,你会发现实际上你查看游戏视图的次数将会越来越少,因为只有从头戴式设备中观看到的场景相对更为重要,在预览窗口中很难体会到真实感受。
场景视图(Scene View):在虚拟现实开发中,这个界面可能是除了在头戴式显示器里观看到内容外最能直观查看设计的界面。场景视图是可以放置、移动和操作对象的界面。在场景视图中查看世界与头戴式显示器中观看完全不同,因此你需要不断地进行调试。
图3-3 Unity编辑器组成部分
层级视图(Hierarchy):场景是由多个不同的游戏对象组成的。游戏对象在Unity作为占位符实体,可用于形成构建虚拟世界的网格、声音以及其他元素。游戏对象之间的关系会影响在虚拟世界中的运动方式。例如有的游戏对象将链接到其他物体并与之共同运动或是单独运动。层级视图包含当前场景中每个游戏对象的列表且具有层次结构。注意,层级视图顶部还有一个搜索功能,在复杂的游戏场景搜索功能可以方便地查找游戏对象。
检视视图(Inspector):检视视图用于显示、编辑场景中游戏对象的详细信息和属性操作,包括对象的位置、缩放和旋转以及其他组件。一些组件是由脚本和代码构成的,而其他组件是Unity内置的,所有可配置的值、属性等都将会显示在检视视图中。
项目浏览器窗口(Project Browser Window):项目浏览器窗口是包括整个Unity项目工程文件所有资源的界面,在这个窗口你可以对所有文件进行移动、编辑等操作。项目浏览器窗口有一个浏览器界面包含所有的图像、声音以及项目所需要的脚本等文件夹,可以帮助你的项目保持有序。在窗口的搜索栏中可以迅速找到所需要的资源,这对于游戏资源庞大时十分必要。
常用组件和专业术语
编辑器在视图和面板之外还有一些常用组件。
1.主工具栏
工具栏(Main Toolbar)由七个不同的工具组成,它们在编辑过程行使着不同的功能(图3-4)。
图3-4 主工具栏
工具栏从左到右依次为:
变换工具(Transform Tools):每个游戏对象都有一个变换组件,变换组件提供了关于游戏对象的位置、旋转和缩放的信息。变换工具(图3-5)允许在场景视图中移动、旋转和操作来改变场景中的游戏对象。当编辑器不处于运行模式时,使用变换工具进行任何变换会被保存,但是在场景运行模式下进行变换操作将不会被保存。
手形工具①可用于移动摄像机;移动工具②用于移动物体;旋转工具③两个箭头表示旋转;缩放工具④用于缩放物体;最后一个是矩形工具,是主要用于处理2D图形的多用途工具。矩形工具大多用于用户界面或2D游戏视图,但它对于3D对象也可能非常方便。
变换坐标系工具(Transform Gizmo Toggles):左侧是轴心切换,右侧是坐标切换。这些切换按钮的状态会直接影响对象移动或旋转的方式,轴心切换工具决定物体旋转的中心点。利用变换坐标系工具切换自身坐标到世界坐标(变换工具均可处理全局旋转或活动对象的旋转)。
播放/暂停/逐帧播放按钮(Play/Pause/Step Buttons):播放/暂停/逐帧播放按钮控制游戏预览。
云按钮(Cloud Button):云图标访问Unity官网(如云存储等)。
账户菜单(Account Menu):使用Unity需要创建一个账户,通过账户菜单图标进行账户设置。
图层菜单(Layers Menu):Unity可以在图层菜单中设置和编辑图层,设置游戏对象相互关系。
布局菜单(Layout Menu):布局下拉菜单,可以切换Unity编辑器布局,默认情况下,我们使用2×3布局。
2.Unity常见术语
场景(Scene):Unity将世界分为多个不同场景,在场景中游戏对象能实现所想象的运动方式。例如,在运行时场景之间切换可显示游戏对象在不同环境的移动。
组件(Component):组件由Unity自带或者由脚本编写,能为游戏对象(GameObject)提供相应行为动作,比如碰撞、声音等。
游戏对象(GameObject):Unity中模拟游戏实体成为游戏对象,构成游戏场景中的玩家、敌人或者世界中的一部分,通过组件来给游戏对象添加属性(例如渲染对象或者加入碰撞)。
变换(Transform):Unity中默认组件,创建每个游戏对象都将会带有该组件,包括对象的位置、旋转和缩放信息,通过该组件可以直接对对象进行操作,移动、旋转或者是缩放物体大小。
预设体(Prefab):适用于在创建游戏对象或游戏对象组件时重复使用(例如弹射或者粒子效果)。预设体可包含一个或者多个游戏对象组件,可随时添加到场景中。
标签(Tag):Unity中提供标签来组织及识别游戏对象,可以在Unity编辑器来设置带有名称(例如玩家、敌人、地形等)的标签,也可以在代码中通过标签识别和查找游戏对象。
图层(Layer):图层的主要作用是管理碰撞系统,在编辑器中对图层命名,在代码中通常通过索引号引用图层名称。Unity允许通过图层碰撞矩阵(图3-6)选择彼此碰撞的图层,这可以通过Edit下面的Project Settings中的Physics访问。
图3-6 图层碰撞矩阵可以选择图层发生碰撞
触发器(Trigger):Unity中可以在碰撞系统中设置,但实际上并不能解决游戏对象之间的碰撞问题,而主要是通过检查碰撞组件上的IsTrigger复选框是否勾选(如Box Collider或Sphere Collide组件)。Unity在物体发生碰撞时进行注册,但并不进行任何的物理解析。将相关函数添加到脚本中,每当事件发生时都会被游戏引擎自动调用,便可以知道碰撞发生时间并做出相应的反应。作为示例,触发器通常用于告知玩家何时穿过关卡,游戏对象和玩家可以自由移动并不受关卡影响。
画布(Canvas):画布是我们在Unity中使用的用户界面,是承载所有UI元素的区域。
- 点赞
- 收藏
- 关注作者
评论(0)