Unity-使用動(dòng)畫事件
您可以使用動(dòng)畫事件增加動(dòng)畫剪輯的實(shí)用性。動(dòng)畫事件允許您在時(shí)間軸中的指定點(diǎn)調(diào)用對(duì)象腳本中的函數(shù)。
由動(dòng)畫事件調(diào)用的函數(shù)也可以接受一個(gè)參數(shù)。該參數(shù)可以是?float
、string
、int
?或?object
?引用或 AnimationEvent 對(duì)象。AnimationEvent 對(duì)象具有一些成員變量,通過這些變量可將浮點(diǎn)、字符串、整數(shù)和對(duì)象引用以及有關(guān)觸發(fā)函數(shù)調(diào)用的事件的其他信息一次性傳遞給該函數(shù)。
要將動(dòng)畫事件添加到當(dāng)前播放頭位置的剪輯,請(qǐng)單擊?Event?按鈕。要將動(dòng)畫事件添加到動(dòng)畫中的任何點(diǎn),請(qǐng)?jiān)谝|發(fā)事件的時(shí)間點(diǎn)上雙擊__事件__線。添加事件后,可拖動(dòng)鼠標(biāo)重新定位該事件的所在位置。要?jiǎng)h除事件,請(qǐng)選擇該事件并按?Delete?鍵,或右鍵單擊該事件并選擇?Delete Event。

要將動(dòng)畫事件添加到當(dāng)前播放頭位置的剪輯,請(qǐng)單擊?Event?按鈕。要將動(dòng)畫事件添加到動(dòng)畫中的任何點(diǎn),請(qǐng)?jiān)谝|發(fā)事件的時(shí)間點(diǎn)上雙擊__事件__線。添加事件后,可拖動(dòng)鼠標(biāo)重新定位該事件的所在位置。要?jiǎng)h除事件,請(qǐng)選擇該事件并按?Delete?鍵,或右鍵單擊該事件并選擇?Delete Event。
添加事件時(shí),Inspector 窗口會(huì)顯示多個(gè)字段。這些字段可指定要調(diào)用的函數(shù)的名稱以及要傳遞給它的參數(shù)值。

添加到剪輯的事件在事件線中會(huì)顯示一個(gè)標(biāo)記。在標(biāo)記上懸停鼠標(biāo)可顯示帶有函數(shù)名稱和參數(shù)值的工具提示。

您可以在時(shí)間軸中選擇和操作多個(gè)事件。
要在時(shí)間軸中選擇多個(gè)事件,請(qǐng)按住?Shift?鍵并逐個(gè)選擇事件標(biāo)記,從而將它們添加到您的選擇中。您也可以在它們之間拖動(dòng)一個(gè)選擇框;在事件標(biāo)記區(qū)域內(nèi)單擊并拖動(dòng),如下所示:

示例
以下示例演示如何將動(dòng)畫事件添加到簡(jiǎn)單的游戲?qū)ο?。?zhí)行所有步驟后,立方體會(huì)在播放模式期間沿 x 軸向前和向后進(jìn)行動(dòng)畫化,并在 0.8 秒時(shí)間處每隔 1 秒在控制臺(tái)中顯示事件消息。
該示例需要一個(gè)包含?PrintEvent()
?函數(shù)的小腳本。此函數(shù)打印一條調(diào)試消息,其中包含一個(gè)字符串(“called at:”)和時(shí)間:
使用此示例代碼創(chuàng)建一個(gè)腳本文件,并將其放在 Project 文件夾中(在 Unity 的 Project 窗口內(nèi)右鍵單擊,并選擇?Create?> __C# Script__,然后將以上代碼示例復(fù)制并粘貼到該文件并保存)。
在 Unity 中,創(chuàng)建立方體游戲?qū)ο螅ú藛危篲_GameObject__ >?3D Object?> __Cube__)。要將新腳本文件添加到該立方體,請(qǐng)將文件從 Project 窗口拖放到 Inspector 窗口。
選擇立方體,然后打開 Animation 窗口(菜單:__Window__ >?Animation?>?Animation?或使用 Ctrl+6)。為 x 坐標(biāo)設(shè)置__位置__曲線。

接下來,設(shè)置 x 坐標(biāo)的動(dòng)畫,增加到大約 0.4 秒,然后在 1 秒內(nèi)恢復(fù)到零,再隨后在大約 0.8 秒處創(chuàng)建動(dòng)畫事件。按 Play 即可運(yùn)行動(dòng)畫。