Unity3d插件iTween的使用


iTween.cs 下載地址:http://pan.ceeger.com/viewfile.php?file_id=1830&file_key=0UJAymOJ

版本為2.0.43

 

一.iTween 介紹

iTween是一個動畫庫,目的是最小的投入實現最大的產出.讓你做開發更輕松,用它可以輕松實現各種動畫,晃動,旋轉,移動,褪色,上色,控制音頻等等。

二.iTween 原理

iTween的核心是數值插值,簡單說就是給iTween兩個數值(開始值,結束值),它會自動生成一些中間值,例如:, 開始值-> 中間值 -> 中間值 …. -> 結束值。

這里的數值可以理解為: 數字,坐標點,角度,物體大小,物體顏色,音量大小等。

三.主要文件有兩個iTween.cs 和 iTweenPath.unitypackage(編輯路徑才需要這個包)

http://l6.yunpan.cn/lk/Qv44q7AV7emHG

四.如何將iTween 加入項目:

在項目中建立Plugins目錄, 然后將下載的iTween.cs放到Plugins目錄即可。

如果需要編輯路徑, 使用import package->custom package菜單功能加入iTweenPath.unitypackage。

五.幾種效果演示

 

1. 物體移動

iTween.MoveTo(gameObject,new Vector3(100,200,0),2);

其中第一個參數是要移動的物體
第二個參數是要移動到的目標點坐標
第三個參數是移動需要的時間,然后物體將在2秒之內移動到坐標點為(x=100,y=200,z=0)的位置。
如果你需要在物體移動過程中更好的控制,我們可以添加更多的參數(所有函數可用的參數列表可以參考http://itween.pixelplacement.com/documentation.php):

 

iTween.MoveTo(gameObject,iTween.Hash("position",new Vector3(100,200,0),"time",2));

 

這一段代碼的效果與第一個例子效果是一樣的,只是第二個參數是一個字典類型的數據,可以設置更多的參數。
通用的參數介紹如下:
position:坐標,包括x,y,z三個軸向
path:路徑,是一個坐標數組,后面會講到iTweenPath腳本的使用,配合着itweenPath可以讓物體沿着路徑點移動。
x:x軸向的位置,如果只設置了x軸,物體就只移動x軸,y,z軸不會改變
orienttopath:如果設置為true,物體移動到目標點的過程中,z軸會一直朝向下一個目標點
looktarget:物體朝向,物體在移動過程中會一直朝向我們設置的坐標點的坐標

looktime:物體看向looktarget或orienttopath設置坐標的時間
islocal:當物體的目標點是相對於父節點的坐標,需要把isLocal設置為true,否則為false
time speed:這兩個參數都可以控制物體移動的快慢
delay:延遲時間,當物體開始移動之前等待時間
easetype:移動模式,我們可以設置一些加速度的效果,這個參數值是一個枚舉iTween.Easetype
looptype:循環模式,一共有三種模式
iTween.LoopType.none:不循環
iTween.LoopType.loop:循環,物體移動到終點后會跳到起點重新移動
iTween.LoopType.pingPong:來回循環,物體移動到終點后會再以相同的模式和時間再移動到起點,然后再移動到終點,一直循環
onstart:物體開始移動之前的回調函數
onstarttarget:回調函數接收對象,默認開始之前會向iTween.MoveTo函數的第一個參數的物體發送回調,根據需要在這里設置合適的回調接收者
onstartparams:回調方法的參數
onupdate:物體在移動過程中的回調函數
onupdatetarget:物體在移動過程中回調函數的接收者
onupdateparams:移動過程中回調函數的參數
oncomplete:物體移動完成后的回調
oncompletetarget:物體移動完成后的回調函數的接收者
oncompleteparams:物體移動完成后的回調函數的參數
ignoretimescale:忽略時間縮放,時間縮放是Time.timeScale = 0.5f; 默認值為1,如果我們把時間縮放值設置小於1,我們游戲的整體時間都會放慢,就像播放慢鏡頭一樣,如果設置ignoretimescale為true,無論我們時間怎么縮放,對物體的移動都沒有影響。
只要我們了解了itween的其中一個使用方式,其他的都是一樣的做法。
我們可以做的動畫有:位移,旋轉,縮放,音量漸變,攝像機淡入淡出,顏色的漸變,物體振動等很多有用的動畫。
2. 數值過渡

 

iTween.ValueTo(gameObject, iTween.Hash(
"from", y,
"to", toY,
"easetype", easeType,
"loopType", loopType,
"onupdate", "onupdate",
"time", tm
));

 

3. 振動

 

iTween.ShakePosition(target, new Vector3(0, 0.1f, 0), 1);

 

4. 按路徑移動

var path = GameObject.Find("Plane").GetComponent("iTweenPath").GetPath("myPath");
iTween.MoveTo(gameObject, iTween.Hash(//"position", Vector3(0, 0, 0),
"path", path,
"time", 20,
"easetype", "linear"));

 

以下是iTween插件各方法的大致用法,每個方法都有簡單傳參和Hashtable定制兩種用法,Hashtable可用iTween.Hash()生成,每個方法所需參數及其功能請參考iTween內部提示。

常用方法簡介:
AudioFrom:pitch和volum屬性提供的是初始值
audioTo:  pitch和volum屬性提供的是終結值
audioUpdate:pitch和volum屬性提供的是終結值 此方法用於Update()方法中
stab:播放AudioClip一次,不用手動加載AudioSource組件
CameraFadeAdd:創建一個對象可以模擬攝相機的淡入淡出。
CameraFadeSwap:改變攝相機的淡入淡出背景圖(對象為CameraFadeAdd返回對象)
CameraFadeFrom:立即改變攝相淡入淡出的透明度然后隨時間返回.amount:當執行淡入淡出時,其透明度的變化速度。(透明度越大,淡入淡出越快,個人認為100為滿,如果速度較快,時間較長,漸變效果會在時間快要結束時出現。此方法配合CameraFadeAdd使用,只有在CameraFadeAdd前提下,才可以進行淡入淡出操作。此方法為從CameraFadeAdd返回的對象出淡出到原來的界面。
CameraFadeTo:隨時間改變攝相機淡入淡出透明度,此方法為從本界面淡入到CameraFadeAdd返回的對象
ColorFrom:即刻改變對象的顏色值然后隨着時間改變其回原來的顏色(總的來說,就是對GUIText和GUITexture的顏色的淡入淡出效果)。Color:此屬性代表對象變化初始值。與audioFrom有異曲同工之效
ColorTo:隨着時間改變對象的顏色組。同上例一樣。Color:此屬性代表對象變化最終值,與audioTo有異曲同工之效
(注意,ColorFrom和ColorTo還有后面的ColorUpdate方法的NamedColorValue屬性,有一些對象不具有NamedColorValue里的屬性,運行時會有提示)
ColorUpdate:跟ColorTo類似,但花銷的成本較少,此方法在Update方法中被調用
FadeFrom:即刻改變對象的的阿爾法值,然后隨着時間將其阿爾法值變回原值。如果對象上有掛載
  a Light, GUIText or GUITexture這些組件,這些組件將成為被執行的對象。
注:阿爾法值可以粗略理解為對象的透明度,值越小,透明度越大。這里的 alpha或者 amount 是變化初值

FadeTo:同上,alpha或amount是變化終值。
FadeUpdate :同FadeTo類似,在Update()方法中調用,提供時刻改變屬性值的環境。不局限於 EaseType
LookFrom:即刻旋轉物體讓其看提供的Vector3或都Transfrom,然后隨時間旋轉回原來的角度值
注:物體的臉部一般以本地坐標(即物體坐標)的Z軸,臉部朝向方法,即Z軸指向方法。
LookTo:隨時間旋轉物體讓其臉部朝向所提供的Vector3或Transform位置。
LookUpdate:同LookTo類似,在Update()方法中調用。
MoveAdd:隨時間改變游戲對象的位置(原理還有點蒙,感覺跟MoveBy有點像)amount:是改變物體位置的一個值,不是目標位置的坐標。
MoveBy:增加提供的坐標到游戲對象的位置
MoveFrom:立即改變游戲對象的位置為提供的,然后隨時間改變游戲對象位置到初始位置
屬性:movetopath:Boolean值 ,是否自動將物體置於Ptah的起始點,默認值為真
Path:目標文件可用路徑編緝器獲得
PunchPosition:對物體的位置添加一個搖晃的力,使其搖晃最終歸於原來的位置 其晃動大小和方法由提供的amount(Vector3)決定(方法由Vector3的x,y,z共同決定,晃動大小,由各個方法的值的大小決定)

PunchRotation:對物體的旋轉添加一個搖晃的力,使其旋轉最終歸於初始值。其旋轉角度大小和方向由提供的Vector3決定,建議用單軸而不是整個Vector3,例如(0,1,0)是繞Y軸旋轉,角度大小由Vector3Y軸值大小決定

PunchScale:對物體的大小比例添加一個搖晃的力,使其大小比例變化最終歸於初始值。其大小比例變
化方向和大小由提供的Vector3決定。例如(0,1,0)是在Y軸方向對物體大小變化(即變化物體的高)
,大小由該方向的值大小決定
PutOnPath :根據提供的百分比將游戲物體置於所提供路徑上(1為百分之百)。
PointOnPath:根據提供的百分比返回一條路徑上的Vector3的位置
RectUpdate:返回一個RECT在提供的兩個值之間,大小變化根據提供的速度
Vector3Update:返回一個Vector3在提供的兩個值之間,大小變化根據提供的速度
Vector2Update:返回一個Vector3在提供的兩個值之間,大小變化根據提供的速度
FloatUpdate:返回一個float在提供的兩個值之間,大小變化根據提供的速度
RotateAdd:對游戲物體的旋轉角度隨着時間增加所提供的歐拉角(順時針旋轉。Vector3三個值解析:
X,Y,Z各代表圍繞哪個軸轉動。其轉動角度就是X,Y,Z、的值的大小。amount:歐拉角大小)
RotateBy:把提供的值乘以360,然后隨着時間旋轉游戲物體的角度按計算得的值。例 如(0,1,0)就是繞Y軸旋轉360度。 順時針旋轉
RotateFrom:立即改變游戲物體角度的歐拉角,然后隨着時間旋轉回原來的角度,屬性提供的歐拉角為變化初始值
RotateTo:旋轉游戲物體角度到我們所提供的歐拉角角度。屬性提供的歐拉角為變化終結值
RotateUpdate:跟RotateTo類似,該方法在Update中被調用,提供一個可改變屬性值的環境。不用局限EaseType
ScaleAdd:隨着時間根據提供的amount(Vector3)增加游戲物體的大小
ScaleBy:隨着時間變形游戲物體,游戲物體最終變形大小由我們提供的amount(Vector3)值決定 算法:
最終變形大小=游戲物體初始的sacle * 我們提供的 amount值
ScaleFrom:立即改變游戲物體的比例大小,然后隨時間返回游戲物體原本的大小。amount:為物體變形的初始大小
ScaleTo:隨着時間改變物體的比例大小到我們提供的Scale大小(scale值)
ScaleUpdate:跟ScaleTo類似,此方法用於Update中,提供可改變屬性值的環境 ,不用局限於EaeType
ShakePosition:根據提供的amount衰減其值隨機搖動游戲物體的位置,其晃動大小和方向由提供的amount(Vector3)決定(方向根據Vector3隨機,晃動大小,由各個方向的值的大小決定)
ShakeRotation:根據提供的amount衰減其值隨機擺動旋轉游戲物體的角度 。Vector3三個值解析:X,Y,Z各代表圍繞哪個軸旋轉。其轉動角度就是X,Y,Z、的值的大小
ShakeScale:根據提供的amount衰減其值隨機擺動改變游戲物體的大小。其大小比例變化方向和大小由提供的Vector3決定。例如(0,1,0)是在Y軸方向對物體大小變化(即變化物體的高),大小由該方向的值大小決定
Pause:停止iTween 如果一個iTween以ignoreTimeScale定制且設為True停止工作。 參考不同參數Pause的說明。
Stop:停止iTweens,和Pause一樣,不同的參數有不同作用。
Stop By Name:停止指定名字的iTween

ValueTo:返回一個插值在兩件值之間的回調函數的值(作用不明)
(Returns a value to a callback method interpolated between the supplied 'from' and 'to' 
values for application as desired. Requires an 'onupdate' callback that accepts the same 
type as the supplied 'from' and 'to' properties.)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM