第一篇文章~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去。