Unity Navigation寻路系统并画出指引线

本文介绍了在Unity中实现导航寻路系统的过程,包括场景的静态物体设置、角色组件配置,以及如何使用Line Renderer组件画出导航路径。详细讲述了烘焙导航、角色组件参数调整、Line Renderer的使用,以及通过脚本整合两个组件以实现路径指示。
摘要由CSDN通过智能技术生成

前言

寻路系统是游戏中很常用的一个功能,角色要达到某一点,需要系统给出一个路径,这样可以帮助玩家规划出路径,提示玩家到达,这种功能在各种类型的游戏中都有大量的应用

本案例通过Navigation实现寻路系统的同时使用Line Renderer组件标识出指示线,最终完成效果图为:

在这里插入图片描述

实现过程

1,利用Navigation烘培场景

为了实现自动寻路的功能,首先需要对场景进行基本的设置,以便让系统识别哪些判断哪些是可运动区域,而哪些又是不可运动区域,Navigation导航系统的判断条件是基于静态物体进行的,如果想对于动态物体进行判断,则需要添加响应的组件。

要将物体设为静态,首先在场景中选中静止地面和障碍物,在Unity编辑器Inspector面板的左上角选择Static选项的倒三角并将Navigation Static勾选上:
在这里插入图片描述
接下来进入Navigation面板,进行场景的烘培,从上到下依次点击两个Bake即可,图中的蓝色区域即为角色可移动区域,而非蓝色区域则是不可跨越区域,就是相关的障碍物:

而关于烘培的具体细节可以查看之间的文章:

在这里插入图片描述

2,为角色添加响应组件

为了保证角色可以实现寻路和指示线功能,需要添加Nav Mesh AgentLine Renderer两个组件:

首先对于Nav Mesh Agent的参数调整,要实现可角色的路径设置,本案例而对于该组件的参数调整主要是两方面,第一是其速度Speed,设置数值大小可以改变移动速度的大小,另一点则是加速度,在目标发生改变时,速度改变的大小

对于第二个组件Line Renderer是本案例的重点,其主要功能就是用来在三维场景中画出线条,通过使用这一特性,可以描绘出角色将要移动的路径,这样就可以实现物体的导航功能

关于LIne Randerer

  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
### 回答1: Unity NavigationUnity引擎中的一个功能模块,用于实现游戏中的动态。它可以让游戏角色在复杂的地形中自动找最短径,并避免障碍物。Unity Navigation使用了A*算法和导航网格来实现功能。开发者可以通过设置导航网格的大小和分辨率来控制的精度和性能。同时,Unity Navigation还提供了一些API和事件,方便开发者对过程进行控制和处理。 ### 回答2: Unity Navigation 动态是一种用于游戏开发的算法,主要用于让游戏中的角色进行自动的和移动。 在使用 Unity Navigation 动态的时候,通常需要为游戏中的场景和角色建立一个导航图。导航图是一种用于描述场景的二维网格,其中包含了场景中的所有可行走区域和障碍物。导航图的建立通常需要依赖于场景建模软件和 Unity Navigation 工具。 一旦导航图建立完成,就可以通过 Unity Navigation 工具为游戏中的角色生成一个自动的 AI。这个 AI 可以根据场景中的导航图来自动找到达目标的最短径,并移动到目标位置。 在使用 Unity Navigation 动态的过程中,还可以对的参数进行调整,如搜索速度、起始点、目标等。这可以帮助优化游戏中的自动效果,使得角色能够更加高效地移动和执行任务。 总的来说,Unity Navigation 动态是一种实用的算法,在游戏开发中得到了广泛的应用。它可以使得游戏中的角色表现更加自然和逼真,提升游戏的体验和玩家的参与度。 ### 回答3: Unity Navigation是一个可以用于游戏中角色的系统Unity Navigation的动态是指在游戏运行时,根据角色的移动和场景的变化,动态生成角色的径。 在使用Unity Navigation动态时,需要先将场景中的导航网格生成器进行设置和布置。导航网格是指游戏场景中被划分成多个网格的区域,通过导航网格生成器对这些网格进行划分和连通,构建可供角色行走的径。设置完成后,可以通过代码对生成的导航网格进行修改,包括增加、删除、移动网格等。 当场景中的物体发生移动和场景发生变化时,导航网格需要进行重新计算,重新生成新的径。此时,可以通过使用Unity Navigation的NavMeshLink组件,将已有径和新生成的径连接起来。NavMeshLink组件可以自动将两个不同网格之间的径连接起来,避免角色现异常的跳跃行为。 在角色进行时,需要使用Unity Navigation中的NavMeshAgent组件。NavMeshAgent组件是一个负责控制角色行走和跟踪径的组件,可以通过代码设置角色的移动速度、加速度等属性。同时,NavMeshAgent组件还支持对角色进行避障和避免碰撞等特殊处理,确保角色在行走过程中不会现卡住等异常情况。 总的来说,Unity Navigation动态是一种可以让角色在游戏中自动径的技术,可以让游戏更加流畅和自然,提高游戏的可玩性和趣味性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心之凌儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值