Itween的代码使用方法 - 01
BB:Itween是真心不好用!
- 透明度动画
void Start () { //键值对儿的形式保存iTween所用到的参数 Hashtable args = new Hashtable(); //最终透明度 args.Add("alpha", 0); //最终透明度,alpha和amount都是最终透明度,amount优先于alpha.内部实现是仅改变Color.a的值,再调用对应的Color方法. args.Add("amount", 0); //是否包括子对象 args.Add("includechildren",true); //当效果是应用在renderer(渲染器)组件上时,此参数确定具体应用到那个以命名颜色值上 args.Add("namedcolorvalue", iTween.NamedValueColor._Color); //动画的时间 args.Add("time", 10f); //延迟执行时间 args.Add("delay", 0.1f); //这里是设置类型,iTween的类型又很多种,在源码中的枚举EaseType中 args.Add("easeType", iTween.EaseType.easeInOutExpo); //三个循环类型 none loop pingPong (一般 循环 来回) //args.Add("loopType", "none"); //args.Add("loopType", "loop"); args.Add("loopType", iTween.LoopType.pingPong); //处理动画中的事件。 //开始发生动画时调用AnimationStart方法,5.0表示它的参数 args.Add("onstart", "AnimationStart"); args.Add("onstartparams", 5.0f); //设置接受方法的对象,默认是自身接受,这里也可以改成别的对象接受, //那么就得在接收对象的脚本中实现AnimationStart方法。 args.Add("onstarttarget", gameObject); //动画结束时调用,参数和上面类似 args.Add("oncomplete", "AnimationEnd"); args.Add("oncompleteparams", "end"); args.Add("oncompletetarget", gameObject); //动画中调用,参数和上面类似 args.Add("onupdate", "AnimationUpdate"); args.Add("onupdatetarget", gameObject); args.Add("onupdateparams", true); iTween.FadeTo(btnBegin, args); } //动画开始时调用 void AnimationStart(float f) { Debug.Log("start :" + f); } //动画结束时调用 void AnimationEnd(string f) { Debug.Log("end : " + f); } //动画中调用 void AnimationUpdate(bool f) { Debug.Log("update :" + f); }
- 移动动画
void Start () { //键值对儿的形式保存iTween所用到的参数 Hashtable args = new Hashtable(); //这里是设置类型,iTween的类型又很多种,在源码中的枚举EaseType中 //例如移动的特效,先震动在移动、先后退在移动、先加速在变速、等等 args.Add("easeType", iTween.EaseType.easeInOutExpo); //移动的速度, //args.Add("speed",10f); //移动的整体时间。如果与speed共存那么优先speed args.Add("time",10f); //这个是处理颜色的。可以看源码的那个枚举。 args.Add("NamedValueColor","_SpecColor"); //延迟执行时间 args.Add("delay", 0.1f); //是否让游戏对象始终面朝路径行进的方向,拐弯的地方会自动旋转。 args.Add("orienttopath", true); //移动的过程中面朝一个点,当“orienttopath”为true时该参数失效 args.Add("looktarget",Vector3.zero); //游戏对象看向“looktarget”的秒数。 args.Add("looktime",1.1); //游戏对象移动的路径可以为Vector3[]或Transform[] 类型。可通过iTweenPath编辑获取路径 Vector3[] testPath = { new Vector3(0, 0, 0), new Vector3(0, 1, 0), new Vector3(0, 1, 1), new Vector3(1, 1, 1), new Vector3(1, 5, 1) }; args.Add("path", testPath); //是否移动到路径的起始位置(false:游戏对象立即处于路径的起始点,true:游戏对象将从原是位置移动到路径的起始点) args.Add("movetopath", false); //当包含“path”参数且“orienttopath”为true时,该值用于计算“looktarget”的值,表示游戏物体看着前方点的位置,(百分比,默认0.05) args.Add("lookahead",0.01); //限制仅在指定的轴上旋转 args.Add("axis", "x"); //是否使用局部坐标(默认为false) args.Add("islocal", false); //三个循环类型 none loop pingPong (一般 循环 来回) //args.Add("loopType", "none"); //args.Add("loopType", "loop"); args.Add("loopType", iTween.LoopType.pingPong); //处理移动过程中的事件。 //开始发生移动时调用AnimationStart方法,5.0表示它的参数 args.Add("onstart", "AnimationStart"); args.Add("onstartparams", 5.0f); //设置接受方法的对象,默认是自身接受,这里也可以改成别的对象接受, //那么就得在接收对象的脚本中实现AnimationStart方法。 args.Add("onstarttarget", gameObject); //移动结束时调用,参数和上面类似 args.Add("oncomplete", "AnimationEnd"); args.Add("oncompleteparams", "end"); args.Add("oncompletetarget", gameObject); //移动中调用,参数和上面类似 args.Add("onupdate", "AnimationUpdate"); args.Add("onupdatetarget", gameObject); args.Add("onupdateparams", true); // x y z 标示移动的位置。 args.Add("x",-5); args.Add("y",1); args.Add("z",1); //当然也可以写Vector3 //args.Add("position",Vectoe3.zero); //最终让改对象开始移动 iTween.MoveTo(btnBegin, args); } //对象移动中调用 void AnimationUpdate(bool f) { Debug.Log("update :" + f); } //对象开始移动时调用 void AnimationStart(float f) { Debug.Log("start :" + f); } //对象移动时调用 void AnimationEnd(string f) { Debug.Log("end : " + f); }
- 缩放动画
void Start () { //键值对儿的形式保存iTween所用到的参数 Hashtable args = new Hashtable(); //放大的倍数 args.Add("scale", new Vector3(1, 5, 1)); //args.Add("scale", msgNotContinue.transform); // x y z 标示放大的倍数 args.Add("x", 5); args.Add("y", 1); args.Add("z", 1); //动画的速度 //args.Add("speed",10f); //动画的时间 args.Add("time", 10f); //延迟执行时间 args.Add("delay", 0.1f); //这里是设置类型,iTween的类型又很多种,在源码中的枚举EaseType中 args.Add("easeType", iTween.EaseType.easeInOutExpo); //三个循环类型 none loop pingPong (一般 循环 来回) //args.Add("loopType", "none"); //args.Add("loopType", "loop"); args.Add("loopType", iTween.LoopType.pingPong); //处理移动过程中的事件。 //开始发生动画时调用AnimationStart方法,5.0表示它的参数 args.Add("onstart", "AnimationStart"); args.Add("onstartparams", 5.0f); //设置接受方法的对象,默认是自身接受,这里也可以改成别的对象接受, //那么就得在接收对象的脚本中实现AnimationStart方法。 args.Add("onstarttarget", gameObject); //动画结束时调用,参数和上面类似 args.Add("oncomplete", "AnimationEnd"); args.Add("oncompleteparams", "end"); args.Add("oncompletetarget", gameObject); //动画中调用,参数和上面类似 args.Add("onupdate", "AnimationUpdate"); args.Add("onupdatetarget", gameObject); args.Add("onupdateparams", true); iTween.ScaleTo(btnBegin, args); } //动画开始时调用 void AnimationStart(float f) { Debug.Log("start :" + f); } //动画结束时调用 void AnimationEnd(string f) { Debug.Log("end : " + f); } //动画中调用 void AnimationUpdate(bool f) { Debug.Log("update :" + f); }
- 值变化动画
void Start () { //键值对儿的形式保存iTween所用到的参数 Hashtable args = new Hashtable(); //插值的起点和终点,数据类型可为 float、double、Vector3、Vector2、Color、Rect args.Add("from", 0.0f); args.Add("to", 1.0f); //插值变化的速度, //args.Add("speed",10f); //插值变化的整体时间。如果与speed共存那么优先speed args.Add("time", 10f); //延迟执行时间 args.Add("delay", 0.1f); //这里是设置类型,iTween的类型又很多种,在源码中的枚举EaseType中 args.Add("easeType", iTween.EaseType.easeInOutExpo); //三个循环类型 none loop pingPong (一般 循环 来回) //args.Add("loopType", "none"); //args.Add("loopType", "loop"); args.Add("loopType", iTween.LoopType.pingPong); //处理移动过程中的事件。 //开始发生变化时调用AnimationStart方法,5.0表示它的参数 args.Add("onstart", "AnimationStart"); args.Add("onstartparams", 5.0f); //设置接受方法的对象,默认是自身接受,这里也可以改成别的对象接受, //那么就得在接收对象的脚本中实现AnimationStart方法。 args.Add("onstarttarget", gameObject); //变化结束时调用,参数和上面类似 args.Add("oncomplete", "AnimationEnd"); args.Add("oncompleteparams", "end"); args.Add("oncompletetarget", gameObject); //变化过程中(ValueTo必写参数) args.Add("onupdate", "AnimationUpdata"); args.Add("onupdatetarget", gameObject); //ValueTo不可用 args.Add("onupdateparams", btnBegin); iTween.ValueTo(btnBegin, args); } public void AnimationUpdata(object obj) { float per = (float)obj; //改变按钮透明度 btnBegin.transform.FindChild("Background").GetComponent<UISprite>().alpha = per; } //动画开始时调用 void AnimationStart(float f) { Debug.Log("start :" + f); } //动画结束时调用 void AnimationEnd(string f) { Debug.Log("end : " + f); }
这里附上一个协程的值变化方式