onstart,onupdate,oncomplete ,都需要用onstarttarget,onupdatetarget,oncompletetarget指定回調函數在哪個Gameobject上。
此外可通過oncompleteparams來向回調函數中傳遞參數,指定類型的參數只可以傳遞一個。可以通過船底一個Object對象,裏面包含不同的參數,實現傳入多個參數的目的。
例如:
</pre><pre name="code" class="csharp">class parameter<span style="white-space:pre"> </span>//定義類
{
public Vector3 vet;
public int i;
public float f;
}
parameter param = new parameter();
<span style="white-space:pre"> </span>param.i=20;
<span style="white-space:pre"> </span>param.f=1.0f;
iTween.MoveTo(obj,iTween.Hash("x",vet[i].x,"y",vet[i].y,"z",vet[i].z,"time",5f,
<span style="white-space:pre"> </span> "looptype",iTween.LoopType.none,
<span style="white-space:pre"> </span> "onComplete","move",
<span style="white-space:pre"> </span> "oncompleteparams",param,
<span style="white-space:pre"> </span> "oncompletetarget",this.gameObject));
iTween緩動結束後會發送一個字符串的消息給gameobject,在這個gameobject上找到任何字符串爲moveComplete的函數都會執行。這就是字符串方式指定回調的缺陷。
還有一個缺陷是之前發現的iTween只能保存一個gameobject回調,同時只能只能存在一個oncomplete的回調:調用不同的緩動函數(或相同的),都指定參數:"oncomplete", "moveComplete",只有最後一個有效,後面會覆蓋前面的,解決辦法是在回調函數裏指定的gameobject爲一個list<gameobject>中的元素。
同時itween的id生成是隨機的,有時會報id衝突的錯,還有要當心內存泄露。總之不是很完備,在複雜的功能實用中最好自己改寫。