《Unity 5.x游戏开发实战》一1.4 开始一个关卡

简介:

本节书摘来异步社区《Unity 5.x游戏开发实战》一书中的第1章,第1.4节,作者: Alan Thorn 译者: 李华峰 责编: 胡俊英,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.4 开始一个关卡

现在已经创建了一个Unity的项目,并且利用Unity的标准资源包导入了一个很大的资源库,包括一些建筑类网格,例如墙、地板、天花板、楼梯等,将使用这些资源建立第一个关卡(level)。记住,在Unity中,一个场景(Scene)往往也就意味着一个关卡。场景和关卡这两个词汇在这里是没有区别的,都是指一个三维空间,也就是游戏发生的时空。现在来创建一个金币采集游戏的场景,首先从应用程序菜单依次选择“File | New”,或者也可以在键盘上按下“Ctrl + N”组合键。当完成了这个操作之后,一个新的空白的场景就被创建好了。可以在占据了Unity开发界面最大部分的场景(Scene)选项卡中看到场景的预览,如图1.14所示。


14

注意 

如图1.14所示,在Unity中的场景(Scene)选项卡以外的其他选项卡也是可见的,并且可以使用的。这些选项卡包括游戏(Game)选项卡和动画(Animator)选项卡。有时,选项卡的数目可能会更多。不过现在可以忽略除了场景以外的其他所有选项卡。场景(Scene)选项卡是为了能够在游戏的开发中简单快速地查看一个关卡。

每一个新的场景都是空的,严格来说几乎是空的。默认情况下,每一个新的场景都是由两个对象开始的,首先添加一个用来照亮其他任意对象的光源对象(Light),然后是一个用来从特定角度对场景中的内容进行显示和渲染用的摄像机(Camera)。可以使用开发界面(见图1.15)左侧的层次(Hierarchy)面板来查看所有在场景中对象的完整列表。这个面板上显示了场景中所有对象的名称。在Unity中,游戏对象的含义就是在场景中存在的单一、独立的东西,无论它们是可见的还是不可见的,例如网格、光源、摄像机、道具等。因此,只有从层次(Hierarchy)面板才能看到游戏场景中的一切。


15

注意 

也可以通过在层次(Hierarchy)面板中单击游戏中对象的名称来选中它们。

接下来为这个场景添加一个地面(Floor)。要知道,游戏中的玩家总得站在一些东西上面。可以使用第三方的建模软件(如Maya、3DS Max或者Blender)来创建一个地面网格。不过,在之前导入过的标准资源包中就含有可以使用的地面网格,这是相当方便的。这些网格都是原型软件包(Prototyping Package)的一部分。如果想通过项目(Project)面板完成对这些资源的访问,可以双击打开“Standard Assets”文件夹,然后访问“Prototyping | Prefabs”文件夹。如图1.16所示,可以看到这些对象,并从检查(Inspector)面板中对它们进行预览。


16

注意 

你也可以在应用程序菜单上依次选择GameObject|3D Object|Plane,这样可以更加方便地向场景(Scene)中添加地面(Floor)。不过,加进来的这个地面看起来一片灰暗,给人一种枯燥无味的感觉。当然,这个地面的外观是可改变的。正如我们在后面即将看到的一样,Unity中允许对物体外观进行改变。不过,在本书中,我们将从项目面板(Project panel)中的标准资源包里找到一个专门的地面网格(floor mesh)来使用。

图1.16所示的名为“FloorPrototype64x01x64”的网格十分适合作为一个地面,现在只需要简单地将项目(Project)面板(Panel)中的对象拖曳到场景(Scene)视图中,然后释放鼠标即可完成这个网格的添加工作,如图1.17所示。当在进行这个操作时要注意,在三维空间中新添加了网格之后,场景(Scene)视图中发生的变化,同时也要注意到这个网格的名称也出现在了层次(Hierarchy)面板的列表中。


17

至此,现在项目(Project)面板上的网格资源已经被实例化为一个场景中的物体。这意味着一个项目(Project)面板上的副本已经作为一个独立的游戏对象加入到了场景之中。地面的实例(或者对象)依附于项目(Project)面板中的“floor”资源。但是反过来,这些资源却并不依附这些实例。这意味着当在场景中删除这些实例(或者游戏对象)时,这些资源并不会被删除。反之,当删除了这些资源时,场景中的这些实例就会被删除。如果场景中需要更多的地面,就可以多次从项目(Project)面板中向场景(Scene)视图拖动“floor”资源。每进行一次这种操作,都会在场景中添加一个单独的游戏物体。虽然这些游戏物体都依附于同一个“floor”资源,但是它们相互之间都是独立的(见图1.18)。


18

实际上,并不需要这么多重复的地面,所以先把它们删除。删除这些地面的方法是先在场景(Scene)视图中逐个单击这些“floor”对象,然后在键盘上按下删除键。另外记住,也可以通过单击层次(Hierarchy)面板上这些游戏物体的名字,然后按下删除键。不管使用的是哪一种方法,如今在场景中都只剩下了唯一一个“floor”对象。现在还有一个问题,那就是这个“floor”对象的名字问题。在层次(Hierarchy)面板上可以清楚地看到这个“floor”对象的名字是“FloorPrototype64x01x64”,这个名字很长,意义又不够明确,而且调用的时候又不方便。因此应该将这个名字改为一个更容易管理的,而且意义更明确的,这样才能使工作更加有条理,也更容易管理。Unity中有很多种可以将对象重命名的方法,首先选中对象,然后在其检查(Inspector)面板中的名称字段处输入新的名字。这里将这个对象重命名为“WorldFloor”,如图1.19所示。


19

相关文章
|
2月前
|
图形学 C#
超实用!深度解析Unity引擎,手把手教你从零开始构建精美的2D平面冒险游戏,涵盖资源导入、角色控制与动画、碰撞检测等核心技巧,打造沉浸式游戏体验完全指南
【8月更文挑战第31天】本文是 Unity 2D 游戏开发的全面指南,手把手教你从零开始构建精美的平面冒险游戏。首先,通过 Unity Hub 创建 2D 项目并导入游戏资源。接着,编写 `PlayerController` 脚本来实现角色移动,并添加动画以增强视觉效果。最后,通过 Collider 2D 组件实现碰撞检测等游戏机制。每一步均展示 Unity 在 2D 游戏开发中的强大功能。
84 6
|
1月前
|
测试技术 C# 图形学
掌握Unity调试与测试的终极指南:从内置调试工具到自动化测试框架,全方位保障游戏品质不踩坑,打造流畅游戏体验的必备技能大揭秘!
【9月更文挑战第1天】在开发游戏时,Unity 引擎让创意变为现实。但软件开发中难免遇到 Bug,若不解决,将严重影响用户体验。调试与测试成为确保游戏质量的最后一道防线。本文介绍如何利用 Unity 的调试工具高效排查问题,并通过 Profiler 分析性能瓶颈。此外,Unity Test Framework 支持自动化测试,提高开发效率。结合单元测试与集成测试,确保游戏逻辑正确无误。对于在线游戏,还需进行压力测试以验证服务器稳定性。总之,调试与测试贯穿游戏开发全流程,确保最终作品既好玩又稳定。
47 4
|
2月前
|
图形学 缓存 算法
掌握这五大绝招,让您的Unity游戏瞬间加载完毕,从此告别漫长等待,大幅提升玩家首次体验的满意度与留存率!
【8月更文挑战第31天】游戏的加载时间是影响玩家初次体验的关键因素,特别是在移动设备上。本文介绍了几种常见的Unity游戏加载优化方法,包括资源的预加载与异步加载、使用AssetBundles管理动态资源、纹理和模型优化、合理利用缓存系统以及脚本优化。通过具体示例代码展示了如何实现异步加载场景,并提出了针对不同资源的优化策略。综合运用这些技术可以显著缩短加载时间,提升玩家满意度。
48 5
|
1月前
|
前端开发 图形学 开发者
【独家揭秘】那些让你的游戏瞬间鲜活起来的Unity UI动画技巧:从零开始打造动态按钮,提升玩家交互体验的绝招大公开!
【9月更文挑战第1天】在游戏开发领域,Unity 是最受欢迎的游戏引擎之一,其强大的跨平台发布能力和丰富的功能集让开发者能够迅速打造出高质量的游戏。优秀的 UI 设计对于游戏至关重要,尤其是在手游市场,出色的 UI 能给玩家留下深刻的第一印象。Unity 的 UGUI 系统提供了一整套解决方案,包括 Canvas、Image 和 Button 等组件,支持添加各种动画效果。
74 3
|
1月前
|
设计模式 存储 人工智能
深度解析Unity游戏开发:从零构建可扩展与可维护的游戏架构,让你的游戏项目在模块化设计、脚本对象运用及状态模式处理中焕发新生,实现高效迭代与团队协作的完美平衡之路
【9月更文挑战第1天】游戏开发中的架构设计是项目成功的关键。良好的架构能提升开发效率并确保项目的长期可维护性和可扩展性。在使用Unity引擎时,合理的架构尤为重要。本文探讨了如何在Unity中实现可扩展且易维护的游戏架构,包括模块化设计、使用脚本对象管理数据、应用设计模式(如状态模式)及采用MVC/MVVM架构模式。通过这些方法,可以显著提高开发效率和游戏质量。例如,模块化设计将游戏拆分为独立模块。
77 3
|
2月前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
68 3
|
1月前
|
图形学 C++ C#
Unity插件开发全攻略:从零起步教你用C++扩展游戏功能,解锁Unity新玩法的详细步骤与实战技巧大公开
【8月更文挑战第31天】Unity 是一款功能强大的游戏开发引擎,支持多平台发布并拥有丰富的插件生态系统。本文介绍 Unity 插件开发基础,帮助读者从零开始编写自定义插件以扩展其功能。插件通常用 C++ 编写,通过 Mono C# 运行时调用,需在不同平台上编译。文中详细讲解了开发环境搭建、简单插件编写及在 Unity 中调用的方法,包括创建 C# 封装脚本和处理跨平台问题,助力开发者提升游戏开发效率。
52 0
|
1月前
|
vr&ar 图形学 API
Unity与VR控制器交互全解:从基础配置到力反馈应用,多角度提升虚拟现实游戏的真实感与沉浸体验大揭秘
【8月更文挑战第31天】虚拟现实(VR)技术迅猛发展,Unity作为主流游戏开发引擎,支持多种VR硬件并提供丰富的API,尤其在VR控制器交互设计上具备高度灵活性。本文详细介绍了如何在Unity中配置VR支持、设置控制器、实现按钮交互及力反馈,结合碰撞检测和物理引擎提升真实感,助力开发者创造沉浸式体验。
72 0
|
1月前
|
图形学 开发者
【独家揭秘】Unity游戏开发秘籍:从基础到进阶,掌握材质与纹理的艺术,打造超现实游戏视效的全过程剖析——案例教你如何让每一面墙都会“说话”
【8月更文挑战第31天】Unity 是全球领先的跨平台游戏开发引擎,以其高效性能和丰富的工具集著称,尤其在提升游戏视觉效果方面表现突出。本文通过具体案例分析,介绍如何利用 Unity 中的材质与纹理技术打造逼真且具艺术感的游戏世界。材质定义物体表面属性,如颜色、光滑度等;纹理则用于模拟真实细节。结合使用两者可显著增强场景真实感。以 FPS 游戏为例,通过调整材质参数和编写脚本动态改变属性,可实现自然视觉效果。此外,Unity 还提供了多种高级技术和优化方法供开发者探索。
41 0
|
2月前
|
开发者 图形学 C#
揭秘游戏沉浸感的秘密武器:深度解析Unity中的音频设计技巧,从背景音乐到动态音效,全面提升你的游戏氛围艺术——附实战代码示例与应用场景指导
【8月更文挑战第31天】音频设计在游戏开发中至关重要,不仅能增强沉浸感,还能传递信息,构建氛围。Unity作为跨平台游戏引擎,提供了丰富的音频处理功能,助力开发者轻松实现复杂音效。本文将探讨如何利用Unity的音频设计提升游戏氛围,并通过具体示例代码展示实现过程。例如,在恐怖游戏中,阴森的背景音乐和突然的脚步声能增加紧张感;在休闲游戏中,轻快的旋律则让玩家感到愉悦。
48 0