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

相关文章
|
2月前
|
设计模式 存储 人工智能
深度解析Unity游戏开发:从零构建可扩展与可维护的游戏架构,让你的游戏项目在模块化设计、脚本对象运用及状态模式处理中焕发新生,实现高效迭代与团队协作的完美平衡之路
【9月更文挑战第1天】游戏开发中的架构设计是项目成功的关键。良好的架构能提升开发效率并确保项目的长期可维护性和可扩展性。在使用Unity引擎时,合理的架构尤为重要。本文探讨了如何在Unity中实现可扩展且易维护的游戏架构,包括模块化设计、使用脚本对象管理数据、应用设计模式(如状态模式)及采用MVC/MVVM架构模式。通过这些方法,可以显著提高开发效率和游戏质量。例如,模块化设计将游戏拆分为独立模块。
164 3
|
2月前
|
图形学 开发工具 git
Unity与版本控制:游戏开发团队如何利用Git打造高效协作流程,实现代码管理的最佳实践指南
【8月更文挑战第31天】版本控制在软件开发中至关重要,尤其在Unity游戏开发中,能提升团队协作效率并避免错误。本文介绍如何在Unity项目中应用版本控制的最佳实践,包括选择Git、配置项目以排除不必要的文件、组织项目结构、避免冲突、规范提交信息以及使用分支管理开发流程,从而提高代码质量和团队协作效率。
158 1
|
3月前
|
图形学 机器学习/深度学习 人工智能
颠覆传统游戏开发,解锁未来娱乐新纪元:深度解析如何运用Unity引擎结合机器学习技术,打造具备自我进化能力的智能游戏角色,彻底改变你的游戏体验——从基础设置到高级应用全面指南
【8月更文挑战第31天】本文探讨了如何在Unity中利用机器学习增强游戏智能。作为领先的游戏开发引擎,Unity通过ML-Agents Toolkit等工具支持AI代理的强化学习训练,使游戏角色能自主学习完成任务。文章提供了一个迷宫游戏示例及其C#脚本,展示了环境观察、动作响应及奖励机制的设计,并介绍了如何设置训练流程。此外,还提到了Unity与其他机器学习框架(如TensorFlow和PyTorch)的集成,以实现更复杂的游戏玩法。通过这些技术,游戏的智能化程度得以显著提升,为玩家带来更丰富的体验。
61 1
|
2月前
|
图形学 开发者
透视与正交之外的奇妙视界:深入解析Unity游戏开发中的相机与视角控制艺术,探索打造沉浸式玩家体验的奥秘与技巧
【8月更文挑战第31天】在Unity中,相机不仅是玩家观察游戏世界的窗口,更是塑造氛围和引导注意力的关键工具。通过灵活运用相机系统,开发者能大幅提升游戏的艺术表现力和沉浸感。本文将探讨如何实现多种相机控制,包括第三人称跟随和第一人称视角,并提供实用代码示例。
121 0
|
2月前
|
图形学 开发者
【独家揭秘】Unity游戏开发秘籍:从基础到进阶,掌握材质与纹理的艺术,打造超现实游戏视效的全过程剖析——案例教你如何让每一面墙都会“说话”
【8月更文挑战第31天】Unity 是全球领先的跨平台游戏开发引擎,以其高效性能和丰富的工具集著称,尤其在提升游戏视觉效果方面表现突出。本文通过具体案例分析,介绍如何利用 Unity 中的材质与纹理技术打造逼真且具艺术感的游戏世界。材质定义物体表面属性,如颜色、光滑度等;纹理则用于模拟真实细节。结合使用两者可显著增强场景真实感。以 FPS 游戏为例,通过调整材质参数和编写脚本动态改变属性,可实现自然视觉效果。此外,Unity 还提供了多种高级技术和优化方法供开发者探索。
50 0
|
2月前
|
图形学 开发者 UED
Unity游戏开发必备技巧:深度解析事件系统运用之道,从生命周期回调到自定义事件,打造高效逻辑与流畅交互的全方位指南
【8月更文挑战第31天】在游戏开发中,事件系统是连接游戏逻辑与用户交互的关键。Unity提供了多种机制处理事件,如MonoBehaviour生命周期回调、事件系统组件及自定义事件。本文介绍如何有效利用这些机制,包括创建自定义事件和使用Unity内置事件系统提升游戏体验。通过合理安排代码执行时机,如在Awake、Start等方法中初始化组件,以及使用委托和事件处理复杂逻辑,可以使游戏更加高效且逻辑清晰。掌握这些技巧有助于开发者更好地应对游戏开发挑战。
101 0
|
2月前
|
图形学 开发者 搜索推荐
Unity Asset Store资源大解密:自制与现成素材的优劣对比分析,教你如何巧用海量资产加速游戏开发进度
【8月更文挑战第31天】游戏开发充满挑战,尤其对独立开发者或小团队而言。Unity Asset Store 提供了丰富的资源库,涵盖美术、模板、音频和脚本等,能显著加快开发进度。自制资源虽具个性化,但耗时长且需专业技能;而 Asset Store 的资源经官方审核,质量可靠,可大幅缩短开发周期,使开发者更专注于核心玩法。然而,使用第三方资源需注意版权问题,且可能需调整以适应特定需求。总体而言,合理利用 Asset Store 能显著提升开发效率和项目质量。
63 0
|
3月前
|
开发者 图形学 API
从零起步,深度揭秘:运用Unity引擎及网络编程技术,一步步搭建属于你的实时多人在线对战游戏平台——详尽指南与实战代码解析,带你轻松掌握网络化游戏开发的核心要领与最佳实践路径
【8月更文挑战第31天】构建实时多人对战平台是技术与创意的结合。本文使用成熟的Unity游戏开发引擎,从零开始指导读者搭建简单的实时对战平台。内容涵盖网络架构设计、Unity网络API应用及客户端与服务器通信。首先,创建新项目并选择适合多人游戏的模板,使用推荐的网络传输层。接着,定义基本玩法,如2D多人射击游戏,创建角色预制件并添加Rigidbody2D组件。然后,引入网络身份组件以同步对象状态。通过示例代码展示玩家控制逻辑,包括移动和发射子弹功能。最后,设置服务器端逻辑,处理客户端连接和断开。本文帮助读者掌握构建Unity多人对战平台的核心知识,为进一步开发打下基础。
109 0
|
3月前
|
开发者 图形学 C#
深度解密:Unity游戏开发中的动画艺术——Mecanim状态机如何让游戏角色栩栩如生:从基础设置到高级状态切换的全面指南,助你打造流畅自然的游戏动画体验
【8月更文挑战第31天】Unity动画系统是游戏开发的关键部分,尤其适用于复杂角色动画。本文通过具体案例讲解Mecanim动画状态机的使用方法及原理。我们创建一个游戏角色并设计行走、奔跑和攻击动画,详细介绍动画状态机设置及脚本控制。首先导入动画资源并添加Animator组件,然后创建Animator Controller并设置状态间的转换条件。通过编写C#脚本(如PlayerMovement)控制动画状态切换,实现基于玩家输入的动画过渡。此方法不仅适用于游戏角色,还可用于任何需动态动画响应的对象,增强游戏的真实感与互动性。
86 0
|
3月前
|
开发者 图形学 iOS开发
掌握Unity的跨平台部署与发布秘籍,让你的游戏作品在多个平台上大放异彩——从基础设置到高级优化,深入解析一站式游戏开发解决方案的每一个细节,带你领略高效发布流程的魅力所在
【8月更文挑战第31天】跨平台游戏开发是当今游戏产业的热点,尤其在移动设备普及的背景下更为重要。作为领先的游戏开发引擎,Unity以其卓越的跨平台支持能力脱颖而出,能够将游戏轻松部署至iOS、Android、PC、Mac、Web及游戏主机等多个平台。本文通过杂文形式探讨Unity在各平台的部署与发布策略,并提供具体实例,涵盖项目设置、性能优化、打包流程及发布前准备等关键环节,助力开发者充分利用Unity的强大功能,实现多平台游戏开发。
93 0