找回密码
 立即注册
查看: 805|回复: 0

Unity寻路插件(A* Pathfinding)入门教程十二:使用修饰符

[复制链接]
发表于 2020-11-25 09:04 | 显示全部楼层 |阅读模式
本系列的教程文章基于 A*Pathfinding Project 4.2.8的官网教程翻译,每一章节的原文地址都会在教程最下方给出。
修饰符(Modifiers)的定义为:一些比较轻量的脚本,勾住Seeker脚本之后,在寻路结果返回给调用者之前对路径进行预先或者延后处理。
修饰符只需要简单的和Seeker组件绑定在同一个GameObject上即可。
所以它能干什么呢?举个例子:如果是一个Reycast类型的修饰符,它会帮你移除一些不需要的节点,来简化结果,但是又能保证它能正常工作。或者一个Smooth类型的修饰符,可以帮你细分路径,让他从视觉上看起来更加平滑和顺畅,符合正常人类的审美原则。
下面展示不同的修饰符对于同一个栅格(grid)类型的graph结果的影响。
扩展阅读:
SimpleSmoothModifier
RaycastModifier
FunnelModifier
RadiusModifier
StartEndModifier
AlternativePath
Modifiers
AIPath 和 AILerp常常会和各种修饰符一起配用,但是RichAI大部分时候会忽略它们(原因前几节有提到)。取而代之的是他自己内部实现的专有的funnel类型修饰符。你仍然可以在RichAI运行时绑定其他类型的修饰符,但大多时候没什么太大作用。
Simple Smooth Modifier

顾名思义,它主要用来平滑路径。它不仅可以细分路径,并且将他们尽量靠近在一起,还可以使用贝塞尔曲线去平滑路径。下面两张图展示了平滑修饰符开关情况下的路径表现,可以看到平滑修饰符在转弯的时候让路径变的更加圆润,但是它同样也带来另外一个问题,因为是后处理,并且只针对节点,所以并不会考虑场景的实际物理碰撞,即:可能会带来“穿墙”的视觉BUG。
要查看变量定义,可以查看到这里:
Funnel Modifier

漏斗形的修饰符,主要是在navmeshs或者grid 类型的graph上进行快速并且紧贴的优化,它会将路径尽量紧贴障碍物来返回最短路径。
Raycast Modifier

raycast类型修饰符,主要会做一系列的直线检测。主要在栅格类型上使用,当然根据你游戏的类型,你也可以使用在路点上。


自定义修饰符

你也可以自己定义一个修饰符(进阶教程会讲):




原文地址:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-12-25 15:37 , Processed in 0.137457 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表