1. 程式人生 > >第一篇文章~iTween使用心得

第一篇文章~iTween使用心得

    開始從事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去。