當(dāng)我們需要制作動態(tài)炫酷科技感很強(qiáng)的UI時,美術(shù)一般會給我們提供一些序列圖,這時候我們只需在程序里實現(xiàn)序列動畫。
一.動畫機(jī)
unity自帶的幀動畫機(jī)很方便,我們首先選擇所要播放序列幀動畫的Image,然后在Window下選擇Animation,會彈出一個動畫制動的界面,我們選擇Create,然后進(jìn)入如下界面:

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

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

Unity自帶的動畫機(jī)播放序列幀動畫很簡單也很方便,但是有一定的局限性。因為我們不能很方便的控制動畫的進(jìn)程以及一些我們的要求。(雖然也可以,但是還是需要寫代碼,然后還要操控動畫機(jī),太費勁)。下面就介紹完全用代碼控制動畫播放的方法。
二.代碼控制
這個方法完全用代碼實現(xiàn),不需要在去操作一下動畫機(jī)了。代碼如下:
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) { //當(dāng)我們需要在整個動畫播放完之后 重復(fù)播放后面的部分 就可以展現(xiàn)我們純代碼播放的自由性 if (index > AnimationAmount - 1) { index = 50; } image.sprite = animationSprites[index]; index++; yield return new WaitForSeconds(0.03f);//等待間隔 控制動畫播放速度 } }}效果圖如下:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點
疑難解答
圖片精選