您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了Unity3D如何制作序列幀動(dòng)畫,內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來(lái)看看吧。
當(dāng)我們需要制作動(dòng)態(tài)炫酷科技感很強(qiáng)的UI時(shí),美術(shù)一般會(huì)給我們提供一些序列圖,這時(shí)候我們只需在程序里實(shí)現(xiàn)序列動(dòng)畫。
一.動(dòng)畫機(jī)
unity自帶的幀動(dòng)畫機(jī)很方便,我們首先選擇所要播放序列幀動(dòng)畫的Image,然后在Window下選擇Animation,會(huì)彈出一個(gè)動(dòng)畫制動(dòng)的界面,我們選擇Create,然后進(jìn)入如下界面:
我們按照如下添加動(dòng)畫控制的屬性,
然后將我們美術(shù)給我們的序列圖(要設(shè)置成2DandUI模式哦)拖入到動(dòng)畫幀面板里。
Unity自帶的動(dòng)畫機(jī)播放序列幀動(dòng)畫很簡(jiǎn)單也很方便,但是有一定的局限性。因?yàn)槲覀儾荒芎芊奖愕目刂苿?dòng)畫的進(jìn)程以及一些我們的要求。(雖然也可以,但是還是需要寫代碼,然后還要操控動(dòng)畫機(jī),太費(fèi)勁)。下面就介紹完全用代碼控制動(dòng)畫播放的方法。
二.代碼控制
這個(gè)方法完全用代碼實(shí)現(xiàn),不需要在去操作一下動(dòng)畫機(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;//可以用來(lái)控制起始播放的動(dòng)畫幀索引 gameObject.SetActive(true); while (true) { //當(dāng)我們需要在整個(gè)動(dòng)畫播放完之后 重復(fù)播放后面的部分 就可以展現(xiàn)我們純代碼播放的自由性 if (index > AnimationAmount - 1) { index = 50; } image.sprite = animationSprites[index]; index++; yield return new WaitForSeconds(0.03f);//等待間隔 控制動(dòng)畫播放速度 } } }
效果圖如下:
以上就是關(guān)于Unity3D如何制作序列幀動(dòng)畫的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。