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