[Unity3D]Unity3D游戏开发之基于ITween实现寻路功能
来源:互联网 发布:索尼电视软件商店 编辑:程序博客网 时间:2024/05/21 17:40
大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei。
今天研究了下Unity3D的寻路功能,忽然发现Unity3D自带的寻路功能只支持付费版,内心不禁感到一阵失落。后来在宣雨松的博客上看到一篇关于ITween的文章,我发现这简直就是我等使用Unity免费版的福音啊,因为这个插件可以解决我们今天的寻路问题。压抑不住内心的激动,博主到ITween官网下载了这个插件,结合官方的例子,产生了ITween实现寻路功能的想法。具体说来,寻路功能就是为玩家或者游戏中的角色添加的一种AI,目的是在给定起点和终点后,程序可以帮助玩家或者游戏角色快速地找到最优的一条线路,复杂点的寻路系统可能还要考虑如何避开障碍物,那么好,现在我们开始一起走进寻路之旅!
首先创建如图所示的游戏场景,在这里我们创建8个Cube来表示地面上的8个节点,我们按照一定的顺序排列这些节点,就能得到一条路线。这条路线就是我们为游戏体设计的路线。接下来,我们再创建一个Cube,赋予其黑色的材质,以示区别。
接下来我们导入ITween 资源包文件,导入完成后,创建下面的脚本文件:
using UnityEngine;using System.Collections;public class ScriptControl : MonoBehaviour {//节点数组public Transform[] paths;void Start () { Hashtable args = new Hashtable(); //设置路径的点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);//三个循环类型 none loop pingPong (一般 循环 来回)args.Add("loopType", "loop");//是否让模型始终面朝当面目标的方向//如果你发现你的模型在寻路的时候时钟都是一个方向那么一定要打开这个args.Add("orienttopath",true); //让模型开始寻路iTween.MoveTo(gameObject,args);}void OnDrawGizmos(){//在scene视图中绘制出路径与线iTween.DrawLine(paths,Color.yellow);iTween.DrawPath(paths,Color.red);}void Update () { }}我们将该脚本绑定到我们的游戏体——黑色的Cube上,打开属性面板,编辑Paths属性,这时我们按照事先设计的路径节点顺序,将各节点拖放到下面的属性框中,这样就完成了对于路径节点的添加。
这时我们运行游戏,将看到黑色的Cube沿着我们预先设计的路线进行运动:
同时,我们能够注意到在游戏场景视图中,游戏体运动的路径被两种颜色的线标示了出来,这就是今天的内容啦,谢谢大家!
喜欢我请记住我的名字:秦元培,我的博客地址是:blog.csdn.net/qinyuanpei!
转载请注明出处,本文作者:秦元培,本文出处:http://blog.csdn.net/qinyuanpei/article/details/23472781
- [Unity3D]Unity3D游戏开发之基于ITween实现寻路功能
- unity3D游戏开发之iTween介绍和用法
- Unity3D游戏开发之游戏读/存档功能在Unity3D中的实现
- Unity3D游戏开发之游戏读/存档功能在Unity3D中的实现
- Unity3D游戏开发之游戏读/存档功能在Unity3D中的实现
- Unity3D之iTween
- Unity3D游戏开发之在Unity3D中视频播放功能的实现
- [Unity3D]Unity3D游戏开发之基于Terrain Toolkit实现地形的制作
- [Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小
- [Unity3D]Unity3D游戏开发之再话小地图的实现
- [Unity3D]Unity3D游戏开发之刀光剑影特效的实现
- [Unity3D]Unity3D游戏开发之换装系统的实现
- [Unity3D]Unity3D游戏开发之《愤怒的小鸟》弹弓实现
- [Unity3D]Unity3D游戏开发之《愤怒的小鸟》弹弓实现
- [Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小
- [Unity3D]Unity3D游戏开发之MatchTarget实现角色攀爬效果
- [Unity3D]Unity3D游戏开发之Logo渐入渐出效果的实现
- Unity3D游戏开发之在Unity3D中实现视频播放
- 怎么共享WIFI
- 基于PCA和SVM的人脸识别系统
- java实现简繁字体转换
- C# Win32API 模拟鼠标移动及点击事件
- FILTER 执行次数
- [Unity3D]Unity3D游戏开发之基于ITween实现寻路功能
- 关于APUE里面TELL_WAIT()之类函数的两种实现方式
- Java HTML 转 PDF
- 吾身听物化,化及事则休
- 坚持还是放弃?
- AsyncTask和Handler对比
- zend framework ini配置文件大致读取过程 以及处理函数
- java垃圾处理机制(二)
- TCP UDP 总结