欢迎来到天天文库
浏览记录
ID:39891088
大小:240.85 KB
页数:4页
时间:2019-07-14
《Unity3D游戏开发之基于ITween实现寻路功能》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Unity3D游戏开发之基于ITween实现寻路功能今天研究了下Unity3D的寻路功能,忽然发现Unity3D自带的寻路功能只支持付费版,内心不禁感到一阵失落。后来在宣雨松的博客上看到一篇关于ITween的文章,我发现这简直就是我等使用Unity免费版的福音啊,因为这个插件可以解决我们今天的寻路问题。压抑不住内心的激动,博主到ITween官网下载了这个插件,结合官方的例子,产生了ITween实现寻路功能的想法。文章出处:狗刨学习网。具体说来,寻路功能就是为玩家或者游戏中的角色添加的一种AI,目的是在给定起点和终点后,程序可以帮助玩家或者游戏角色快速地找
2、到最优的一条线路,复杂点的寻路系统可能还要考虑如何避开障碍物,那么好,现在我们开始一起走进寻路之旅! 首先创建如图所示的游戏场景,在这里我们创建8个Cube来表示地面上的8个节点,我们按照一定的顺序排列这些节点,就能得到一条路线。这条路线就是我们为游戏体设计的路线。接下来,我们再创建一个Cube,赋予其黑色的材质,以示区别。 接下来我们导入ITween资源包文件,导入完成后,创建下面的脚本文件:1.usingUnityEngine;1.usingSystem.Collections;2.3.publicclassScriptContro
3、l:MonoBehaviour{4.5. //节点数组6. publicTransform[]paths;7.8. voidStart()9. {10. Hashtableargs=newHashtable();11. //设置路径的点12. args.Add("path",paths);13. //设置类型为线性,线性效果会好一些。14. args.Add("easeType",iTween.EaseType.linear);15. //设置寻路的速度16. args.Add
4、("speed",8f);17. //移动的整体时间。如果与speed共存那么优先speed18. args.Add("time",5f);19. //是否先从原始位置走到路径中第一个点的位置20. args.Add("movetopath",true);21. //延迟执行时间22. args.Add("delay",0.1f);23. //移动的过程中面朝一个点24. args.Add("looktarget",Vector3.zero);25. //三个循环类
5、型nonelooppingPong(一般循环来回)26. args.Add("loopType","loop");27. //是否让模型始终面朝当面目标的方向28. //如果你发现你的模型在寻路的时候时钟都是一个方向那么一定要打开这个29. args.Add("orienttopath",true);30.31. //让模型开始寻路32. iTween.MoveTo(gameObject,args);33. }34.35.36. voidOnDrawGizmos()37. {38.
6、 //在scene视图中绘制出路径与线39. iTween.DrawLine(paths,Color.yellow);40. iTween.DrawPath(paths,Color.red);41. }42.43. voidUpdate()1. {2.3. }4.} 我们将该脚本绑定到我们的游戏体——黑色的Cube上,打开属性面板,编辑Paths属性,这时我们按照事先设计的路径节点顺序,将各节点拖放到下面的属性框中,这样就完成了对于路径节点的添加。这时我们运行游戏,将看到黑色的Cube沿着我们预先设计的路线进行运动:
7、 同时,我们能够注意到在游戏场景视图中,游戏体运动的路径被两种颜色的线标示了出来,这就是今天的内容啦,谢谢大家!
此文档下载收益归作者所有