400-650-7353

精品课程

您所在的位置:首页 > IT干货资料 > unity > 【Unity基础知识】Unity开发之导航

【Unity基础知识】Unity开发之导航

  • 来源:Unity干货资料
  • 2020-08-12 11:24:05
  • 阅读()
  • 分享
  • 手机端入口

大家好,我是优就业的小优,又和大家见面了。

今天我们一起来学习Unity中的导航网格代理组件,这个组件的作用就和它的名字一样是用来进行自动寻路。它会帮我们在游戏场景中生成一块区域,哪里可以通行,哪里无法通行,便于游戏角色在场景中自动寻路,完成场景漫游。在游戏中,经常会有这样的场景,玩家进入副本时,怪物会自行规划最优路径,避开障碍物,找到玩家位置,进行攻击。角色在做任务时,玩家只需要点击任务,角色就会自动寻路过去。

需要注意的是,它只对3D环境有效,所以我们首先搭建需要使用的场景,下图中创建的Plane就是我所使用的场景。

现在来看看如何使用导航也就是NavMesh,在完成场景搭建后,从窗口菜单选择Navigation,会弹出一个如下图所示的面板,它就是我们的NavMesh导航网格。

Agent Radius:定义网格和地形边缘的距离

Agent Height:定义可以通行的最高度

Max Slope:定义可以爬上楼梯的最大坡度

Step Height:定义可以登上台阶的最大高度

Drop Height:允许最大下落距离

Jump Distance:允许最大的跳跃距离

在Bake(烘焙场景)之前一定要确定勾选Static

其实就是确保Static下勾选了Navigation Static,这里的Navigation Static意味着在游戏运行期间,这个游戏对象不能移动。

可以根据自行的需要去设置参数,设置好参数之后点击Bake(烘焙场景),等到烘焙完毕会看到场景中覆盖一层蓝色的表面,蓝色的一层叫做可行走区域,也就是让玩家和敌人能够运动的区域。

此时,游戏当中已经有了NavMesh了,接下来去实现让玩家运动的功能,要想让玩家运动,我们可以通过一个组件叫NavMeshAgent组件,它是用来控制物体在NavMesh上移动,创建一个Cube作为玩家,为其添加NavMeshAgent组件。

Speed:最大移动速度

Angular Speed: 运动时的最大角速度

Acceleration:最大加速度,控制速度的快慢变化

Stopping Distance:制动距离,到达目标点的距离小于这个值

Auto Braking:勾选,到达目标点后停止运动,没有缓冲运动

要想让物体移动,需要给物体一个移动目标点,所以在场景中创建一个Point,作为目标点。

准备工作已经完毕,给Cube添加脚本CubeMove,编写让其移动的代码。


只需要简单的六行代码就可以实现自动寻路功能,是不是很简单啊。

课程好礼申请领取
您的姓名
您的电话
意向课程
 

中公优就业

官方QQ

扫描上方二维码或点击一键加群,免费领取价值599元网课,加群暗号:599。 一键加群

>>本文地址:
注:本站稿件未经许可不得转载,转载请保留出处及源文件地址。

推荐阅读

优就业:ujiuye

关注中公优就业官方微信

  • 关注微信回复关键词“大礼包”,领80G学习资料
QQ交流群
领取免费网课
(加群备注“网站”)
IT培训交流群 加入群聊 +
软件测试 加入群聊 +
全链路UI/UE设计 加入群聊 +
Python+人工智能 加入群聊 +
互联网营销 加入群聊 +
Java开发 加入群聊 +
PHP开发 加入群聊 +
VR/AR游戏开发 加入群聊 +
大前端 加入群聊 +
大数据 加入群聊 +
Linux云计算 加入群聊 +
优就业官方微信
扫码回复关键词“大礼包”
领取80G学习资料

淘宝商家短视频
预约试听
2020OAO训练营
免费试听
课程资料、活动优惠 领取通道