初识Unity
Game面板
Game面板是游戏试玩窗口,展示的是游戏中渲染的实际场景。在Game面板中不能直接通过拖动来移动、旋转、缩放物体,也不能在Game面板中直接点击选中物体。
有三个按键是对Game面板进行控制的,他们是:
Play按钮:在2 by 3布局下,Game面板会直接进入试玩模式;在default布局下,Scene面板会自动被切换成Game面板,并将进入试玩模式。在试玩模式下不再能使用Unity引擎的快捷键,但可以在Game视图内运行当前关卡。在试玩模式下再点击Play会退出到编辑模式。
Pause按钮:如果在编辑模式下先点击Pause,再点击Play,游戏会在第一帧后暂停,如果在试玩模式下点击Pause,游戏会暂停,暂停状态下点击Play退出试玩模式,游戏会同时退出暂停状态。
Next Frame按钮: 在Play状态下点击Next Frame按钮会自动进入暂停状态,并向后运行一帧,此后每次点击该按钮也会使程序运行一帧,这个按钮的作用类似于断点调试。
Game面板下的工具栏如图所示
左侧的下拉选项可以选取对应的分辨率,在Free Aspect模式下,分辨率会随着Game面板的形变而自动改变,以填满整个Game面板,修改这个选项可以将分辨率设定为1920x1080等常见的分辨率配置。我们经常在Free Aspect模式下测试游戏UI的自适配功能。
Scale滑动条可以缩放Game视图,注意在这种情况下并不是缩放摄像机,而是缩放像素,所以在放大情况下图像可能显示不清。
Hierarchy面板
Hierarchy即树形图,一个场景中的物体是以树形结构储存的。Hierarchy面板中的物体,被称为GameObject。
在Hierarchy中,点击一个GameObject就可以选中这个物体。按住Ctrl键可以进行加选和减选,而按住Shift键点击两个GameObject,可以快速的选中一连串对象。
一些GameObject前有一个三角形标记,点击它就可以展开这个GameObject的子结点。在按住Alt键的情况下点击三角标记,可以展开整个树。
子物体所在坐标系是父物体的模型空间坐标系,而没有父物体的GameObject,它们所在的坐标系是世界空间坐标系。当移动、旋转、缩放物体时,它的模型空间坐标系跟着进行移动、旋转、缩放,这导致它的子物体也随之移动、旋转、缩放。
使用这一特性的一个实例:在一个RPG游戏中,主角可以更换武器,已经提供了主角的模型和骨骼,以及多个武器的模型,保证每次更换武器,武器都可以准确的放在主角的手上,且主角在运动时武器依然绑定在主角的手上。实现方法是对于每个武器,将一个空GameObject放在武器需要被握着的手柄位置,作为这个武器的轴点,然后在脚本中监控主角的右手骨骼,切换武器时将上述的空GameObject设为右手骨骼的子物体,就可以保证武器在主角播放动画时始终绑定在主角手上。上述脚本的写法将在关于GameObject和Transform的章节中详解。
Hierarchy树的根节点是一个场景(Scene),在下图中,所有GameObject的根节点是Sample Scene。
注:虽然GameObject的根节点是Scene,但在脚本中通过transform.parent无法获得Scene对象,如果一个GameObject的父物体不是另一个GameObject,则上述语句返回null,这一点在Transform章节中会重新强调。
并非在所有情况下Hierarchy中都只有一个Scene,如下图中存在三个场景:New Scene 1、SampleScene和MyScene2。但在任何情况下,Hierarchy中都有且只有一个“基场景”,在上图中基场景是New Scene 1,其它场景我们都可以称为“同步场景”。更多关于场景的用法我们将在接后面关于场景的章节中详细描述。
在Hierarchy面板中,我们可以创建新GameObject。我们既可以点击左上角的Create菜单,也可以在Hierarchy面板的适当位置点击右键来创建新物体。
在真实的工程中,我们经常在Hierarchy中创建的GameObject如下:
“Create Empty”:创建一个空GameObject,它默认没有任何组件(除了Transform),包括Renderer组件,这表示它不会被渲染,不能附加材质。它的作用通常有两个,一是作为一个坐标系,如前文提到的装备武器的场景;二是作为一个文件夹,在创建Prefabs和对场景中的物体进行管理时,将一部分GameObject设为空物体的子物体,以此来将它们在Hierarchy树型结构中隐藏。
“3D Object”->“Cube”/“Sphere”/“Capsule”:创建立方体、球体、胶囊体。一般3D游戏的模型都是由美术提供的,作为程序员我们不需要考虑模型的问题,而这里创建的立方体、球体和胶囊体一般用于制作占位符,在制作原型时顶替将来应该有模型的位置。注意,制作占位符应当将新建的模型作为空物体的子物体保存,这样才方便未来替换美术资源。
”3D Object"->“Plane”/“Quad”:Plane常用作制作地板,而Quad常用作3D游戏中的2D物体(如广告牌和电脑屏幕)。Plane默认的大小是Quad的10倍,Plane默认的正面朝向y轴正方向,Quad朝向z轴负方向。它们都是背面剔除的,即摄像机从背面渲染时会表现为透明。
“2D Object”->“Sprite”:2D游戏中所有的GameObject都应以Sprite的形式实现。
“Effects”->“Particle System”:粒子系统,用于制作特效,将在粒子系统一章中详述。
“UI”:用户界面,细节极多,将在UI一章中详述。
“Camera”:摄像机,将在摄像机一章中详述。
在Hierarchy的搜索框中搜索物体时,除了被搜索到的GameObject外的其他物体都会显示为灰色。如果发现Scene中物体变成了灰白色,请检查搜索框是否已经被清空。