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

Unity寻路插件(A* Pathfinding)入门教程八:移动脚本

[复制链接]
发表于 2020-11-25 08:55 | 显示全部楼层 |阅读模式
本系列的教程文章基于 A*Pathfinding Project 4.2.8的官网教程翻译,每一章节的原文地址都会在教程最下方给出。
简单介绍一下插件里内置的几个移动脚本。
插件本身提供了几个移动脚本(Movement Scripts),用来驱动一个物体沿着寻路路径移动,包括寻找路径和跟随移动2个部分。
插件里提供的几个内置移动脚本都是完全可选的,你可以根据你的游戏需求选择其中的一个或者自己扩展,但是不管怎么说它都给你提供了一个基本的寻路保障,当然你也可以选在在游戏后期用更好更完善的自定义脚本替换它们。
内置的脚本主要有 AIPath、RichAI、AILerp三种类型,前面的教程也都有过介绍。其实从现在看来,如果对这些命名其实可以写的更加具象化一些才好,但是现在不准备去修改这个了,因为大量的资料和论坛都提到了这些名字。
下面就来看看几个移动脚本之间的区别:
AIPath
    适配所有的 graph类型。遵循物理,寻路平滑。适用于局部回避(local avoidance)3D和2D的游戏都能支持。
RichAI
    专门给namesh/recast graphs设计的,不能在其他类型上使用。navmesh类型的路径跟随比AIPath上表现更好,它能更好的处理路径的Push问题,以及更平稳的跟随路径。对非网格(off-mesh)的支持程度比AIPath好。局部回避(local avoidance)支持度也挺好。支持在3D游戏(XZ平面移动),不支持2D。
AILerp
    使用线性插值的方式跟随路径。(这就是为什么Lerp在名字中的原因,要线性插值),不会使用物理相关。完全沿着路径走 不会有任何偏差。基于上述两点,它完全没必要使用局部回避,所以理所当然的不支持它。三个里面性能最好的,因为它足够的简单。但是要记住,如果你要支持物理相关的特性,就需要选择其他2个中的一个。支持2D和3D游戏。
简而言之,如果你要使用基于导航网格的寻路,就要使用RichAI,不然就根据你的游戏是否要使用物理和局部回避等功能来选择使用AIPath或者是AILerp。可以从插件提供的示例里查看他们运动表现之间的区别。
所有的寻路都是从Pathfinding.IAstarAI接口继承,如果你要做一些其他的事情,就从这里接口继承来写就好。
比如,你可能会用到一下功能:
    目标点:AI要去的某一个点。是否到达目标点:如果到达了目标点,参数为true实际速度:实际的向量速度。渴望速度:想要达到的向量速度。
如果你想要你的角色跟随某个目标单移动,你可以使用 AIDestinationSetter。它会在后台简单的将目标属性每帧设置到目标位置。
原文链接:
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-5 09:54 , Processed in 0.119255 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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