1.4 场景视图窗口
场景视图窗口是用来创造游戏世界的窗口。我们会用场景视图来选择和定位背景、角色、摄像机、灯光以及所有类型的游戏物体。在场景视图中选择和移动物体是大多数人学习 Unity的第一步。
1.4.1 浏览场景
场景视图有一系列工具帮助你在场景中高效地移动和浏览。
1.4.2 场景辅助线框
场景辅助线框(Gizmo)位于场景视图的右上角。它显示了当前查看场景的视角方向,且可以通过单击它快速改变查看场景的视角。
场景辅助线框图标的每个面都有一个柄,三种颜色的柄分别代表X轴、Y轴、Z轴。单击任意一个轴可以让视角立即旋转到该角度,所以可以分别得到顶视图、前侧视图和左侧视图。此外,还可以用右键单击它选择一些其他的预置角度。
也可以在这里切换透视摄像机和正交摄像机。具体方法是单击场景辅助线框中间的立方体,或者单击立方体下方的文字。正交视角适用于某些刻意不需要透视视角的游戏,在前面的章节中已经有了详细的介绍。另外,正交视角可以方便地从固定的视角查看场景的比例,下面两张图片是同一个场景的两个正交视角。
在2D模式下场景辅助线框是不显示的,因为2D模式下沿X轴、Y轴旋转视角是没有意义的。
1.4.2.1 移动、旋转和缩放视角
移动、旋转和缩放视角是场景视图中最主要、最常用的功能。Unity 提供了多种方式来尽量提高操作的效率。
1.按住方向键进行移动:可以使用 4 个方向键在场景中移动视角,就好像在场景中行走一样,按住Shift键可以加快速度。
2.小手工具:当小手工具被选中时(快捷键:Q),以下鼠标操作会被启用。
用鼠标左键拖曳场景,可以在场景中移动视角。
按住Alt键并用鼠标左键拖曳场景,可以在场景中旋转视角。
按住Alt键并用鼠标右键拖曳场景,可以缩放视角(也可以看作前进和后退)。
以上操作都可以通过按住Shift键来加快速度。
1.4.2.2 飞行浏览模式
飞行浏览模式可以让你在场景中以主视角自由地穿梭浏览,就像在很多第一人称视角游戏中一样。
使用飞行浏览模式首先需要按住鼠标右键,然后用 W、A、S、D 键来分别朝前、左、后、右移动,Q和E键用来向下和向上移动。按住Shift键可以移动得更快。
只能在透视摄像机下使用飞行模式,在正交摄像机下此功能的移动方式会不一样。
1.4.2.3 一些快捷的浏览操作
为了提高效率,Unity 还提供了另外一些移动方法,这些方法的优点是无论当前选中哪一种小工具,都可以快速浏览,而不用切换工具。
1.4.2.4 将物体置于视野中心
具体观察一个物体时,我们需要将它置于视野范围的中间,我们可以这样操作:在层级窗口中选中该物体,然后将鼠标移动到场景视图中,最后按F键,这样视野就会以物体为中心了。有时物体正在运动,此时使用Shift+F组合键就可以一直跟踪物体。这两种功能分别对应主菜单中的Edit>Frame Selected和Edit>Lock View to Selected选项。
1.4.3 修改物体的位置
选中一个游戏物体最常用的方法有两种,在场景视图中单击该物体或者在层级窗口中单击它的名称。要选择或者取消选择多个物体,只需按住 Shift 键不放,同时单击鼠标或者拖曳方框进行多选即可。
被选中的物体在场景视图中会被高亮显示,默认高亮的方式是对物体进行一个显眼的描边处理。可以通过选择菜单的Preference>Color选项,修改Selected Wireframe和Selected Outline的颜色来改变默认的表示。另外,选中的物体上会出现可以操作的小图标,具体的图标由当前选中的工具决定。
1.4.3.1 移动、旋转、缩放以及矩形变换
场景视图工具栏中的第一个工具(小手工具)已经在前面介绍过了。接下来分别介绍移动、旋转、缩放、矩形变换工具,它们各有各的作用,我们可以借助它们来编辑游戏物体。编辑物体的 Transform 组件(也就是使得物体旋转、位移、缩放的工具),可以对选中的物体进行旋转、位移或缩放操作,并在场景视图中拖动来修改物体的Transform属性,也可以直接在检视窗口中修改物体的Transform组件的参数。
以上几种小工具的快捷键分别是W、E、R、T、Y,顺序与按键在键盘的位置相对应,分别选中几种工具时,场景视图中有不同的表示方法,如下图所示。
移动
可移动的图标在场景中以三个箭头表示,既可以分别拖动三个独立的箭头来修改物体在 X轴、Y轴、Z轴的位置,也可以拖动三个箭头两两之间的小平面来让物体在该平面上移动。
还有一种有用的操作方法,按住 Shift 键时,图标会变成一个扁平的方块。这个扁平方块表示这时拖动物体会让物体在垂直于当前视线的平面上移动。
旋转
选中旋转工具后,就可以拖动窗口中物体中间表示旋转的图标。和移动一样,旋转轴也表示为红、绿、蓝三种颜色,X轴、Y轴、Z轴分别与之对应,表示以三个轴为中心进行旋转。最后,最外面还有一层大的圆球,可以用来让物体沿着从屏幕外到屏幕内的这根轴进行旋转,可以理解为当前屏幕空间的Z轴。
缩放
缩放工具用来改变物体的比例,可以同时沿X轴、Y轴、Z轴放大,也可以只缩放一个方向。具体的操作方法可以尝试拖动红、绿、蓝三个轴的方块,还有中间白色的方块。需要特别注意的是,由于Unity的物体具有层级关系,父物体的缩放会影响子物体的缩放。所以,不等比缩放可能会让子物体处于一个奇怪的状态。
矩形变换
矩形变换通常用来给2D元素(比如精灵和UI元素)定位,但是在给3D物体定位时,它也是有用的。它把旋转、位移、缩放的操作统一为一种图标。
在矩形范围内单击并拖动,可以让物体在该矩形的平面上移动。
单击并拖动矩形的一条边,可以沿一个轴缩放物体的大小。
单击并拖动矩形的一个角,可以沿两个轴缩放物体的大小。
当把鼠标光标放在靠近矩形的点的位置,但又不过于靠近时,鼠标指针会变成可旋转的标识,这时拖曳鼠标就可以沿着矩形的法线旋转物体。
注意:在2D模式下,无法改变物体沿Z轴方向的旋转、位移和缩放,这种限制其实是很有用的。矩形变换工具一次只能在一个平面上进行操作,将场景视图的当前视角转到另一个侧面,就可以看到矩形图标出现在另一个方向,这时就可以操作另一个平面。
1.4.3.2 具体的操作说明
这里我们再深入介绍一下。
用户可以对场景中的任意物体使用位移、旋转、缩放工具。当你选中一个物体时,你就会看到下图所示的辅助线框,三种线框的表示方法不同,以后我们会经常用到。下图分别是位置、旋转、缩放三者的辅助线框。
当你选中某一个轴并拖动时,你会发现该轴变成了黄色,而且旋转、缩放变换时的情况也是类似的。你会发现物体只会修改和该轴有关的参数,而不会影响另外两个轴的参数。
1.4.3.3 一些高效的操作方法
除了只调整某一个轴上的参数,我们也可以同时改变多个轴上的参数,但是改变多个值时,三种工具(位移、旋转、缩放)的具体操作不太一样。对于移动操作来说,我们可以同时修改两个轴上的位置,也就是让物体沿着某个平面滑动,例如,沿着XZ平面移动。具体做法是拖曳两个轴之间的平行四边形辅助线框,一共有XY、YZ、XZ三个平面。拖曳下图中圆圈所标注的区域,即可同时修改X轴和Z轴的位置。
对旋转操作来说,拖曳非轴线的位置就可以自由旋转物体。但是在实际操作中,建议还是尽可能沿一个轴线进行旋转,否则会给自己带来混乱。
缩放工具也不太一样,因为等比例缩放可能比沿某一个轴缩放更为常用,所以缩放工具的辅助线框提供了四个点的位置,分别是周围的红色、绿色、蓝色方块以及中央的白色方块。拖动三个轴上的方块可以让物体只沿一个轴缩放,这个缩放实际上会产生拉长和压扁的结果。如果你需要等比例缩放物体,那么就可以拖动中央白色的方块,让物体在X轴、Y轴、Z轴三个轴上以等比例的方式放大或缩小,中央的白点可以用于等比例放大和缩小物体。
1.4.3.4 局部/世界坐标系切换,中心/基准点切换
3D 世界中物体的定位还有两个复杂的问题,它会影响到前面讲到的旋转、位移、缩放等工具的行为。单击下图中的Center和Global按钮,可以分别切换到另外两种模式:Pivot和Local。
· Pivot模式:将用来操作的小图标显示在物体三维网格的基准点上。
· Center模式:将用来操作的小图标显示到物体外形边界的中心。
· Local(局部坐标系):用来操作小图标的旋转角度,使其和当前物体保持一致。
· Global(世界坐标系):用来操作小图标的旋转角度,使其和世界坐标系保持一致。
在给物体定位时,局部坐标系和世界坐标系的切换会经常用到。比如,在一个常见的俯视角游戏中,摄像机会沿X轴向下旋转45°~90°,以形成俯视的效果。这时,在Local模式下,移动摄像机的Z轴,摄像机会有拉近、拉远的效果;而在Global模式下,摄像机沿Z轴移动会和游戏场景的地面平行移动。
1.4.3.5 按照单位坐标移动
当移动物体时按住Ctrl键(macOS系统下是Command键),物体会以指定的单位长度移动,这样可以很方便地在某些游戏中调整位置。这个单位坐标用默认的设定,也可以在菜单的Edit>Snap Settings里进行修改。
吸附到平面
当使用移动工具时,同时按住Shift键和Ctrl键(macOS系统下是Command键),可以让物体快速吸附到碰撞体(Collider)的表面,这个功能在布置场景时十分有用。
吸附到顶点
吸附到顶点功能在搭建某些场景时特别有用,它可以将一个物体模型的某个顶点放在另一个物体模型的某个顶点上。例如,我们可以将赛车游戏的道路精确地放置在背景上,或是将一个道具精确地放置在某个模型上面。
操作步骤如下:
1.选择你要移动的物体并选择移动工具。
2.一直按住V键进入吸附顶点模式。
3.将鼠标光标指向要移动的物体的某个顶点,会出现提示的白框指定以哪个顶点为准。
4.拖曳该顶点到另一个物体上,就可以让拖曳的物体在目标物体的多个顶点之间进行移动。无论如何移动,编辑器都会保证要移动的物体的顶点和目标物体的顶点是重合的。
5.松开 V 键和鼠标左键,移动完毕。另外,还可以同时按下 Shift+V 组合键持续开启或关闭这个功能,这样就不需要一直按住V键了。
注意:不仅可以让顶点和顶点对齐,还可以让顶点和平面对齐、顶点和模型基准点对齐。
1.4.4 场景视图工具条
场景视图工具条有多个选项来调整、查看场景的显示方式,如下图所示,包括是否显示光照、是否开启声音等。这些选项只对当前场景视图起作用,与最终的游戏效果无关。
1.4.4.1 渲染模式
工具条最左侧的下拉菜单用于选择要使用哪种渲染模式(DrawMode)来绘制场景,选项包含如下内容。
1.Shading Mode
· Shaded:显示物体的表面材质。
· Wireframe:以线框图的形式显示物体的模型网格。
· Shaded Wireframe:显示物体的表面材质并叠加网格线框。
2.Miscellaneous
· Shadow Cascades:显示方向光源的shadow cascades。
· Render Paths:渲染路径,用每种颜色对应一种渲染路径。蓝色代表deferred shading,绿色代表deferred lighting,黄色表示forward rendering,红色表示vertex lit。
· Alpha通道:显示透明通道。
· Overdraw:将物体显示为半透明的剪影,不透明度会叠加,用来展示各种物体交叠的情况。
· Mipmaps:展示纹理尺寸是否合适,以不同的颜色显示。红色表示纹理贴图比必要的大,蓝色表示纹理尺寸不太够。通常,需要的纹理尺寸的大小与分辨率以及镜头的远近有关系。
3.Deferred
包含几种模式,用来查看G-buffer(Albedo、Specular、Smoothness、Normal),具体的含义需要查看Deferred Shading的相关文档。
4.Global Illumination
与全局光照有关。
1.4.4.2 2D模式、光照和声音的开关
渲染模式右边还有几个按钮,是一些开关,它们只在场景视图中发挥作用。
· 2D:在2D和3D视图之间切换。在2D模式下,摄像机会保持指向Z轴,且X轴在右侧、Y轴指向上方。
· Lighting:开启和关闭光照,包括环境光和物体的着色器。
· Audio:开启和关闭音频。
1.4.4.3 渲染效果开关
小喇叭(音频)开关的右侧还有一个山形的按钮,是渲染效果开关。它里面有一些选项,用来开启和关闭一些渲染效果。
· Skybox:开启和关闭天空盒的显示。
· Fog:开启和关闭雾。
· Flares:灯光光晕的开关。
· Animated Materials:设置动态材质是否以动画方式显示。
另外,这个渲染开关本身可以一起改变以上四个子项的开启和关闭。
1.4.4.4 辅助线框
辅助线框菜单控制一系列的图标显示,辅助线框菜单的入口在场景视图和游戏视图中都可以看到,接下来的章节会详细介绍辅助线框菜单的具体用法。
1.4.4.5 搜索框
场景工具栏最右侧是一个搜索框,它主要是起到一个过滤器的作用。它以搜索框内的信息作为关键字,过滤场景中的内容。被过滤掉的物体会以减弱对比度的方式显得不明显,且会变成半透明,相对来说,要搜索的物体就很明显了,且这时层级窗口中也会只显示搜索到的物体。下图是搜索前(左图)和搜索sphere的效果(右图)。
另外,搜索物体还可以指定几种模式:指定搜索物体的名称、指定搜索物体的类型、二者都包括。可以单击搜索框左侧的放大镜小图标进行选择,如下图所示。