當我們需要制作動態炫酷科技感很強的ui時,美術一般會給我們提供一些序列圖,這時候我們只需在程序里實現序列動畫。
一.動畫機
unity自帶的幀動畫機很方便,我們首先選擇所要播放序列幀動畫的image,然后在window下選擇animation,會彈出一個動畫制動的界面,我們選擇create,然后進入如下界面:
我們按照如下添加動畫控制的屬性,
然后將我們美術給我們的序列圖(要設置成2dandui模式哦)拖入到動畫幀面板里。
unity自帶的動畫機播放序列幀動畫很簡單也很方便,但是有一定的局限性。因為我們不能很方便的控制動畫的進程以及一些我們的要求。(雖然也可以,但是還是需要寫代碼,然后還要操控動畫機,太費勁)。下面就介紹完全用代碼控制動畫播放的方法。
二.代碼控制
這個方法完全用代碼實現,不需要在去操作一下動畫機了。代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
public class test : monobehaviour { [serializefield] private image image; [serializefield] private list<sprite> animationsprites = new list<sprite>(); private int animationamount { get { return animationsprites.count; } } public void playanimation() { if (image == null ) image = getcomponent<image>(); startcoroutine(playanimationforwardienum()); } private ienumerator playanimationforwardienum() { int index = 0; //可以用來控制起始播放的動畫幀索引 gameobject.setactive( true ); while ( true ) { //當我們需要在整個動畫播放完之后 重復播放后面的部分 就可以展現我們純代碼播放的自由性 if (index > animationamount - 1) { index = 50; } image.sprite = animationsprites[index]; index++; yield return new waitforseconds(0.03f); //等待間隔 控制動畫播放速度 } } } |
效果圖如下:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/qq_33994566/article/details/80234260