Unity3D制作序列幀動畫的方法
當我們需要制作動態(tài)炫酷科技感很強的UI時,美術(shù)一般會給我們提供一些序列圖,這時候我們只需在程序里實現(xiàn)序列動畫。
一.動畫機
unity自帶的幀動畫機很方便,我們首先選擇所要播放序列幀動畫的Image,然后在Window下選擇Animation,會彈出一個動畫制動的界面,我們選擇Create,然后進入如下界面:
我們按照如下添加動畫控制的屬性,
然后將我們美術(shù)給我們的序列圖(要設(shè)置成2DandUI模式哦)拖入到動畫幀面板里。
Unity自帶的動畫機播放序列幀動畫很簡單也很方便,但是有一定的局限性。因為我們不能很方便的控制動畫的進程以及一些我們的要求。(雖然也可以,但是還是需要寫代碼,然后還要操控動畫機,太費勁)。下面就介紹完全用代碼控制動畫播放的方法。
二.代碼控制
這個方法完全用代碼實現(xiàn),不需要在去操作一下動畫機了。代碼如下:
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) { //當我們需要在整個動畫播放完之后 重復播放后面的部分 就可以展現(xiàn)我們純代碼播放的自由性 if (index > AnimationAmount - 1) { index = 50; } image.sprite = animationSprites[index]; index++; yield return new WaitForSeconds(0.03f);//等待間隔 控制動畫播放速度 } } }
效果圖如下:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#關(guān)聯(lián)自定義文件類型到應用程序并實現(xiàn)自動導入功能
今天通過本文給大家分享C#關(guān)聯(lián)自定義文件類型到應用程序并實現(xiàn)自動導入功能,代碼中寫入了兩個注冊表,實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2021-09-09DevExpress實現(xiàn)TreeList父子節(jié)點CheckState狀態(tài)同步的方法
這篇文章主要介紹了DevExpress實現(xiàn)TreeList父子節(jié)點CheckState狀態(tài)同步的方法,需要的朋友可以參考下2014-08-08