溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Unity中獲取Animator中動畫片段的時長

發布時間:2020-07-05 06:34:05 來源:網絡 閱讀:26328 作者:lreach 欄目:游戲開發

開發環境:Unity5.6.2

private Animator animator;
public void GetLengthByName(string name)
{
    float length = 0;
    AnimationClip[] clips = animator.runtimeAnimatorController.animationClips;
    foreach(AnimationClip clip in clips)
    {
        if(clip.name.Equals(name)
        {
            length = clip.length;
            break;
        }
    }
    Debug.Log(length);
}

如上,如果想獲取要播放的Animator中動畫片段的時間長度(秒),要用到:

AnimationClip[] clips = animator.runtimeAnimatorController.animationClips;

注意,一開始用的是

AnimatorClipInfo[] infos = animator.GetCurrentAnimatorClipInfo(0);

這里只出現了一段動畫,也就是說這個Array的長度是1,只存放了第一段動畫,可能隨著你運行其它動畫,這個數組里的成員會增加,但是沒卵用啊,我想從一開始就能獲得想要的動畫片段長度,所以這種方法是不可用的。

那么就得用runtimeAnimatorController.animationClips了

還要注意,我播放動畫用的是Animator.Play(string name)

Unity中獲取Animator中動畫片段的時長

Play方法播放的是上圖中的state名字,但state上掛的animationClip的名字未必一樣
Unity中獲取Animator中動畫片段的時長

為了方便,起一樣的名字

這樣,遍歷Animator.runtimeAnimatorController.animationClips得到的數組,找到需要的名字,獲取其時間長度(秒)。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女