Unity NGUI中Tween的使用事项(缺少动画过程)

这几天开发UNITY项目被NGUI难倒了。。首先坐标系问题就搞了很久,目前碰到一个情况,就是在两个场景中反复调用Tween动画的时候出现动画过程遗漏的问题。

之前的代码是这样的:

        TweenPosition scriptTPosition = objLevelChoose.GetComponent();
        scriptTPosition.to = new Vector3(cam.position.x-491.5759f, cam.position.y, 0);
        scriptTPosition.duration = 0.5f;
        scriptTPosition.PlayForward();
        EventDelegate.Add(scriptTPosition.onFinished, CallbackScale);


这样做会出现两种错误,一种是来回调用的时候有时会没有补间动画,另外一种情况是委托造成的,有时会执行你不希望执行的方法。最后在网上找了很多例子。。最后发现需要把代码改成这样:

        TweenPosition scriptTPosition = objLevelChoose.GetComponent();
        scriptTPosition.ResetToBeginning();
        scriptTPosition.from = new Vector3(cam.position.x - 491.5759f, cam.position.y - 1608, 0);
        scriptTPosition.to = new Vector3(cam.position.x-491.5759f, cam.position.y, 0);
        scriptTPosition.duration = 0.5f;
        scriptTPosition.Play(true);
        EventDelegate.Add(scriptTPosition.onFinished, CallbackScale, true);


这样执行之后就不会出现上面的问题,重点在每次执行Tween动画之前需要把脚本用ResetToBeginning()方法重置一下。另外对于需要来回调用的动画,比如TweenPosition,需要在每次执行之前把from值重新赋值一下,避免被之前的动画效果影响。

你可能感兴趣的:(Unity,Tween,NGUI,补间动画)