itween用法深入

iTween的幾個回調函數:

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衝突的錯,還有要當心內存泄露。總之不是很完備,在複雜的功能實用中最好自己改寫。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章