unity开宝箱动画_[技术博客]Unity3d 动画控制
在制作游戲時,導(dǎo)入的箱子模型本身自帶動畫。然而,它的動畫是一個從打開到關(guān)閉的完整過程,并且沒有給出控制打開關(guān)閉的方法。
最直接的想法是對該動畫進行拆分,再封裝成不同的動畫狀態(tài),但是不巧的是,這個動畫被設(shè)置了不可修改。因此我們只能退而求其次,采取添加動畫幀事件的方式對動畫進行控制。
動畫幀事件,顧名思義,是動畫運行到某一幀就會執(zhí)行的事件。即在動畫的某一幀上添加一個函數(shù),利用多個這類函數(shù),就能間接地達到控制動畫的目的。
1.實現(xiàn)前的功能分析
再來回顧一下我們的需求。首先我們擁有的是一個箱子從打開到關(guān)閉的完整動畫,而在我們游戲中想要做到的是:
按下開始按鈕之前,箱子保持關(guān)閉狀態(tài)。
按下開始按鈕之后,箱子開始打開,在完全打開之后箱子動畫暫停,執(zhí)行流水線的流程。
流水線流程結(jié)束之后,箱子關(guān)閉,在完全關(guān)閉之后,給出流水線執(zhí)行的結(jié)果。
因此,我們要加的動畫幀事件其實只有兩個。第一個是在箱子完全打開的關(guān)鍵幀處,第二個在箱子完全關(guān)閉的關(guān)鍵幀處。
2.關(guān)鍵幀事件的添加
如下圖所示,這是箱子動畫內(nèi)容,用紅圈圈出的就是我們添加的關(guān)鍵幀事件。
如何添加這些關(guān)鍵幀事件呢?
如下圖所示,點開箱子模型,在它的inspector中選擇Animation。
下拉inspector界面,就能看到下圖內(nèi)容,其中用紅圈圈出的Events就是我們添加事件的地方。
點擊Events下方的按鈕,即可創(chuàng)建一個新的事件,通過左右拖動這個事件讓其到達指定的幀數(shù),下方的Function欄是指定該事件對應(yīng)函數(shù)的函數(shù)名。
3.關(guān)鍵幀事件具體實現(xiàn)函數(shù)的添加
完成上述操作之后,僅僅只是加入關(guān)鍵幀事件,但事件對應(yīng)的具體實現(xiàn)函數(shù)還沒有添加,因此它還不能實現(xiàn)我們需要的功能。
這些具體實現(xiàn)函數(shù)所在的腳本一定得加在播放函數(shù)的物體上,并且腳本中需要有與我們剛剛添加的關(guān)鍵幀事件Function欄中名字相同的函數(shù)。
在我們的實現(xiàn)中,我創(chuàng)建了一個名為AnimationControl的腳本來實現(xiàn)對應(yīng)函數(shù)。
4.具體實現(xiàn)函數(shù)的編寫
最后一步是編寫對應(yīng)函數(shù)。
兩個函數(shù)都非常簡單,每一個函數(shù)主要是實現(xiàn)兩個功能:
-1.暫停動畫。
-2.調(diào)用流水線控制腳本中的函數(shù)實現(xiàn)流水線的運轉(zhuǎn)。
下圖為函數(shù)內(nèi)容
至此,我們就完成了對動畫的控制。
總結(jié)
以上是生活随笔為你收集整理的unity开宝箱动画_[技术博客]Unity3d 动画控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 避免多重条件嵌套_如何避免
- 下一篇: 查询去重_如何在 1 秒内做到大数据精准