国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Unity3D小技巧】Unity3D中Animation和Animator動畫的播放、暫停、倒放控制

這篇具有很好參考價值的文章主要介紹了【Unity3D小技巧】Unity3D中Animation和Animator動畫的播放、暫停、倒放控制。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

推薦閱讀

  • CSDN主頁
  • GitHub開源地址
  • Unity3D插件分享
  • 簡書地址
  • 我的個人博客

大家好,我是佛系工程師☆恬靜的小魔龍☆,不定時更新Unity開發(fā)技巧,覺得有用記得一鍵三連哦。

一、前言

在日常開發(fā)中,常常會遇到要控制動畫的播放、暫停和倒放的情況。

這篇文章就總結(jié)一下,AnimationAnimator動畫播放系統(tǒng)的控制播放、暫停、倒放的代碼。

首先,來了解一下AnimationAnimator的區(qū)別和聯(lián)系。

二、Animation和Animator的區(qū)別和聯(lián)系

2-1、Animation動畫播放器

【Unity3D小技巧】Unity3D中Animation和Animator動畫的播放、暫停、倒放控制
Animation動畫播放器,用來控制單一動畫的播放和停止,占用資源小。

屬性 簡介
Animation 當前播放的動畫
Animations 所有可以播放的動畫片段,可以通過切換動畫片段來切換動畫
Play Automatically 自動播放
Animate Physics 動畫是否和物理世界進行交互(可以研究一下)
Culling Type 動畫在不可見時是否繼續(xù)播放,默認總是播放

2-2、Animator動畫狀態(tài)機

【Unity3D小技巧】Unity3D中Animation和Animator動畫的播放、暫停、倒放控制
Animator動畫控制器,用來控制多個動畫的播放、切換及疊加系列復(fù)雜的效果,動畫狀態(tài)機,占用資源大。

屬性 簡介
Controller 動畫控制器
Avatar 物體的骨骼Avatar
Apply Root Motion 是否使用動畫本身來控制角色的位置(不然就是使用腳本來控制角色的位置)
Update Mode 動畫的更新模式,默認是同步更新,動畫速度與運行速度相匹配,運行速度慢,動畫慢
Culling Mode 動畫在不可見時是否繼續(xù)播放,默認總是播放

2-3、區(qū)別與聯(lián)系

Animation組件和Animator組件的使用是非常相似的。

Animation組件用來控制單一動畫的播放控制,Animator控制多個動畫之間的切換,用了狀態(tài)機機制。

Animation占用資源少,Animator占用資源多。

Animator增加了骨骼Avatar,可以控制骨骼動畫:
【Unity3D小技巧】Unity3D中Animation和Animator動畫的播放、暫停、倒放控制

三、Animation中控制動畫播放、暫停、倒放

3-1、播放動畫

根據(jù)動畫片段的名字播放動畫:

using UnityEngine;

public class AnimationPlayControl : MonoBehaviour
{
    Animation ani;

    void Start()
    {
        //播放動畫
        ani.Play("Open");
    }
}

設(shè)置動畫片段來播放動畫:

using UnityEngine;

public class AnimationPlayControl : MonoBehaviour
{
    Animation ani;
    public AnimationClip[] clips;

    void Start()
    {
        //使用動畫片段來播放動畫
        ani.clip = clips[0];
        ani.Play();
    }
}

將動畫片段拖進去:
【Unity3D小技巧】Unity3D中Animation和Animator動畫的播放、暫停、倒放控制

AnimationClip:動畫剪輯片段,儲存基于關(guān)鍵幀的動畫,是用于Animation來播放動畫

3-2、暫停動畫

使用了三種方法

using UnityEngine;

public class AnimationPlayControl : MonoBehaviour
{
    Animation ani;

    Animator anir;

    void Start()
    {
        // 播放動畫
        ani.Play("Open");

        // 暫停動畫
        // 第一種方法:
        ani.Stop();

        // 第二種方法:
        AnimationState animationState = ani["Open"];
        animationState.speed = 0;

        //第三種方法
        Time.timeScale = 0;
    }
}

3-3、倒放動畫

關(guān)鍵點在于設(shè)置AnimationState動畫狀態(tài)播放速度為負值即可倒放,負多少無所謂:

using UnityEngine;

public class AnimationPlayControl : MonoBehaviour
{
    Animation ani;

    void Start()
    {
        // 倒放動畫
        AnimationState animationState = ani["Open"];
        animationState.speed = -1;//設(shè)置速度為負值即可
        animationState.normalizedTime = 1;
        ani.Play("Open");
    }
}

AnimationState:動畫狀態(tài),用來改變單一動畫的播放速度、權(quán)重、時間、層級、播放Mode,以及混合模式

四、Animator中控制動畫播放、暫停、倒放

4-1、舊版Unity的API實現(xiàn)播放、暫停、倒放

using UnityEngine;

public class AnimationPlayControl : MonoBehaviour
{
    public Animator ani;

    void Start()
    {
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.W))
        {
            // 暫停動畫
            ani.speed = 0;
        }
        if (Input.GetKeyDown(KeyCode.S))
        {
            // 倒播
            // 現(xiàn)在speed設(shè)置為負數(shù)無效
            ani.speed = -1;
        }
        if (Input.GetKeyDown(KeyCode.D))
        {
            // 播放動畫
            ani.speed = 1;
        }
    }
}

目前,播放和暫停是有用的,但是倒放不管用。
接下來,看一下新版Unity如何實現(xiàn)Animator動畫的倒放吧。

4-2、新版Unity的API實現(xiàn)播放、暫停、倒放

第一種方法,復(fù)制一份動畫片段
【Unity3D小技巧】Unity3D中Animation和Animator動畫的播放、暫停、倒放控制
代碼控制:

using UnityEngine;

public class AnimationPlayControl : MonoBehaviour
{
    public Animator ani;

    void Start()
    {
        // 正常播放
        ani.Play("textAni");

        // 倒放
        ani.Play("textAni-1");
    }
}

第二種方法,用狀態(tài)機控制

(1)新建變量float類型:
【Unity3D小技巧】Unity3D中Animation和Animator動畫的播放、暫停、倒放控制
(2)命名為speed:
【Unity3D小技巧】Unity3D中Animation和Animator動畫的播放、暫停、倒放控制
(3)勾選Parameter參數(shù)
【Unity3D小技巧】Unity3D中Animation和Animator動畫的播放、暫停、倒放控制
(4)代碼控制

using UnityEngine;

public class AnimationPlayControl : MonoBehaviour
{
    public Animator ani;

    void Start()
    {
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.W))
        {
            // 暫停動畫
            ani.SetFloat("speed",0);
        }
        if (Input.GetKeyDown(KeyCode.S))
        {
            // 倒播
            ani.SetFloat("speed", -1);
        }
        if (Input.GetKeyDown(KeyCode.D))
        {
            // 播放動畫
            ani.SetFloat("speed", 1);
        }
    }
}

五、后記

本篇文章詳細講解了AnimationAnimator組件的介紹和不同點。

已經(jīng)使用的方法。

然后介紹了AnimationAnimator組件播放動畫的過程中的播放、倒播、暫停動畫的代碼分享。

當然,AnimationAnimator組件的使用不僅僅就這些,更多的高端的使用方法,可以關(guān)注其他文章。

如果覺得本篇文章有用別忘了點個關(guān)注,關(guān)注不迷路,持續(xù)分享更多Unity干貨文章。


你的點贊就是對博主的支持,有問題記得留言:

博主主頁有聯(lián)系方式。

博主還有跟多寶藏文章等待你的發(fā)掘哦:文章來源地址http://www.zghlxwxcb.cn/news/detail-433330.html

專欄 方向 簡介
Unity3D開發(fā)小游戲 小游戲開發(fā)教程 分享一些使用Unity3D引擎開發(fā)的小游戲,分享一些制作小游戲的教程。
Unity3D從入門到進階 入門 從自學(xué)Unity中獲取靈感,總結(jié)從零開始學(xué)習(xí)Unity的路線,有C#和Unity的知識。
Unity3D之UGUI UGUI Unity的UI系統(tǒng)UGUI全解析,從UGUI的基礎(chǔ)控件開始講起,然后將UGUI的原理,UGUI的使用全面教學(xué)。
Unity3D之讀取數(shù)據(jù) 文件讀取 使用Unity3D讀取txt文檔、json文檔、xml文檔、csv文檔、Excel文檔。
Unity3D之數(shù)據(jù)集合 數(shù)據(jù)集合 數(shù)組集合:數(shù)組、List、字典、堆棧、鏈表等數(shù)據(jù)集合知識分享。
Unity3D之VR/AR(虛擬仿真)開發(fā) 虛擬仿真 總結(jié)博主工作常見的虛擬仿真需求進行案例講解。
Unity3D之插件 插件 主要分享在Unity開發(fā)中用到的一些插件使用方法,插件介紹等
Unity3D之日常開發(fā) 日常記錄 主要是博主日常開發(fā)中用到的,用到的方法技巧,開發(fā)思路,代碼分享等
Unity3D之日常BUG 日常記錄 記錄在使用Unity3D編輯器開發(fā)項目過程中,遇到的BUG和坑,讓后來人可以有些參考。

到了這里,關(guān)于【Unity3D小技巧】Unity3D中Animation和Animator動畫的播放、暫停、倒放控制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Unity Animation -- 使用Animator控制動畫

    Unity Animation -- 使用Animator控制動畫

    ? ? ? ? 在很多實際場景中,我們經(jīng)常需要根據(jù)特定的事件(比如玩家輸入,敵人受到攻擊等)來播放不同的動畫。這需要我們了解一下Animator,Animator Controller和基礎(chǔ)的動畫狀態(tài)機。 ? ? ? ? 首先我們來創(chuàng)建一個簡單的開門動畫,示例中的門的模型來自官方教程。其實我們也

    2023年04月27日
    瀏覽(30)
  • unity3d 制作開門動畫以及收集鑰匙實現(xiàn)開門

    unity3d 制作開門動畫以及收集鑰匙實現(xiàn)開門

    首先展示效果: unity3d 制作開門動畫以及收集鑰匙實現(xiàn)開門 第一步,我們在Hirarchy面板上新建三個cube,再按照一定的比例調(diào)整,制作完成一個門框,然后制作一個空物體并命名為Doorframe,將三個cube合并成門框一個整體: ?然后再創(chuàng)建一個cube調(diào)整大小,在將合適的門移動至門框

    2023年04月13日
    瀏覽(40)
  • 【小沐學(xué)Unity3d】Unity播放視頻(VideoPlayer組件)

    【小沐學(xué)Unity3d】Unity播放視頻(VideoPlayer組件)

    使用視頻播放器組件可將視頻文件附加到游戲?qū)ο螅缓笤谶\行時在游戲?qū)ο蟮募y理上播放。 視頻播放器 (Video Player) 組件: 屬性 功能 Source 選擇視頻源類型。Video Clip:將視頻剪輯分配給視頻編輯器。使用此字段來定義分配給視頻播放器組件的視頻剪輯。將視頻文件拖放到此

    2024年02月14日
    瀏覽(19)
  • Unity3D教程:播放視頻的兩種方式

    Unity3D教程:播放視頻的兩種方式

    Unity3D 中播放游戲視頻的方式有兩種,第一種是在游戲?qū)ο笾胁シ?,就好比在游戲世界中?chuàng)建一個Plane面對象,攝像機直直的照射在這個面上。第二種是在GUI層面上播放視頻。播放視頻其實和貼圖非常相像,因為播放視頻用到的MovieTexture屬于貼圖Texture的子類,那么本章我們就

    2024年02月11日
    瀏覽(26)
  • 【unity小技巧】unity3d環(huán)境帶霧的晝夜系統(tǒng)變化

    【unity小技巧】unity3d環(huán)境帶霧的晝夜系統(tǒng)變化

    鏈接:https://pan.baidu.com/s/1qlFSJSju6ZjwCylwkh14eA?pwd=veww 提取碼:veww 眩光其實可以簡單的理解為太陽或月亮 想要相機顯示眩光,需要在相機添加Flare Layer組件 配置參數(shù) 配置20 25 30 70 75 80位置的燈光顏色,具體的需要根據(jù)自己的天空盒 環(huán)境等,調(diào)配出適合的顏色和過渡 效果 加眩光

    2024年02月22日
    瀏覽(17)
  • 【虛擬仿真】Unity3D打包WEBGL后播放視頻(VideoPlayer組件)

    【虛擬仿真】Unity3D打包WEBGL后播放視頻(VideoPlayer組件)

    推薦閱讀 CSDN主頁 GitHub開源地址 Unity3D插件分享 簡書地址 我的個人博客 大家好,我是佛系工程師 ☆恬靜的小魔龍☆ ,不定時更新Unity開發(fā)技巧,覺得有用記得一鍵三連哦。 本篇文章實現(xiàn)Unity3D打包WEBGL后播放視頻,如下圖所示: 使用了VideoPlayer組件,代碼比較簡單。 主要就

    2023年04月25日
    瀏覽(39)
  • 【小沐學(xué)Unity3d】3ds Max 骨骼動畫制作(Mixamo )

    【小沐學(xué)Unity3d】3ds Max 骨骼動畫制作(Mixamo )

    官網(wǎng)地址: https://www.mixamo.com/#/ 使用 Mixamo 上傳和裝配 Adobe Fuse CC 3D 人物、自定義 3D 人物,或者利用 Mixamo 庫中的人物開始操作。 Mixamo支持3種文件格式上載:FBX,OBJ,ZIP。 確保FBX文件的“嵌入媒體”已打開,以上傳紋理。OBJ文件不包含紋理,使字符顯示為灰色。要顯示.obj文

    2024年02月04日
    瀏覽(17)
  • 【小沐學(xué)Unity3d】3ds Max 骨骼動畫制作(蒙皮修改器skin)

    【小沐學(xué)Unity3d】3ds Max 骨骼動畫制作(蒙皮修改器skin)

    “蒙皮”修改器是一種骨骼變形工具,主要設(shè)計用于通過另一個對象對一個對象進行變形來創(chuàng)建角色動畫??墒褂霉趋馈訔l線和其他對象變形網(wǎng)格、面片和 NURBS 對象。 如果將“蒙皮”修改器應(yīng)用到網(wǎng)格,然后使用修改器指定骨骼,則每個骨骼都將收到一個膠囊形狀的“封

    2024年02月10日
    瀏覽(21)
  • 【小沐學(xué)Unity3d】3ds Max 骨骼動畫制作(CAT、Character Studio、Biped、骨骼對象)

    【小沐學(xué)Unity3d】3ds Max 骨骼動畫制作(CAT、Character Studio、Biped、骨骼對象)

    官網(wǎng)地址: https://help.autodesk.com/view/3DSMAX/2018/CHS https://help.autodesk.com/view/3DSMAX/2019/CHS https://help.autodesk.com/view/3DSMAX/2020/CHS https://help.autodesk.com/view/3DSMAX/2021/CHS https://help.autodesk.com/view/3DSMAX/2022/CHS 3ds Max 包含兩套完整的對各個角色設(shè)置動畫的獨立子系統(tǒng)(即 CAT 和 character studio),

    2024年02月08日
    瀏覽(16)
  • Unity Animator獲取當前播放動畫片段

    Animator獲取當前播放片段,獲取錯誤,跟當前播放的片段不一致的原因。 一般使用下面API,獲取當前動畫機播放片段: 這里有一個機制,如果上一句代碼是播放一個動畫片段,下一句代碼立即去獲取當前播放片段信息,是獲取不到的,需要等待幾十ms的延遲,才能正確獲取到

    2024年02月12日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包