Unity常用的动画类型
在Unity中,動(dòng)畫(huà)主要有有三種類型:
1.序列幀動(dòng)畫(huà):通過(guò)快速播放一系列圖片產(chǎn)生動(dòng)畫(huà)的效果,類似于 Gif一樣
2.關(guān)節(jié)動(dòng)畫(huà):把角色分成若干獨(dú)立部分,一個(gè)部分對(duì)應(yīng)一個(gè)網(wǎng)格模型,部分的動(dòng)畫(huà)連接成一 個(gè)整體的動(dòng)畫(huà),角色比較靈活
3.骨骼動(dòng)畫(huà):應(yīng)用最廣泛的動(dòng)畫(huà),結(jié)合上面兩種動(dòng)畫(huà)形式,內(nèi)部骨骼,外部蒙皮。
在我實(shí)際開(kāi)發(fā)中,最常用的就是序列幀和骨骼動(dòng)畫(huà)了
序列幀:
直接給New Sprite賦予如下腳本。實(shí)質(zhì)上在控制哪個(gè)毫秒,精靈New Sprite上放的是那張圖片而已。這里沒(méi)有使用Update()這個(gè)父進(jìn)程去播放動(dòng)畫(huà),利用一個(gè)協(xié)程對(duì)應(yīng)一個(gè)GIF的控制,我認(rèn)為更合適。?
這里唯一一個(gè)注意點(diǎn)是,大家可以看到,原來(lái)GIF只有46幀,序列幀大圖是按8x8共64幀來(lái)配置的,所以注意會(huì)有空白,因此,在協(xié)程中要求播到46幀,則馬上從0開(kāi)始。
在協(xié)程中,停頓時(shí)間為1/fps秒,fps為刷新頻率,也就是幀數(shù),原始游戲是30,高清時(shí)代是60,現(xiàn)在貌似去到75,這個(gè)自己定好就行。
實(shí)質(zhì)上本程序來(lái)來(lái)去去都是spriteRenderer.sprite = sprites[i];控制當(dāng)前是數(shù)組那個(gè)元素而已
using UnityEngine; using System.Collections; public class AnimationController : MonoBehaviour {private Coroutine AnimationPlay;//播放協(xié)程private Sprite[] sprites;//被切割的序列圖數(shù)組private SpriteRenderer spriteRenderer;//精靈控制器void Start(){sprites = Resources.LoadAll<Sprite>("aa");//載入資源aa.pngspriteRenderer = GetComponent<SpriteRenderer>() as SpriteRenderer;//這東西在精靈身上自帶的,直接拿就行}void Update(){}//按鈕動(dòng)作public void PlayButtonOnClick(){AnimationPlay = StartCoroutine(AnimationPlayThread(30));}public void StopButtonOnClick(){StopCoroutine(AnimationPlay);}//實(shí)質(zhì)在控制什么時(shí)候在精靈上放那張被切割的小圖而已IEnumerator AnimationPlayThread(float fps){int i = 0;while (true){if (i < 46){spriteRenderer.sprite = sprites[i];i++;}else{i = 0;}yield return new WaitForSeconds(1 / fps);}} }總結(jié)
以上是生活随笔為你收集整理的Unity常用的动画类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: cvss(cvss)
- 下一篇: 使用mne库绘制地形图