Unity3D開發之製作序列幀動畫

    當我們需要製作動態炫酷科技感很強的UI時,美術一般會給我們提供一些序列圖,這時候我們只需在程序裏實現序列動畫。

一.動畫機

    unity自帶的幀動畫機很方便,我們首先選擇所要播放序列幀動畫的Image,然後在Window下選擇Animation,會彈出一個動畫制動的界面,我們選擇Create,然後進入如下界面:


我們按照如下添加動畫控制的屬性,


然後將我們美術給我們的序列圖(要設置成2DandUI模式哦)拖入到動畫幀面板裏。


Unity自帶的動畫機播放序列幀動畫很簡單也很方便,但是有一定的侷限性。因爲我們不能很方便的控制動畫的進程以及一些我們的要求。(雖然也可以,但是還是需要寫代碼,然後還要操控動畫機,太費勁)。下面就介紹完全用代碼控制動畫播放的方法。

二.代碼控制

    這個方法完全用代碼實現,不需要在去操作一下動畫機了。代碼如下:

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);//等待間隔  控制動畫播放速度
        }
    }
}

效果圖如下:


以上就是序列圖幀動畫製作,希望對你有幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章