unity开源移动库iTween使用完整Demo
1 public Vector3[] paths; 2 // Use this for initialization 3 void Start () { 4 paths = new Vector3[2] { new Vector3(1, 0, 1), new Vector3(-1, 0, -1) }; 5 Hashtable args = new Hashtable(); 6 //设置路径的点 7 args.Add("path", paths); 8 //设置类型为线性,线性效果会好一些。 9 args.Add("easeType", iTween.EaseType.linear); 10 //设置寻路的速度 11 args.Add("speed", 1f); 12 //是否先从原始位置走到路径中第一个点的位置 13 args.Add("movetopath", true); 14 //是否让模型始终面朝当面目标的方向 15 //如果你发现你的模型在寻路的时候时钟都是一个方向那么一定要打开这个 16 args.Add("orienttopath", true); 17 18 //让模型开始寻路 19 iTween.MoveTo(gameObject, args); 20 }
1 void Start() 2 { 3 4 //键值对儿的形式保存iTween所用到的参数 5 Hashtable args = new Hashtable(); 6 7 //这里是设置类型,iTween的类型又很多种,在源码中的枚举EaseType中 8 //例如移动的特效,先震动在移动、先后退在移动、先加速在变速、等等 9 args.Add("easeType", iTween.EaseType.easeInOutExpo); 10 11 //移动的速度, 12 args.Add("speed",10f); 13 //移动的整体时间。如果与speed共存那么优先speed 14 args.Add("time",1f); 15 //这个是处理颜色的。可以看源码的那个枚举。 16 args.Add("NamedValueColor","_SpecColor"); 17 //延迟执行时间 18 args.Add("delay", 0.1f); 19 //移动的过程中面朝一个点 20 args.Add("looktarget",Vector3.zero); 21 22 //三个循环类型 none loop pingPong (一般 循环 来回) 23 //args.Add("loopType", "none"); 24 //args.Add("loopType", "loop"); 25 args.Add("loopType", "pingPong"); 26 27 //处理移动过程中的事件。 28 //开始发生移动时调用AnimationStart方法,5.0表示它的参数 29 args.Add("onstart", "AnimationStart"); 30 args.Add("onstartparams", 5.0f); 31 //设置接受方法的对象,默认是自身接受,这里也可以改成别的对象接受, 32 //那么就得在接收对象的脚本中实现AnimationStart方法。 33 args.Add("onstarttarget", gameObject); 34 35 36 //移动结束时调用,参数和上面类似 37 args.Add("oncomplete", "AnimationEnd"); 38 args.Add("oncompleteparams", "end"); 39 args.Add("oncompletetarget", gameObject); 40 41 42 //移动中调用,参数和上面类似 43 args.Add("onupdate", "AnimationUpdate"); 44 args.Add("onupdatetarget", gameObject); 45 args.Add("onupdateparams", true); 46 47 48 49 // x y z 标示移动的位置。 50 51 args.Add("x",5); 52 args.Add("y",5); 53 args.Add("z",1); 54 55 //当然也可以写Vector3 56 //args.Add("position",Vectoe3.zero); 57 58 59 //最终让改对象开始移动 60 iTween.MoveTo(gameObject,args); 61 } 62 63 //对象移动中调用 64 void AnimationUpdate(bool f) 65 { 66 Debug.Log("update :" + f); 67 } 68 //对象开始移动时调用 69 void AnimationStart(float f) 70 { 71 Debug.Log("start :" + f); 72 } 73 //对象移动时调用 74 void AnimationEnd(string f) 75 { 76 Debug.Log("end : " + f); 77 }