Uni2D 入門 -- Animation Clip 和 Animation API

轉載 csdn kakashi8841 http://blog.csdn.net/kakashi8841/article/details/17599505oop

Animation Clip動畫

一個animation clip是可重用的幀集合,它以給定的幀率顯示sprite。每一幀包含的texture和可選事件。spa

可經過菜單欄「Uni2D > Create > Animation Clip」建立一個Animation Clip。.net

 

Animation Clip Inspectororm

Atlas 部分對象

 

設置 描述
Use Atlas 這個animation clip全局的atlas。使用這個去爲animation clip的全部幀設置相同的atlas。留它爲None則會在每一個animation clip幀選擇指定的atlas。
Maximum Atlas Size 全局atlas的最大大小。只有在全局atlas設置的時候這個纔可見。

 

 

Clip header部分blog

 

設置 描述
Animation clip preview 鼠標懸停在紋理上面能夠有個快速預覽動畫
Frame Rate animation clip的幀率,單位是FPS。若是你想要反轉動畫,你能夠設置這個值爲負數。
Wrap Mode 這個設置描述了animation clip以怎樣的方式循環。和Unity內建的wrap mode很像:
  • Loop:從第一幀播放到最後一幀,而後回到第一幀繼續播放。
  • Ping-Pong:從第一幀播放到最後一幀,而後從最後一幀播回最後一幀。
  • Once:只播放一次,並停在一幀,它是主幀,不必定是動畫的第一幀。
  • Clamp Forever:從第一幀播放到最後一幀,並停在最後一幀。

 

 

Frame部分索引

 

設置 描述
點擊這兩個按鈕分別是上移和下移本幀
點擊這兩個按鈕分別是在本幀上面和下面添加幀
點擊這個按鈕刪除本幀
Frame Texture 這一幀使用的Texture。None也是合法的。
Use Atlas 這個atlas用於幀texture。只有在沒指定了global atlas的時候,這個纔是可見的。
Trigger Event 勾選這個複選框,若是你想要Uni2D能在這顯示此幀的時候觸發事件。更多信息請看Animation API部分。
Frame Infos 自定義本幀附加的信息。表明性的一個用法是這個能夠做爲事件數據。你能指定一個字符串,int,float或一個Unity對象。更多信息請看Animation API部分。

 

 

Action部分事件

 

設置 描述
Add frame 在Animation Clip結尾增長新的幀
Apply 點擊應用設置。因爲生產一個animation clip會花費必定時間,因此不要在每次一有改變的時候就應用。
Revert 取消你的改變
Force Clip Regeneration 重建atlas

 

 

嵌入的播放器部分ip

在這個子窗口,你能預覽動畫,並使用更多的回放控制。

 

Animation API

Uni2D提供一些基礎方法用於管理你的動畫。這些animation API雖然是C#的,不過JavaScript也可使用。

Uni2DSprite類有一個SpriteAnimation屬性,它返回一個Uni2DSpriteAnimation對象的引用。這個對象控制sprite的animation。

 

屬性/方法 描述
bool playAutomatically 決定動畫是否在sprite awake以後自動播放
Uni2DSprite Sprite(只讀) 這個對象正在渲染的sprite
Uni2DAnimationClip.WrapMode WrapMode animation怎樣循環(看Animation Clip的Inspector)
float FrameRate animation clip的幀率。使用這個修改動畫播放的方式。負數會反轉動畫
int FrameCount 當前animation包含了多少幀。這個數量取決於當前animation clip和當前的wrap mode。例如,一個10幀的animation clip,若是是Ping-Pong的wrap mode,它的frame count是18
int FrameIndex 當前繪製幀的索引
Uni2DAnimationFrame Frame(只讀) 當前幀
float Time 當前animation的播放時間在0到animation的長度之間。
float NormalizedTime 當前動畫播放時間,規範化在0到1之間。
float Speed 使用speed屬性控制animation的播放速度。這個將讓animation time走的更慢或更快,取決於你選擇的參數。你能設置到0來凍結它,-1來日後播放等等。
float Length(只讀) 當前播放的animation clip的長度
string Name(只讀) 當前播放的animation clip的名字
int CurrentClipIndex(只讀) 當前播放的animation clip的索引
Uni2DAnimationClip Clip(只讀) 當前播放的animation clip
int ClipCount(只讀) 附加到sprite上有多少個animation clips
bool Paused 若是設置爲true則暫停animation。設置爲false則恢復動畫。
void Pause() 暫停動畫
void Resume() 恢復動畫
void Play() 從頭播放當前選擇的animation(默認選中的animation clip是在Sprite的Inspector的Start Clip Index值設置的)
void Play(string clipName) 從頭播放名字爲clipName的clip。它必須已經經過手動或調用方法加到sprite上的,不然沒有任何效果。
void Play(int clipIndex) 從頭播放第clipIndex個clip。若是索引不對,則沒有任何效果。
int GetClipIndexByName(string clipName) 返回名字爲clipName的animation clip 的索引。若是沒有這個名字的clip,則返回-1
void Stop(bool resetToMainFrame=true) 中止當前動畫。若是可選參數設置爲false(默認是true),則sprite不會顯示它的主texture,而是保持當前動畫幀的texture。

 

 

Animation Events

有兩種類型的事件能被animation觸發:end animation event和frame animation event

End Animation Event

自動在動畫或者loop結束觸發。

回調方法簽名:void OnAnimationEndEvent(Uni2DAnimationEvent a_oAnimationEvent)

委託:Uni2DSpriteAnimation.onAnimationEndEvent

例子:sprite.spriteAnimation.onAnimationEndEvent += myCallbak;

 

Frame Animation Event

觸發每一幀triggerEvent參數(Animation Clip的Inspector中)設置爲true的。

回調方法簽名:void OnAnimationFrameEvent(Uni2DAnimationFrameEvent a_oAnimationFrameEvent);

委託:Uni2DSpriteAnimation.onAnimationFrameEvent

例子:sprite.spriteAnimation.onAnimationFrame += myCallbak;

給出的Uni2DAnimationFrameEvent對象容許你訪問觸發事件的frame。值得注意的是,用戶定義的幀信息能從這個event中訪問到。

例如,a_oAnimationFrameEvent.frame.eventInfos.stringInfo

相關文章
相關標籤/搜索