Unity3D游戏开发之基于ITween实现寻路功能.docx
上传人:qw****27 上传时间:2024-09-11 格式:DOCX 页数:4 大小:240KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Unity3D游戏开发之基于ITween实现寻路功能.docx

Unity3D游戏开发之基于ITween实现寻路功能.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Unity3D游戏开发之基于ITween实现寻路功能今天研究了下Unity3D的寻路功能,忽然发现Unity3D自带的寻路功能只支持付费版,内心不禁感到一阵失落。后来在宣雨松的博客上看到一篇关于ITween的文章,我发现这简直就是我等使用Unity免费版的福音啊,因为这个插件可以解决我们今天的寻路问题。压抑不住内心的激动,博主到ITween官网下载了这个插件,结合官方的例子,产生了ITween实现寻路功能的想法。文章出处:HYPERLINK"http://unity.gopedu.com/"狗刨学习网。具体说来,寻路功能就是为玩家或者游戏中的角色添加的一种AI,目的是在给定起点和终点后,程序可以帮助玩家或者游戏角色快速地找到最优的一条线路,复杂点的寻路系统可能还要考虑如何避开障碍物,那么好,现在我们开始一起走进寻路之旅!首先创建如图所示的游戏场景,在这里我们创建8个Cube来表示地面上的8个节点,我们按照一定的顺序排列这些节点,就能得到一条路线。这条路线就是我们为游戏体设计的路线。接下来,我们再创建一个Cube,赋予其黑色的材质,以示区别。接下来我们导入ITween资源包文件,导入完成后,创建下面的脚本文件:usingUnityEngine;usingSystem.Collections;publicclassScriptControl:MonoBehaviour{//节点数组publicTransform[]paths;voidStart(){Hashtableargs=newHashtable();//设置路径的点args.Add("path",paths);//设置类型为线性,线性效果会好一些。args.Add("easeType",iTween.EaseType.linear);//设置寻路的速度args.Add("speed",8f);//移动的整体时间。如果与speed共存那么优先speedargs.Add("time",5f);//是否先从原始位置走到路径中第一个点的位置args.Add("movetopath",true);//延迟执行时间args.Add("delay",0.1f);//移动的过程中面朝一个点args.Add("looktarget",Vector3.zero);//三个循环类型nonelooppingPong(一般循环来回)args.Add("loopType","loop");//是否让模型始终面朝当面目标的方向//如果你发现你的模型在寻路的时候时钟都是一个方向那么一定要打开这个args.Add("orienttopath",true);//让模型开始寻路iTween.MoveTo(gameObject,args);}voidOnDrawGizmos(){//在scene视图中绘制出路径与线iTween.DrawLine(paths,Color.yellow);iTween.DrawPath(paths,Color.red);}voidUpdate(){}}我们将该脚本绑定到我们的游戏体——黑色的Cube上,打开属性面板,编辑Paths属性,这时我们按照事先设计的路径节点顺序,将各节点拖放到下面的属性框中,这样就完成了对于路径节点的添加。这时我们运行游戏,将看到黑色的Cube沿着我们预先设计的路线进行运动:同时,我们能够注意到在游戏场景视图中,游戏体运动的路径被两种颜色的线标示了出来,这就是今天的内容啦,谢谢大家!