第一篇文章~iTween使用心得

来源:互联网 发布:绝地求生流畅优化补丁 编辑:程序博客网 时间:2024/06/08 17:35

 

    开始从事Unity开发工作已经有一个月了,开个博客记录下工作中的一些小问题,心得之类的。以便自己以后翻看和希望能对后来的人们有所帮助。



首先是前两天学习 iTween时遇到的小问题和解决方案:

 

1. MoveTo()移动会抖

    使用iTween时可以方便的把物体从一个状态平滑的过度到另一个状态,比如A位置平滑移动到B位置,但是如果你要使用Itween使A物体追踪B物体(B在物理移动中),那么一般的MoveTo之类的方法,A物体在追踪时就会有严重的抖动。

此时的解决方法时,每帧调用MoveUpdate()来移动A物体,需要注意到时必须放在FixedUpdate()中,这样就可以平滑的追踪了。

 

2. 旋转到指定的方向

    要时一个物体转向指定的方向,使用LookTo(),非常方便。

 

3. “oncomplete”无效

   void Start()    {        iTween.MoveTo(Camera.mainCamera.gameObject, iTween.Hash("position",                newPos, "time", 0.4f, "oncomplete", "OnComplete"));    }    void OnComplete()    {        OnDragFinished();    }

    情况 1: 包含这段代码的脚本没有附加在Camera.mainCamera上,因为iTween是在你给它的“Camera.mainCamera. gameObject”上寻找“OnComplete()”方法的,自然就找不到了。此时的解决办法有 3个。

    a.把这个脚本加到Camera.mainCamera,通常不可取。

    b.使用    "oncompletetarget",gameObject ,把OnComplete()所在的gameObject赋给iTween。

    c.比如你的OnComplete()在一个没有继承MonoBehaviour的类中,此时就无法使用iTween的callback方法了。这时我会用一个自定义的延迟调用类来解决,比如 AutoTimer.Add("Name", OnComplete,0.4f); 0.4秒后调用OnComplete();

    情况 2:你使用的是iTween 1.0...此时要把"oncomplete" 改成 "onComplete"或者下载最新的iTween去。