《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按钮清除搜索栏。


2025e9efa395780f659fd78481325a9cfce0c627

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


c9265844e0d9cef269985eb84510d0374e844d5a

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


d75a17c7065ee3196ed2882d7e2c525fda2a93f0

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

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

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


14dabc595948f3575ddab192393b238ec24a63c6

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是最费时间的,因为这是调整组成游戏项目中元素每个环节的地方。


70648585a22ed790d1c8ae70096bc69e423788cf

上面所示的Inspector截图显示了AngryBots演示中属于Player游戏对象的组件:脚本(包括Free Movement Motor和Player Move Controller)、刚体组件、胶囊碰撞器等。要在电脑中查看这些内容,需要点击打开Hierarchy面板中的Player游戏对象。

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

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

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


9712bcdd1f328db52d76f9516493fa0e2a48b05f

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

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


9aed8d4268d8587e5c986fb97a76ace30fcc493d

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

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


1951e77a6375b127f90a58639502c793577a4262

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


b993bd48ff8038c2286c33931344a195bd8d2dc9

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

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轴会使对象非均匀(挤压和拉伸)缩放,而拖动中间的灰色立方体会均匀缩放它。

相关文章
|
3月前
|
机器学习/深度学习 人工智能 图形学
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
343 9
|
4月前
|
C# 图形学 开发者
【Unity3D实例-功能-镜头】俯视角
本文介绍了Unity中常用的俯视角镜头实现方法,涵盖模型添加、角色Tag设置、摄像机脚本编写及测试运行,帮助开发者快速掌握俯视角在策略与模拟类游戏中的应用技巧。
319 0
|
4月前
|
人工智能 定位技术 C#
【Unity3D实例-功能-移动】通过鼠标点击进行角色移动
本文介绍了如何在Unity中实现鼠标点击控制角色移动的功能。通过安装导航网格、设置地图与角色、烘焙路径及编写脚本,带领读者一步步构建角色自动寻路系统,增强游戏交互体验。
202 0
|
5月前
|
C# 图形学 开发者
【Unity3D实例-功能-移动】复杂移动(Blend Tree方式)
本文介绍了使用Unity中Blend Tree实现角色移动控制的完整教程,涵盖动画器设置、Blend Tree创建、CharacterController组件添加及代码控制,帮助开发者实现流畅自然的角色动画效果。
136 0
|
5月前
|
图形学 开发者
【Unity3D实例-功能-移动】角色移动-通过WSAD(CharacterController方式)
本文介绍了如何在Unity中使用CharacterController组件实现角色灵活移动。内容包括模型准备、动画处理、添加组件、编写移动脚本及测试运行,帮助开发者快速掌握角色控制技巧,打造流畅的游戏体验。
225 0
|
5月前
|
C# 图形学 开发者
【Unity3D实例-功能-移动】角色移动-通过WSAD(Rigidbody方式)
本文介绍了如何在Unity中使用Rigidbody组件实现角色自由移动,包括模型准备、组件添加、脚本编写与测试运行,帮助开发者快速掌握基础角色控制技巧。
237 0
|
5月前
|
C# 图形学
【Unity3D实例-功能-移动】角色移动-通过WSAD(Transform方式)
本文介绍了如何在Unity中实现角色移动功能,使用Transform组件控制角色基础移动,并详细讲解了模型导入、动画设置、动画控制器配置及移动脚本编写等内容,适合Unity初学者学习角色控制的基础知识。
186 0
|
设计模式 存储 人工智能
深度解析Unity游戏开发:从零构建可扩展与可维护的游戏架构,让你的游戏项目在模块化设计、脚本对象运用及状态模式处理中焕发新生,实现高效迭代与团队协作的完美平衡之路
【9月更文挑战第1天】游戏开发中的架构设计是项目成功的关键。良好的架构能提升开发效率并确保项目的长期可维护性和可扩展性。在使用Unity引擎时,合理的架构尤为重要。本文探讨了如何在Unity中实现可扩展且易维护的游戏架构,包括模块化设计、使用脚本对象管理数据、应用设计模式(如状态模式)及采用MVC/MVVM架构模式。通过这些方法,可以显著提高开发效率和游戏质量。例如,模块化设计将游戏拆分为独立模块。
866 3
|
图形学 开发工具 git
Unity与版本控制:游戏开发团队如何利用Git打造高效协作流程,实现代码管理的最佳实践指南
【8月更文挑战第31天】版本控制在软件开发中至关重要,尤其在Unity游戏开发中,能提升团队协作效率并避免错误。本文介绍如何在Unity项目中应用版本控制的最佳实践,包括选择Git、配置项目以排除不必要的文件、组织项目结构、避免冲突、规范提交信息以及使用分支管理开发流程,从而提高代码质量和团队协作效率。
1333 2
|
图形学 开发者
透视与正交之外的奇妙视界:深入解析Unity游戏开发中的相机与视角控制艺术,探索打造沉浸式玩家体验的奥秘与技巧
【8月更文挑战第31天】在Unity中,相机不仅是玩家观察游戏世界的窗口,更是塑造氛围和引导注意力的关键工具。通过灵活运用相机系统,开发者能大幅提升游戏的艺术表现力和沉浸感。本文将探讨如何实现多种相机控制,包括第三人称跟随和第一人称视角,并提供实用代码示例。
638 1