Unity NGUI中Tween的使用事项(缺少动画过程)
2015-07-25 11:15
531 查看
这几天开发UNITY项目被NGUI难倒了。。首先坐标系问题就搞了很久,目前碰到一个情况,就是在两个场景中反复调用Tween动画的时候出现动画过程遗漏的问题。
之前的代码是这样的:
这样做会出现两种错误,一种是来回调用的时候有时会没有补间动画,另外一种情况是委托造成的,有时会执行你不希望执行的方法。最后在网上找了很多例子。。最后发现需要把代码改成这样:
这样执行之后就不会出现上面的问题,重点在每次执行Tween动画之前需要把脚本用ResetToBeginning()方法重置一下。另外对于需要来回调用的动画,比如TweenPosition,需要在每次执行之前把from值重新赋值一下,避免被之前的动画效果影响。
之前的代码是这样的:
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值重新赋值一下,避免被之前的动画效果影响。
相关文章推荐
- Unity 5 全局光照GI与新的烘焙系统初探
- Unity 5.0 无法通过GUIText类型在脚本中调用画布中的Text文字
- Unity3d中的Awake()、OnEnable()、Start()等默认函数的执行顺序和生命周期
- Unity3d中的Awake()、OnEnable()、Start()等默认函数的执行顺序和生命周期
- Unity3d与设计模式(三)工厂模式
- unity-UIInput自定义限制输入字符
- unity内存优化和客户端表格读取方法内存比较
- 初学C语言,使用 Visual Studio2013Community
- Unity3d编辑器拓展
- 游戏引擎中三大及时光照渲染方法介绍(以unity3d为例)
- Unity中的优化技术
- 使用Unity3D的50个技巧
- Unity3D占用内存太大的解决方法
- Unity3D使用经验总结 缺点篇
- Unity之自动保存场景
- unity——使用角色控制器组件+射线移动
- Unity2D动态设置SpriteRender的Sprite(Multipe)
- Unity之机器人AI
- Uniyt : 场景LoadLevel时资源和对象的处理流程
- Unity在移动平台中,文件操作路径详解