天天看点

《Unity 3.x游戏开发实例》——1.10节Scene窗口

本节书摘来自异步社区《unity 3.x游戏开发实例》一书中的第1章,第1.10节scene窗口,作者邓文渊,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.10 scene窗口

scene(场景)窗口是定位游戏对象并移动它们的地方(见图1.10)。这个窗口有多种可以改变其细节层次的控件。使用这些控件来切换照明,显示带有纹理、线框或纹理线框的窗口内容。可以使用右上角的彩色小工具(gizmo)约束x、y和z轴的视角,以便观察场景的顶部和侧面。点击gizmo中间的白色方形返回透视视图。该窗口还设有搜索栏。试着单击绿色的y锥形,从上面观察angrybots演示,然后在搜索栏中输入rock。所有名称中含有“rock”的对象都会亮起来,而场景中的其他对象则会变灰。单击小的x按钮清除搜索栏。

《Unity 3.x游戏开发实例》——1.10节Scene窗口

1.10.1 game窗口

game(游戏)窗口显示的是玩家们看到的内容,见图1.11。当点击play按钮测试游戏时(就像刚才在angrybots演示中所做的那样),制作的成果就会显示在该窗口中。切换到maximize on play按钮,可以用全屏模式测试游戏。

《Unity 3.x游戏开发实例》——1.10节Scene窗口

1.10.2 hierarchy面板

hierarchy(层次结构)面板列出了场景中的所有游戏对象,见图1.12。游戏对象(摄像机、光源、模型和预制(prefab))组成了游戏。它们可以是“有形的”,如angrybots演示中的气闸门和金属罐。它们也可以是“无形的”,只有游戏开发者才能操作,如摄像机、光源和碰撞器,这些是特殊的不可见形状,告知游戏引擎两个游戏对象相互接触的时间。

《Unity 3.x游戏开发实例》——1.10节Scene窗口

angrybots演示的hierarchy面板包括金属罐、桌子、气闸和电脑终端等的游戏对象。它还列出了玩家——一个非常复杂的游戏对象,用于控制英雄的移动以及与环境的碰撞。有一个追踪玩家角色的摄像机。该摄像机是我们在游戏世界的眼睛。该演示列出了称为environment(sounds)的集合——一系列游戏对象,用来决定玩家行走在关卡的不同位置时听到的声音(如屋外的暴雨,以及他在室内移动时机器的嗡嗡声)。所以,游戏对象可能包括“有形的”对象,如金属罐和气闸,以及幕后无形的东西,如光源、摄像机和动作(脚本)。

单击hierarchy面板中的一个游戏对象,然后将鼠标悬停在scene窗口。按下键盘上的f键,scene窗口就会自动平移并缩放到这个对象。或选择edit | frame selected,这比使用键盘快捷键更可靠(我常常把f当作表示帮助我记住这个快捷方式功能的焦点)。

1.project面板

project(项目)面板列出了用来在项目中创建游戏对象的所有元素,如图1.13所示。例如,在objects/enemies文件夹中查找mech_bot。angrybots演示的enemymech游戏对象是由一系列网格组成的,它们表示网格的形状、描述其“皮肤”或着色的材料,以及描述其运动的动画。所有这些内容都列在project面板中。

《Unity 3.x游戏开发实例》——1.10节Scene窗口

project面板显示的是计算机的操作系统中assets特殊文件夹的内容。当创建一个新项目时,unity会自动创建assets文件夹。如果把一个兼容的文件,如一个3d模型、一个音效或一张图片拖入project面板中,unity会将它复制到隐藏的assets文件夹中,并把它显示在project面板中。

不要乱动assets文件夹

unity存储的是该文件夹的元数据,通过操作系统移动或删除其内容,就可能会破坏你的项目。如果你需要进行更改,一定要确保它们在unity的project面板中。

2.inspector面板

inspector是上下文相关的面板,见图1.14,这意味着,它的变化取决于你在unity中其他位置选择的对象。你可以在这里调整hierarchy面板中所列游戏对象的位置、旋转和比例。inspector面板还可以显示控件,以便配置可以向游戏对象中添加功能的组件。在unity的三个主面板(hierarchy、project和inspector)中,inspector是最费时间的,因为这是调整组成游戏项目中元素每个环节的地方。

《Unity 3.x游戏开发实例》——1.10节Scene窗口

上面所示的inspector截图显示了angrybots演示中属于player游戏对象的组件:脚本(包括free movement motor和player move controller)、刚体组件、胶囊碰撞器等。要在电脑中查看这些内容,需要点击打开hierarchy面板中的player游戏对象。

3.注意

使用inspector面板快速改变角色的方向。让英雄在演示开始时是倒立的(这一定可以让那些坏人更愤怒)。

我们可以使用inspector面板来改变player对象的方向。按照下面的步骤执行:

(1)在hierarchy面板中,选择player游戏对象(见图1.15)。

《Unity 3.x游戏开发实例》——1.10节Scene窗口

player游戏对象底部会出现一个球体。红色的x轴旋转手柄环绕着player对象的身体。拖曳它旋转player对象模型,好像它正站在一个非常危险的独木舟上。蓝色的z轴旋转手柄旋转该player对象,好像用一个无形的别针贯穿他的脚踝。如果我们拖曳该手柄,该player对象就会不是面朝地,就是背朝地进行旋转,就好像他得了宇宙病。绿色的y轴旋转手柄像呼啦圈一样环绕着该player对象。

随意拖动该手柄会使player对象面向不同的方向旋转。player游戏对象可能会变得相当恐怖;为了将旋转控件隔离开,在scene窗口的搜索栏中输入player来排除其他所有游戏对象,见图1.17(需要记住的是,当鼠标光标位于scene视图时,按下f键可以使选取的游戏对象在眼前显现出来)。

《Unity 3.x游戏开发实例》——1.10节Scene窗口

(4)当点击play按钮测试游戏时,演示程序中的player对象就会以电动摇摆舞风格来移动。这些机器人被吓坏了,以“错误!不能计算!”的方式来保持他们机械的步伐。

4.layers和layout下拉菜单

可以在inspector面板上方看到layers(层)和layout(布局)下拉菜单,见图1.19。和photoshop或flash类似,可以将游戏对象分层。在layout下拉菜单中存储了一些常用的布局(我设置的是“2 by 3”配置)。你也可以保存并加载自己的自定义布局。

《Unity 3.x游戏开发实例》——1.10节Scene窗口

5.播放控件

这三个按钮可以帮助你测试游戏,并控制播放。正如你所看到的,“播放”(play)按钮用于开始和停止游戏。“暂停”(pause)按钮按预期工作——它用于暂停游戏,这样你就可以立刻在运行中进行更改。第三个按钮是单步调试(step-through)控件;使用它一帧一帧地推进游戏,这样就可以更严格地控制发生了什么。

《Unity 3.x游戏开发实例》——1.10节Scene窗口

测试时所做的修改无法保存

unity更令人惊讶的一个功能是:当测试游戏时,也可以随时修改游戏对象和变量。但重要的是要知道,在测试过程中所做的修改并不会“保存”。一旦停止测试游戏,在测试过程中所做的修改就会恢复到点击“播放”按钮之前的状态。令人沮丧的是:对你的游戏做了一大堆修改后才发现一直处于“播放”状态,你的修改将丢失。避免这个问题的一种方法是切换到game(游戏)窗口的maximize on play按钮,这样你才能更好地意识到你是否正在进行测试。

6.场景控件

在场景的左上角,有4个帮助你在场景中移动的控件,可以使用它来定位游戏对象。这些控件分别对应键盘上的q、w、e和r键。从左到右依次是以下4个工具。

手形工具(q):用它在场景中单击并拖动。按住键盘上的alt键来旋转视图。按住ctrl键(windows)或command/control键(apple)来放大和缩小。鼠标滚轮也可以缩放场景。按住shift键,可以加快平移、缩放、旋转的速度。这是让玩家在游戏世界中穿行的一种方法。它并不会影响玩家看到游戏的方式。要修改game视图,需要使用移动或旋转工具来修改摄像头定位。

移动工具(w):该工具用于在场景中移动游戏对象。可以通过x、y或z轴手柄拖动这些对象,也可以通过中间的正方形做自由运动。按住ctrl键或command键(apple)可以捕捉运动来设置网格增量。同时按住shift键会将对象与“地面”对齐。

旋转工具(e):通过一个简单的球形小工具,用它旋转对象。红线、绿线和蓝线分别对应x、y、z轴。

缩放工具(r):这个工具的工作原理和移动、旋转工具大致相同。使用它来放大或缩小游戏对象。拖动x、y或z轴会使对象非均匀(挤压和拉伸)缩放,而拖动中间的灰色立方体会均匀缩放它。

继续阅读