美文网首页
Unity练习2 - 《John Lemon's Haunted

Unity练习2 - 《John Lemon's Haunted

作者: 我阿郑 | 来源:发表于2023-12-22 07:54 被阅读0次

上一节完成了游戏角色的创建。角色可以四处走动。本节为场景添加环境,设置正确的光照,并添加导航网格 (Navigation Mesh) 以使敌人可以最终游荡在鬼屋大厅!

教程地址

✅ 添加环境

在 Unity 中构建环境是一个根据制作的游戏类型不同而有所差异的过程。 环境通常需要在场景中有物理存在,因此随后要向每个模型添加碰撞体。这些部件通常是预制体,因此您不必每次都添加新的碰撞体。

创建游戏环境可能是一项非常耗费人力的过程。为节省一些重复性的工作,我们已经为该游戏创建了环境,您只需对其进行实例化即可:

Assets > Prefabs 选择 Level Prefab,将其 Project 窗口拖入 Hierarchy 以实例化该预制体。

image.png

关卡预制件 (Level Prefab) 包含多种模型,包括墙壁、地板、门、家具和装饰品。

✅ 定位玩家角色

选择 JohnLemon 游戏对象。将其 Transform 的 Position 改为 (-9.8, 0, -3.2)。
下一步是调整场景的光照

✅ 为环境设置光照

光照会对气氛产生重大影响,改变游戏中的光照是为玩家营造一个真正幽灵般环境的第一步。

Unity 中的每个新场景默认都分配了方向光 (Directional Light)。您的场景现在还具有由关卡预制件 (Level Prefab) 添加的一系列额外光源。

让我们更改方向光,使其更像月光,并创建一些有趣的阴影

  • 更改方向光的Color 为 (225, 240, 250) 将会产生非常浅的蓝光,而不是黄光。
  • 将 Intensity 增加到 2
  • 现在,改善鬼屋中诡异阴影的质量。在 Light 组件中找到 Realtime Shadows 将其 ResolutionUse Quality Settings 更改为 Very High Resolution
  • 将 Realtime Shadows Bias 和 Normal Bias 属性设置为 0.01。
  • 在 Transform 中将 Rotation 设为 (30, 20, 0)。这样将会旋转光源,使光线穿透房屋的窗户。

✅ 创建全局光照之光照贴图 (Global Illumination Lightmapping) 效果

Unity 中有两种光照可以帮助您模拟真实的光照行为:直接 (Direct) 光照和间接 (Indirect) 光照。

直接光照来自特定的光源,例如太阳(场景中的方向光)。间接光照是当直射光从表面反弹时产生的额外光照。

image.png

这种效果通常都是在 Unity 中使用全局光照之光照贴图 (Global Illumination Lightmapping) 功能创建的。光照贴图可以模拟场景中的光反弹,并将其写入(即“烘焙”)到项目中存储的资源。这个过程需要时间,但可以产生十分逼真的场景。

为了节省时间,您可以使用近似算法来创建类似的效果:

window | Rendering | Lighting ,打开Lighting Settings 窗口:

image.png
  • 在 Realtime Lighting 部分中,禁用 Realtime Global Illumination 复选框。
  • 在 Mixed Lighting 部分中,禁用 Baked Global Illumination 复选框。
  • 在 Environment 部分中,使用 Skybox Material 属性最右边的圈选按钮将该属性设置为 None(表示 null 引用)。该游戏不需要真实的天空,而是要使用其他光照。
  • 在 Environment 部分中,将 Environment Lighting Source 设置为 Gradient。
Gradient 分为三个颜色字段:
`Sky`,用于控制从场景上方发出的环境光。
`Equator`,用于控制从地平线向场景中间传播的光线。
`Ground`,用于控制从场景下方发出的光线。
  • 将 Sky 颜色设置为浅灰色:(170, 180, 200) 此设置将提升地板以及床和桌子等对象的整体亮度
  • 将 Equator 颜色设置为蓝灰色:(90, 110, 130) 此设置将提升墙壁和道具的亮度
  • 将 Ground 颜色设置为黑色:(0, 0, 0) Ground 颜色可以增加向上的光线,从而产生漂亮的全局光照风格效果。但是,对于您正在创建的鬼屋来说,这太明亮了。

保存您的场景。您已经完成了游戏的基本光照并用来增强其幽灵般的气氛。接下来,您将创建一个【导航网格】以帮助幽灵在游戏环境中移动。

✅ 添加导航网格

鬼屋有幽灵徘徊在大厅里。

为了帮助我们的幽灵寻路,Unity 内置了一个称为 NavMesh 导航网格。导航网格 (NavMesh) 是在地面上不可见的形状,定义了一个可以让选定游戏对象在其中移动的区域

➡️ 创建导航网格

在大纲窗口右键 | AI | NavMesh Surface

image.png

这个 NavMesh Surface 就是用来烘培导航网格的。

image.png

代理的尺寸以及代理可以穿越的地形。

image.png

需要针对游戏进行调整的 Agent 的设置:

image.png
  • Agent Radius 改为 0.25 ,游荡在鬼屋中的幽灵将小于默认大小。

➡️ 过滤掉 Ceiling Plane(天花板) 点击Bake

关卡设计中有一个 Ceiling Plane(天花板) 游戏对象用于投射阴影。如果将这个游戏对象包含在烘焙中,幽灵可能最终会在天花板上行走!听起来很阴森可怖,但不适合本游戏。

先禁掉 CeilingPlane 点击Bake ,Bake完成后再打开CeilingPlane

完成后,Scene 窗口中的环境将被浅蓝色网格覆盖。这是幽灵能够在其中移动的环境区域。

image.png

相关文章

网友评论

      本文标题:Unity练习2 - 《John Lemon's Haunted

      本文链接:https://www.haomeiwen.com/subject/qxdagdtx.html