itween插件
itween是一個動畫庫,作者創建它的目的就是最小的投入實現最大的產出。用它可以輕松實現各種動畫,晃動,旋轉,移動、褪色、上色、控制音頻等。
iTween原理:
itween的核心是數值差值,就是給Itween兩個數值(開始值,結束值),它會自動生成一些中間值,只需要定義開始和結束值,中間的過程itween就會自動幫我們設置完成。這里的數值可以理解為數字,坐標點,角度,物體大小,物體顏色,音量大小等。
iTween應用:
(1)在項目中建立Plugins目錄,然后將下載的ITween.cs放到Plugins目錄即可。
(2)如果需要編輯路徑,可以導入ITweenPath.Unitypackage資源包。
iTween介紹:
iTween的公共操作接口均以靜態方法的形式提供,可分為三大類:
1.靜態注冊方法:提供注冊動畫效果的靜態方法接口有12種
動畫方法8種:Fade、 Look、Move、Rotate、Scale、Punch、Shake、CameraFade
音頻方法2種:Audio、Stab
顏色變化方法1種:Color
值變化方法1種:ValueTo
每種動畫又有一種或多種執行方式(To、From、Add、By)
(1)MoveTo:從原位置移動到目標位置
(2)MoveFrom:從目標位置移動到原位置
(3)MoveAdd:隨時間移動游戲對象的位置,根據提供的量
(4)MoveBy:增加提供的坐標到游戲對象的位置,與MoveAdd一樣
注:每種方法一般有兩種重載方式,最小定制選項和完全定制選項。
最小定制選項:只需提供最小必需參數
完全定制選項:可定制所有參數
2.Update靜態方法
提供每幀改變屬性值的環境。在Update或FixedUpdate方法或類似於循環的環境中調用。
如:MoveUpdate、AudioUpdate等。
3.外部工具方法:包括動畫控制、路徑繪制等。
動畫控制有:Pause暫停、Resume恢復、Stop停止並銷毀iTween。
繪制方法有:
- DrawLine:繪制線條,使用Gizmos.DrawLine
- DrawLineGizmos:與DrawLine相同
- DrawLineHandles:使用UnityEditor.Handles.DrawLine
- DrawPath:繪制彎曲路徑
- DrawPathGizmos:與DrawPath相同
- DrawPathHandles:使用UnityEditor.Handles.DrawLine
注:繪制方法只能在OnDrawGizmos()和OnDrawGizmosSelected()中調用,用於在Scene視圖中繪制線條和路徑。
其他方法有:
- Count:返回iTween的數量
- PathLength:返回了路徑的長度
- PutOnPath:根據提供的百分比將游戲物體置於所提供的路徑上
- PointOnPath:返回路徑上指定百分比處的Vector3
iTween方法:
(1)游戲物體的顏色變化方法
Color:根據組建的存在與否,該值將被應用於目標對象的GUITexture組件或GUIText組件或renderer組件或light組件。
ColorTo:從原始顏色漸變到目標顏色
ColorFrom:從給定的顏色漸變會原始顏色
ColorUpdate:類似於ColorTo,在Update方法或類似循環的環境中調用,提供每幀改變屬性值的環境,不依賴於EaseType。
nameValueColor:當效果是應用在renderer(渲染器)組件上時,此參數確定具體應用到哪個已經命名顏色值上。
Includechildren:效果是否應用於子對象,默認true
(2)游戲對象淡入淡出方法
FadeTo:從當前透明度漸變到目標透明度,內部調用ColorTo
FadeFrom:從給定透明度漸變到原始透明度,內部調用ColorFrom
FadeUpdate:類似於FadeTo,內部調用ColorUpdate
alpha和amount參數均為最終透明度,amount優先於alpha。內部實現是僅改變color.a的值,再調用對應的Color方法
(3)攝像機淡入淡出方法
CameraFadeTo:透明度從當前值漸變到指定值,取值0—1,0完全透明,1完全不透明
CameraFadeFrom:從給定的透明度漸變到原始值
CameraFadeAdd:創建一個用於模擬攝像機的淡入淡出的游戲對象,需要在注冊淡入淡出效果之前調用該方法
CameraTexture:創建並返回一個全屏的Texture2D,用於攝像機的淡入淡出。該Texture2D作為CameraFadeAdd()的參數
CameraFadeDepth:改變攝像機的淡入淡出深度,CameraFadeAdd()所創建的對象的z軸值
CameraFadeSwap:重設淡入單純效果所使用的紋理CameraFadeAdd所創建的對象的guiTexture.texture
CameraFadeDestroy:刪除攝像機的淡入淡出效果,銷毀CameraFedeAdd所創建的對象
(4)音頻變化方法
AudioTo:漸變AudioSource的音量和音調到目標值
AudioFrom:將AudioSource的音量和音調從給定的值漸變到原始值
AudioUpdate:類似於AudioTo,
音頻播放方法Stab,播放AudioClip一次,不用手動加載AudioSource組件
(5)Look類方法
LookTo:旋轉游戲對象使其面朝指定的Transform或Vector3
LookFrom:使游戲對象從提供的方向旋轉回原來所面朝的方向
LookUpdate:類似於LookTo
注:游戲對象的正面指的是游戲對象的Z軸方向,也就是使游戲對象的Z軸指向目標點
(6)旋轉方法
Look類方法是基於目標點的旋轉,Rotate類方法是基於角度的旋轉
RotateTo:旋轉游戲物體到指定的歐拉角角度
RotateFrom:將游戲物體從給的歐拉角角度旋轉回原始角度
RotateAdd:對游戲物體的旋轉角度隨着時間增加所提供的歐拉角(Vector3三個值解析:X,Y,Z各代表圍繞哪個軸轉動。其轉動的角度就是X,Y,Z的值的大小,amount:歐拉角大小)
RotateBy:將提供的值乘以360,其余與RotateAdd一樣,也就是提供的值為每個軸上旋轉的周數。
RotateUpdate:類似於RotateTo。
(7)物體大小縮放
ScaleTo:改變游戲對象的比例大小到我們提供的值
SclaeFrom:將物體的大小從我們提供的值變化到原來的大小
ScaleAdd:增加游戲物體的大小
ScaleBy:成倍地改變物體的大小,Amount參數為各軸上的倍數
ScaleUpdate:類似於ScaleTo
(8)晃動效果方法
PunchPosition:對物體的位置添加一個搖晃的力,使其搖晃最終歸於原來的位置,其晃動大小和方向由提供的amount(Vector3)決定
PunchRotation:對物體的旋轉添加一個搖晃的力,使其旋轉最終歸於初始值。其旋轉角度大小和方向由提供的Vector3決定,建議用單軸而不是整個Vector3,例如(0,1,0)是繞Y軸旋轉,角度大小由Vector3Y軸值大小決定
PunchScale:對物體的大小比例添加一個搖晃的力,使其大小比例最終歸於初始值。其大小比例變化方向和大小由提供的Vector3決定,例如(0,1,0)是在Y軸方向對物體大小變化(變化物體的高),大小由Vector3Y軸值大小決定
(9)衰減晃動效果方法
ShakePosition:根據提供的amount衰減其職隨機搖動游戲物體的位置,其晃動大小和方向由提供的amount(Vector3)決定(方向根據Vector3隨機,晃動大小,由各個方向的值的大小決定)
ShakeRotation:根據提供的amount衰減其值隨機擺動旋轉游戲物體的角度。
ShakeScale:根據提供的amount衰減其值隨機擺動改變游戲物體的大小。其大小比例變化方向和大小有提供的Vector3決定。
(10)值方法
ValueTo:返回一個“from”和“to”之間的插值,以調用“onupdate”回調函數。“onupdate”回調是必需的,且它接收一個與“from”和“to”相同類型的參數。支持的值類型:float、double、Vector3、Vector2、Color、Rect。
在Update()中調用的值方法:FloatUpdate、Vector3Update、Vector2Update、RectUpdate。這些方法返回一個在提供的兩個值之間的插值,大小變化根據提供的速度。