大家好,新一期又跟大家见面了。

上一节我们完成了角色的移动控制,然而John只能在空白的场景中移动。因此接下来这一节我们将添加关卡、调节光照,让John来到阴森的鬼屋。然后设置NavMesh(导航网格,现在先听个概念就好),为以后添加会巡逻的幽灵作准备。

是不是越来越像那么回事了?

一、添加关卡

1 创建关卡实例

在Project窗口中打开Assets> Prefabs文件夹,找到Level 的预制体,把它拖到Hierarchy窗口中。

2 把JohnLemon移动到关卡中

(1) 在Hierarchy窗口中,选中JohnLemon GameObject。

(2) 在Inspector窗口中,修改transform组件里Position属性(-9.8,0,-3.2)

二、调节光照

光照是烘托气氛的重要元素,接下来我们调节光照,使鬼屋关卡看起来更加幽暗。

1 Directional Light(方向光)可以模拟像太阳这类远处的光源。

图片来源:https://learn.unity.com/tutorial/the-environment?projectId=5caf65ddedbc2a08d53c7acb#5caf7befedbc2a0ded5950d4

设置Directional Light

在Hierarchy窗口中,选中Directional Light:

(1) 在Inspector窗口中,Light组件里的Type下拉菜单栏选择Directional

(2) 点击Color属性,弹出Color picker窗口。

各个参数含义以及设置:

下拉菜单:RGB 0-255

R(红):225

G(绿):240

B(蓝):250

A(透明度):255

设置完之后关闭窗口,诡异的蓝光就做好啦~

(3) 回到Light组件,Intensity(强度)设置为2。通过设置阴影的参数,使气氛更加毛骨悚然~

(4) Realtime Shadows -> Resolution(分辨率)下拉菜单选择Very High Resolution。

(5) Realtime Shadows -> BiasNormal Bias 属性参数设置为0.1。

(6) 把Transform组件的Rotation属性设置为(30, 20, 0),旋转灯光使光线从窗户射进屋里。

调整前
调整后

2 全局光照

Unity中有两种光来模拟现实世界中的光照,直接光照模拟来自特定光源的光(例如上一部分设置的阳光),间接光照模拟反射光。

左:没有光照 中:只有直接光照 右:全局光照(直接+间接)

图片来源:https://learn.unity.com/tutorial/the-environment?projectId=5caf65ddedbc2a08d53c7acb#5caf7befedbc2a0ded5950d6

这种逼真的效果通常需要经过一段长时间的烘焙,所以我们这里采用设置近似值的方法来进行快速模拟:

(1)打开Lighting窗口

点击顶部菜单栏的Window > Rendering >Lighting Settings,点击Lighting弹窗的标签并拖动到Inspector

(2) 设置参数

①在Environment下,点击Skybox Material 属性右侧的小圆,弹窗里选择None。(因为这个游戏不需要显示天空)

②Environment Lighting设置:

  • Source:改为Gradient(渐变)。
  • Sky Color:控制场景里方光源,RGB设置为(170, 180, 200 )
  • Equator Color:控制场景里间的光,RGB设置为(90, 110, 130)
  • Ground Color:控制场景里方的光,RGB设置为(0, 0, 0)

(3)取消勾选Realtime Global Illumination(实时全局光照)和Baked Global Illumination(烘焙全局光照)

设置完毕后CTRL+S保存场景。

三、 设置NavMesh(导航网格)

NavMesh是一种自动寻路的技术,我们可以用它使幽灵在场景中游走。

1 标记Static

(1) 在Hierarchy中,选中Level GameObject。

(2) 在Inspector中,勾选Static(静态),使其纳入导航范围。

(3) 弹窗选择Yes,change children,把子对象也一同标记为Static

(4) 禁用(取消勾选)天花板的Static,因为这个游戏里的幽灵不能在天花板上游走。

在Hierarchy中,Level> Corridors> Dressing> Ceiling Plane 并选择Ceiling Pane GameObject,取消勾选Inspector窗口中的Static。

设置完毕CTRL+S保存场景。

2 创建NavMesh

(1) 添加Navigation窗口

在顶部菜单栏中,选择Window > AI > Navigation,窗口会出现在Inspector窗口旁。

(1)设置Bake(烘焙)参数

①选中Bake选项

Agent Radius(半径)调至0.25,适配以后添加幽灵角色的半径。

③ 设置完后点击Bake按钮。

烘焙完成后,蓝色区域代表可以行走的区域,选中Navigation窗口才会显示哦。

结语:这一节我们添加了关卡,然后设置了环境的光照烘托诡异的气氛,创建NavMesh(导航网格)为添加会移动的幽灵作准备。赶紧CTRL+P运行游戏,让John承包一次鬼屋吧~由于此时我们还没有设置摄像机跟随,所以运行时要把Game视窗拖动到一旁,在Scene视图中观察John的移动(运行后点击Game视窗然后WASD操作)。下一节我们将学习Camera篇,设置摄像头跟随以及屏幕后效(可让画面效果表现得更棒)。

迫不及待想自行开始制作的小伙伴,可以浏览John Lemon's Haunted Jaunt官方教程:

https://learn.unity.com/project/john-lemon-s-haunted-jaunt-3d-beginner

咱们的游戏开发交流群也欢迎强势插入:869551769

希望参与线下游戏开发学习的,欢~~~~~~迎访问:http://www.levelpp.com/

ugui unity 取消选择_Unity暑期萌新入门:环境篇相关推荐

  1. unity 敌人自动攻击和寻路_Unity暑期萌新入门:环境篇

    大家好,新一期又跟大家见面了. 上一节我们完成了角色的移动控制,然而John只能在空白的场景中移动.因此接下来这一节我们将添加关卡.调节光照,让John来到阴森的鬼屋.然后设置NavMesh(导航网格 ...

  2. ugui unity 取消选择_关于Unity中的UGUI优化,你可能遇到这些问题

    ​关键字 界面制作 ​网格重建 ​界面切换 ​加载相关 ​字体 ​ 一.界面制作 Q1:UGUI里的这个选项 ,应该是ETC2拆分Alpha通道的意思,但是在使用中并没起作用?请问有没有什么拆分的标准 ...

  3. ugui unity 取消选择_UGUI中几种不规则按钮的实现方式

    前言 UGUI中的按钮默认是矩形的,若要实现非矩形按钮该怎么做呢?比如这样的按钮: 本文将介绍两种实现方式供大家选择. 使用alphaHitTestMinimumThreshold Image类的al ...

  4. python3入门与进阶笔记_我的Python3萌新入门笔记

    Python3萌新入门笔记是一系列真实的自学笔记. 当然,它也是比较全面的入门教程,共包括54篇笔记. 从第一篇笔记开始,大半年的时间我都是在自学和组织教程内容. 我觉得有必要,把我自己的学习过程和大 ...

  5. python3萌新入门笔记_我的Python3萌新入门笔记

    Python3萌新入门笔记是一系列真实的自学笔记. 当然,它也是比较全面的入门教程,共包括54篇笔记. 从第一篇笔记开始,大半年的时间我都是在自学和组织教程内容. 我觉得有必要,把我自己的学习过程和大 ...

  6. 按键控制c51单片机驱动unl2003控制步进电机正反转停止及程序调速-萌新入门

    ** 按键控制c51单片机驱动unl2003控制步进电机正反转停止及程序调速 ** 分享一个萌新入门小工程 一.原件连接: 第一种直接用51开发板 第二种用最小单元加unl2003驱动 二.开发板电路 ...

  7. 我的世界java萌新须知_我的世界新手常见问题盘点 萌新入门必读

    今天为大家带来我的世界新手常见问题盘点,萌新入门必读.希望对诸位玩家有所帮助. Q.开开始游戏,不知道怎么开始 A.你可以点击创造一个新世界然后就能开始你的游戏啦 Q.可以移动视角,但是怎么行动,↑↓ ...

  8. Java萌新入门的第一篇文章

    这篇文章是为了刚入门或者打算入门的萌新们写的,希望看完后能对Java有个初步认识.以后会不定时更新有关Java的干货,就这些要说的,以上. 先介绍下相关背景,不要觉得枯燥,了解一下很有必要. a.计算 ...

  9. ctfshow 萌新入门1

    萌新_密码1 题目: 密文: 53316C6B5A6A42684D3256695A44566A4E47526A4D5459774C5556375A6D49324D32566C4D4449354F474 ...

最新文章

  1. 如何优雅的处理 Java 异常,可以参考这些建议
  2. python实现shell_基于 Python 的简易 Shell 实现
  3. [教程] [承風雅傳HSU]用ES4封裝Win7---ES4 Win7封裝教程(未完待續)
  4. 【LeetCode】LC1408:一维数组的动态和
  5. 2.3.6 操作系统之进程同步与互斥经典问题(生产者-消费者问题、多生产者-多消费者问题、吸烟者问题、读者-写者问题、哲学家进餐问题)
  6. Snapchat, 给年轻人要的安全感
  7. java rmi 多ip_在rmi连接中客户端指定一个ip地址,但程序执行中却转换成另一个地址...
  8. 疫情下的十大堵城:复工后整体拥堵下降37.3%
  9. Python使用UDP协议实现局域网内屏幕广播
  10. Vue之ElementUI导航菜单
  11. codesys中打开linux端的串口_机械臂和移动机器人,CoDeSys介绍
  12. 从设计模式到恋爱宝典,程序员们的福利来了
  13. Linux基础(day74)
  14. Linux关闭密码登录
  15. 九度OJ题目1000: A + B(数学)
  16. 国税报表html,国税纳税申报表在哪里打印
  17. 自主导航:赋予移动机器人智能感知与运动的能力
  18. android 动画卡顿分析工具
  19. CSS外边距合并和CSS清除浮动
  20. c语言编译器前端实现,一个编译器(前端)的实现

热门文章

  1. C#-Stmp发邮件
  2. 【错误记录】Ubuntu 修改 hosts 文件 ( 使用 gedit /etc/hosts 命令打开并修改 hosts 文件 )
  3. 【Android 内存优化】Android 原生 API 图片压缩原理 ( 图片质量压缩方法 | 查找 Java 源码中的 native 方法对应的 C++ 源码 )
  4. 【数据挖掘】贝叶斯信念网络 ( 马尔科夫假设 | 结构 | 有向无环图 | 参数 | 条件概率表 | 案例分析 )
  5. 你见过的最全面的python重点
  6. 基于IPV6的数据包分析
  7. 让tableView的高度等于contentSize的高度、动态调整tableView的高度、tableView的高度自适应布局...
  8. 提升vector性能的几个技巧
  9. hdu 4614 线段树
  10. 模拟/usaco 1.1.4 Broken Necklace