Unity3D 之 iTween 相關

有過 Flash 開發經驗的朋友,對這個 iTween 應該感到很是熟悉吧,在 Flash 平臺有一款功能幾乎同樣的插件 TweenLite,至於哪一個先哪一個後,有沒有相互借鑑之類的就不在討論範圍了。html

簡單的說,iTween 是一個補間工具(引擎),它的功能是:在指定的時間內,將指定的屬性,從指定的值以特定的速度逐步過渡到另外一個值,另外還能夠指定每一幀的回調以及結束後的回調。因爲屬性值的改變致使遊戲畫面的改變,因此便有了動畫的效果。以前看到有人說 TweenLite 是緩動引擎,這個緩動聽起來挺擰巴的,我認爲補間更形象一些。函數

瞭解的 iTween 的本質後,即可以想見,它的做用並不單單是作動畫,凡是須要對數值進行過渡的地方均可以使用 iTween。iTween 和 TweenLite 比起來,有點更偏向於動畫方面的,限制也多一些,不過大致來講基本的功能均可以實現,不太好實現的部分也能夠變通來實現。如下討論比較有意思的幾個話題。工具

1、補間函數

現實世界中的運動通常來講就3種,勻速、加速、減速,經過這3種運動能夠組合成另外的運動形式來。一樣的,iTween 在對數值進行過渡的時候,也能夠勻速、加速、減速,而後經過組合的形式能夠實現多種形式的動畫效果。動畫

各類補間的演示能夠在這裏看到:easing_demo,還有這裏:interactive demo插件

2、回調方法

iTween 的回調函數是經過 SendMessage 來實現的,依賴於 Unity3D 的消息機制,因此限制就是回調是由字符串指定,而且回調的實現必須在 GameObejct 裏面。而有些狀況下,我在調用 iTween 的時候但願回調的是一個非派生自 MonoBehaviour 的類的方法,這時候就須要在 GameObject 裏面實現一個殼方法,以後再調用目標方法,很是擰巴。htm

解決的方法就是修改源碼,讓 iTween 支持自定義回調:爲 iTween 指定特定的回調 : onupdate, oncompleteblog

3、絕對和相對

MoveTo 是絕對運動,其中的參數 position 表示當前物體移動到指定的位置。遊戲

MoveAdd 是相對運動,表示在當前的基礎上加上參數 position 的值。開發

4、結尾

最新版本的 iTween 取消了一些的方法,同時提供了另外的替代方法。其中讓我很是蛋疼的是取消了貝塞爾曲線,並且竟然推薦我用 path 來替代,試了一下這個 path 參數,效果簡直是慘不忍睹。字符串

相關文章
相關標籤/搜索