您的位置:首页 > 移动开发 > Unity3D

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

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

之前的代码是这样的:

TweenPosition scriptTPosition = objLevelChoose.GetComponent<TweenPosition>();
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<TweenPosition>();
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值重新赋值一下,避免被之前的动画效果影响。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: