文章目录
- 一、关于PopulationSystemPRO插件导出后人物动画“失效”问题
- 二、无代码使用自定义路径寻路的三种方法
- 1、iTween插件无代码实现自定义路径寻路
- 2、DOTweenPro插件无代码实现自定义路径寻路
- 3、SimpleWayPointSystem(SWS)插件无代码实现自定义路径寻路
- 三、demo附带插件下载地址
- 四、三款插件寻路效果总结
一、关于PopulationSystemPRO插件导出后人物动画“失效”问题
去年做毕设的时候用到的一个插件PopulationSystemPRO,因为导出时报错,而将Population.dll文件移动到Editor文件下,可以成功打包。于是我写了一篇博客记录了这个错误。但是我发现很多朋友给我留言说按照这样的方法导出后人物动画出现问题了:
于是我又把我去年毕设的exe文件打开运行了一下,没发现有这个问题,前段时间有个粉丝朋友加我好友说也出现这个问题,想让我看一下怎么解决,一问才知道他是使用了这个插件自带的寻路脚本在编辑器里实现寻路效果的。我起初也以为是动画的问题,但我发现移动Population.dll文件导致使用插件的脚本失去关联,从而导致打包后使用这个插件自带的寻路脚本失效。我想应该是插件的问题,当我打开了插件的寻路脚本MovePath才发现,原来这个脚本的基类是继承的UnityEdiotr类的,那也就是说只能在编辑器环境下可以使用,打包后是无法使用的。
下面我就给大家推荐三种用插件无代码就可以实现自定义路径寻路的方法。
二、无代码使用自定义路径寻路的三种方法
下面将搭建简单demo场景演示如何使用三个插件实现无代码自定义路径寻路。
用了这下面三款插件实现寻路功能,打包后也能寻路。
1、iTween插件无代码实现自定义路径寻路
这个插件在unity商店里是免费的。
- 新建一个Plane,放置一个带走路动画的人物npc。
- 新建空物体命名为wayPoint,添加组件【iTweenPath】,并在你的scene视图里用鼠标拖拽路径点自定义为你想要的路线。
- 在你的寻路的人物身上添加组件【iTweenEvent】,并设置相关属性:
(1)勾选path,选择Path,选择你定义的路径名字,如果只有一条,会默认选择。
(2)勾选movetopath,设置为true,人物会从她的位置走到路径第一个点开始寻路。
(3)勾选orienttopath,设置为true,人物寻路时朝向下一个寻路点。
(4)勾选time,设置寻路时间。
(5)勾线easetype。设置为Linear,路线为线性的。
(6)勾选looptype。设置为loop,寻路到终点后再从起点开始,不断循环。 - 运行查看寻路效果
2、DOTweenPro插件无代码实现自定义路径寻路
- 只需要在寻路的人物身上添加组件【DOTweenPath】,并设置相关参数和编辑路径即可实现寻路。
(1)按住Shift+ctrl,并用鼠标任意点击scene视图即可添加一个路径点(按住shift+alt并点选可删除)。
(2)设置Duration为任意数值,表示寻路的时间;设置ease为linear,表示线性;设置loops为-1,looptype为restart,表示寻路结束后从起点开始不断循环。
(3)设置pathtype为linear线性的,勾选ClosePath,使起点和终点连接。
(4)设置Orientation为toPath,表示人物寻路时朝向下一个路径点。
(5)设置scene视图里路径的颜色,也可以设置显示路径点坐标轴。
(6)可手动设置路径点坐标。 - 运行查看寻路效果
3、SimpleWayPointSystem(SWS)插件无代码实现自定义路径寻路
其实这个插件也是基于DOTween实现的路径寻路效果。
- 依次点击菜单栏Windows/SimpleWaypointSystem/WaypointManager,如下图【1】所示,并在【2】enter path name,输入你路径的名字,点击【3】处start path。
- 最关键的点:在点击start path后不要用鼠标点击任何东西!不要用鼠标点击任何东西!不要用鼠标点击任何东西!否则无法添加路径点!你只需要将鼠标移动至scene视图里让鼠标光标悬浮在有碰撞器的物体上(我的场景中Plane添加了Mesh Collider),并按下键盘上的【P】键即可添加路径点。 添加完成路径点之后点击下图【2】处FinishEditing完成编辑,在【1】处移动你的路径点,自定义你想要的寻路路线。
- 在人物npc身上添加组件【SplineMove】
(1)将【1】处路径管理器path Manager拖拽到组件属性path container处,并设置【2】其它属性:勾选on start 和move to path,默认速度speed为1,easetype为linear线性的,设置looptype为PingPong,表示从起点寻路到终点后,再从终点寻路回到起点,不断循环。
- 运行查看寻路效果
三、demo附带插件下载地址
1.itween插件寻路demo 2.dotweenPro插件寻路demo 3.SWS插件寻路demo
四、三款插件寻路效果总结
1.使用itween寻路,适用于平面、路径比较单一、路径点比较少的寻路,且插件包体较小轻便,不适于复杂路线寻路。
2.使用dotweenpro寻路,适用于复杂路线寻路,做平面寻路时可能比较繁琐一点,因为添加路径点时不在同一平面内,得手动去设置路径点的坐标。
3.使用sws寻路,简单复杂路线均适合,特别是从终点寻路回起点时,人物还会“调头”,这是另外两个插件没有的,当然使用另外两个时可以写代码判断让人物调头,如果是无代码的话,我比较推荐使用sws插件寻路。
4.以上仅是对使用这三款插件实现的无代码自定义路径寻路的方法的一个总结,他们不仅仅只是能用实现寻路效果,还有更多其他功能。这三款插件功能还是很强大的,还可以配合使用,这就要好好去学习插件的其他用法和深入研究其他功能了。