前面以及讲过A星寻路的大体实现方法,除了A星寻路之外,还有很多类似的寻路方案,itween插件就可以实现简单的寻路方案,下面就一个小案例来简要得讲解一下itween是如何实现寻路的。
如下图所示:
其中,绿色的为摄像机的路径,红色为汽车的行车路径。程序运行之后,摄像机和汽车都会沿着这些线路运动,下面是实现的主要方法:
public Transform[] paths; public GameObject jingbo; private float backtime; public Transform[] paths2; public AudioSource audio; // Use this for initialization void Start() { audio.Play(); Hashtable args = new Hashtable(); //设置路径上的所有点 args.Add("path", paths); //设置行走类型,线性 args.Add("easeType", iTween.EaseType.linear); // args.Add("looktarget", ); args.Add("delay",4f); //设置寻路的速度 args.Add("time",7); //延迟执行时间 //args.Add("delay", 1f); args.Add("onstart","Begin"); //每帧调用 args.Add("onupdate", "showpian"); args.Add("onupdatetarget", gameObject); args.Add("onupdateparams", Time.time); //是否先从初始位置走到路径中的第一个点的位置 args.Add("movetopath", true); //完成路劲后执行的方法 args.Add("oncomplete", "follow"); //是否让模型始终面朝当面目标的方向,拐弯的地方会自动旋转模型 //如果你发现你的模型在寻路的时候始终都是一个方向那么一定要打开这个 //args.Add("orienttopath", true); //寻路 iTween.MoveTo(gameObject, args); iTween.RotateTo(gameObject, iTween.Hash("rotation", new Vector3(22.59426f, 358.2477f, 358.2477f), "time", 7,"delay",4f)); }
大体执行流程就是这样的,有什么错误或者建议的地方,欢迎大家指正,谢谢!!!