Unity iTween精通:解析iTween源代码

在介绍基本动画方法之前我们先来了解下哈希表里面共同键的意义。
变量 类型 描述
time System.Single 动作完成一次所需的时间
path Transform[] 运动路径,一般是若干个GameObject
delay System.Single 动画开始前的延时时间
easetype System.String 运动轨迹的类型
looptype LoopType 循环类型
onstart System.String 当动画开始时要调用的方法
onstarttarget GameObject 一个持有onstart方法的对象
onstartparams System.Object onstart方法的参数
onupdate System.String 动画播放的每一帧调用的方法
onupdatetarget GameObject 挂载onupdate方法的对象
onupdateparams System.Object onupdate方法的参数
oncomplete System.String 动画完成时要调用的方法
oncompletetarget GameObject 挂载oncomplete方法的对象
oncompleteparams System.Object oncomplete方法的参数

以上这些参数是大多数有哈希表形参动画方法的基本键值,还有些键值不用方法有不同的支持,我们在具体方法中探讨。
接下来介绍基本动画方法:
Move
iTween关于物体移动的函数有MoveTo()、MoveFrom()、MoveAdd()、MoveBy(),分别表示“将物体移动至目标位置”、“将物体从目标位置移动至开始位置”等。那么MoveBy和MoveAdd有什么区别呢?通过阅读源代码我们发现没区别。源代码是这样定义的:

case "move":
switch (method) {
    case "to":
    //using a path?
    if(tweenArguments.Contains("path")){
        GenerateMoveToPathTargets();
        apply = new ApplyTween(ApplyMoveToPathTargets);
    }else{ //not using a path?
        GenerateMoveToTargets();
        apply = new ApplyTween(ApplyMoveToTargets);
    }
    break;
    case "by":
    case "add":
        GenerateMoveByTargets();
        apply = new ApplyTween(ApplyMoveByTargets);
    break;
}
break;

我们可以看到,iTween对MoveBy和MoveAdd的操作是一样的。但是在其他基本动画中,对XXBy和对XXAdd有不同的实现。比如ScaleAdd和ScaleBy有不同的动画效果。

为了深入了解 iTween,我们接下来介绍封装在iTween和这些基本动画方法有关的其他方法。

  • Resume
    public static void Resume(GameObject target)
    激活target的所有iTween组件,即设置target.GetComponents< iTween >()中的每一个元素的enabled值为true。

  • CleanArgs
    static Hashtable CleanArgs(Hashtable args)
    将args中Key全部转换为小写,Value中System.Int32和转换为float,最后将转换结果保存到一个新的Hashtable中并返回。

  • Launch
    static void Launch(GameObject target, Hashtable args)
    将args添加到tweens(List类型,保存所有args)头位置,给target添加iTween组件。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值