Unity寻路插件(A* Pathfinding)入门教程十二:使用修饰符
本系列的教程文章基于 A*Pathfinding Project 4.2.8的官网教程翻译,每一章节的原文地址都会在教程最下方给出。修饰符(Modifiers)的定义为:一些比较轻量的脚本,勾住Seeker脚本之后,在寻路结果返回给调用者之前对路径进行预先或者延后处理。
修饰符只需要简单的和Seeker组件绑定在同一个GameObject上即可。
所以它能干什么呢?举个例子:如果是一个Reycast类型的修饰符,它会帮你移除一些不需要的节点,来简化结果,但是又能保证它能正常工作。或者一个Smooth类型的修饰符,可以帮你细分路径,让他从视觉上看起来更加平滑和顺畅,符合正常人类的审美原则。
下面展示不同的修饰符对于同一个栅格(grid)类型的graph结果的影响。
扩展阅读:
SimpleSmoothModifier
RaycastModifier
FunnelModifier
RadiusModifier
StartEndModifier
AlternativePath
ModifiersAIPath 和 AILerp常常会和各种修饰符一起配用,但是RichAI大部分时候会忽略它们(原因前几节有提到)。取而代之的是他自己内部实现的专有的funnel类型修饰符。你仍然可以在RichAI运行时绑定其他类型的修饰符,但大多时候没什么太大作用。
Simple Smooth Modifier
顾名思义,它主要用来平滑路径。它不仅可以细分路径,并且将他们尽量靠近在一起,还可以使用贝塞尔曲线去平滑路径。下面两张图展示了平滑修饰符开关情况下的路径表现,可以看到平滑修饰符在转弯的时候让路径变的更加圆润,但是它同样也带来另外一个问题,因为是后处理,并且只针对节点,所以并不会考虑场景的实际物理碰撞,即:可能会带来“穿墙”的视觉BUG。
要查看变量定义,可以查看到这里:
Funnel Modifier
漏斗形的修饰符,主要是在navmeshs或者grid 类型的graph上进行快速并且紧贴的优化,它会将路径尽量紧贴障碍物来返回最短路径。
Raycast Modifier
raycast类型修饰符,主要会做一系列的直线检测。主要在栅格类型上使用,当然根据你游戏的类型,你也可以使用在路点上。
自定义修饰符
你也可以自己定义一个修饰符(进阶教程会讲):
原文地址:
页:
[1]