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,编写让其移动的代码。


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

文章“【Unity基础知识】Unity开发之导航”已帮助

>>本文地址:https://www.ujiuye.com/zhuanye/2020/51799.html

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

1 您的年龄

2 您的学历

3 您更想做哪个方向的工作?

获取测试结果
  • 大前端大前端
  • 大数据大数据
  • 互联网营销互联网营销
  • JavaJava
  • Linux云计算Linux
  • Python+人工智能Python
  • 嵌入式物联网嵌入式
  • 全域电商运营全域电商运营
  • 软件测试软件测试
  • 室内设计室内设计
  • 平面设计平面设计
  • 电商设计电商设计
  • 网页设计网页设计
  • 全链路UI/UE设计UI设计
  • VR/AR游戏开发VR/AR
  • 网络安全网络安全
  • 新媒体与短视频运营新媒体
  • 直播带货直播带货
  • 智能机器人软件开发智能机器人
 

快速通道fast track

近期开班时间TIME