日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity常用的动画类型

發布時間:2023/12/31 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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常用的动画类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。