unity開寶箱動畫_[技術博客]Unity3d 動畫控制

在制作游戲時,導入的箱子模型本身自帶動畫。然而,它的動畫是一個從打開到關閉的完整過程,并且沒有給出控制打開關閉的方法。

最直接的想法是對該動畫進行拆分,再封裝成不同的動畫狀態,但是不巧的是,這個動畫被設置了不可修改。因此我們只能退而求其次,采取添加動畫幀事件的方式對動畫進行控制。

動畫幀事件,顧名思義,是動畫運行到某一幀就會執行的事件。即在動畫的某一幀上添加一個函數,利用多個這類函數,就能間接地達到控制動畫的目的。

1.實現前的功能分析

再來回顧一下我們的需求。首先我們擁有的是一個箱子從打開到關閉的完整動畫,而在我們游戲中想要做到的是:

按下開始按鈕之前,箱子保持關閉狀態。

按下開始按鈕之后,箱子開始打開,在完全打開之后箱子動畫暫停,執行流水線的流程。

流水線流程結束之后,箱子關閉,在完全關閉之后,給出流水線執行的結果。

因此,我們要加的動畫幀事件其實只有兩個。第一個是在箱子完全打開的關鍵幀處,第二個在箱子完全關閉的關鍵幀處。

2.關鍵幀事件的添加

如下圖所示,這是箱子動畫內容,用紅圈圈出的就是我們添加的關鍵幀事件。

ab2fccfb8f2e8e4c7d7b2f6f61cfce75.png

如何添加這些關鍵幀事件呢?

如下圖所示,點開箱子模型,在它的inspector中選擇Animation。

ef7e2a6a56b8c2b57e95797cc133d056.png

下拉inspector界面,就能看到下圖內容,其中用紅圈圈出的Events就是我們添加事件的地方。

點擊Events下方的按鈕,即可創建一個新的事件,通過左右拖動這個事件讓其到達指定的幀數,下方的Function欄是指定該事件對應函數的函數名。

d9140337b0fa8e63b6feb3240dd3be68.png

3.關鍵幀事件具體實現函數的添加

完成上述操作之后,僅僅只是加入關鍵幀事件,但事件對應的具體實現函數還沒有添加,因此它還不能實現我們需要的功能。

這些具體實現函數所在的腳本一定得加在播放函數的物體上,并且腳本中需要有與我們剛剛添加的關鍵幀事件Function欄中名字相同的函數。

在我們的實現中,我創建了一個名為AnimationControl的腳本來實現對應函數。

0175bcd68b20cd30ac4bbacc63d6f3b4.png

4.具體實現函數的編寫

最后一步是編寫對應函數。

兩個函數都非常簡單,每一個函數主要是實現兩個功能:

-1.暫停動畫。

-2.調用流水線控制腳本中的函數實現流水線的運轉。

下圖為函數內容

ed02a57bacb987abd11bc2c9a04e94e4.png

至此,我們就完成了對動畫的控制。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394224.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394224.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394224.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php上傳大文件時,服務器端php.ini文件中需要額外修改的選項

幾個修改點: 1、upload_max_filesize 上傳的最大文件 2、post_max_size 上傳的最大文件 3、max_execution_time 修改為0表示無超時,一直等待 4、max_input_time 參考網址: 在php.ini中把max_input_time 和 max_execution_time設置得特別長…

《中國人工智能學會通訊》——11.21 結束語

11.21 結束語 本文針對交通流的網絡性、異質性和動態性特點,結合當前多任務學習方法的不足提出了相應的解決方案。然而,在實際的應用場景中還存在更多的挑戰,需要進一步深入的研究方向包括:① 高維任務的共同學習方法。在高維數據…

如何把一個軟件嵌入另一個軟件_自動化正在成為一個“軟件”行業

摘要在智能制造時代,自動化行業正在成為一個軟件行業,它正在改變著整個產業的未來,也將為制造業帶來更為廣闊的空間。自動化正在成為一個“軟件”行業,在智能時代,軟件正在成為自動化行業競爭的關鍵。自動化已然成為軟…

leetcode1020. 飛地的數量(dfs)

給出一個二維數組 A,每個單元格為 0(代表海)或 1(代表陸地)。 移動是指在陸地上從一個地方走到另一個地方(朝四個方向之一)或離開網格的邊界。 返回網格中無法在任意次數的移動中離開網格邊界…

未來編程語言的走向_在編程方面我從失敗走向成功的過程以及讓我成功的原因

未來編程語言的走向In the past 10 years, I’ve had three separate experiences trying to learn programming. I’ve wondered why I’ve had such different results. What had caused me to both fail and succeed?在過去的10年中,我有3種不同的嘗試學習編程的…

《中國人工智能學會通訊》——5.16 結 論

5.16 結 論 在過去的 30 年中,移動操作機器人在機器人實驗室受到了廣泛的關注并獲得了比較充分的研究。未來隨著工業領域的自動化需求,移動操作機器人將會深入到生產的各個環節。目前,幾乎所有的移動操作機器人都沒有在實際環境中獲得廣泛及充…

【轉載 | 筆記】IIS無法刪除應該程序池 因為它包含X個應用程序

IIS無法刪除應該程序池 因為它包含X個應用程序 今天代碼主分支在vs2015創建了虛擬目錄http://localhost/webapp指向的物理路徑是E:\webapp 之后新開了一個分支把代碼放在了D:\webapp之后又在vs2015中創建了虛擬目錄 http://localhost/webapp/home 這下就杯具了。在主分支調試的…

python作中國地圖背景氣泡圖_exce表格中怎么制作中國地圖背景數據氣泡圖

exce表格中怎么制作中國地圖背景數據氣泡圖exce表格中怎么制作中國地圖背景數據氣泡圖?excel表格中想要在中國地圖上顯示氣泡來看看地區分布情況,該怎么設置中國地圖氣泡圖表呢?下面我們就來看看詳細的教程,需要的朋友可以參考下1、如圖1所示&#xff…

leetcode979. 在二叉樹中分配硬幣(dfs)

給定一個有 N 個結點的二叉樹的根結點 root,樹中的每個結點上都對應有 node.val 枚硬幣,并且總共有 N 枚硬幣。 在一次移動中,我們可以選擇兩個相鄰的結點,然后將一枚硬幣從其中一個結點移動到另一個結點。(移動可以是從父結點到…

python怎么顯示求余的除數_Python算術運算符及用法詳解

算術運算符也即數學運算符,用來對數字進行數學運算,比如加減乘除。下表列出了 Python 支持所有基本算術運算符。表 1 Python 常用算術運算符運算符說明實例結果加12.45 1527.45-減4.56 - 0.264.3*乘5 * 3.618.0/除法(和數學中的規則一樣)7 / 23.5//整除…

任務完成:我從CNC2018 GetAJob挑戰中學到的東西

什么是CNC2018? (What is CNC2018?) CNC2018 stands for the CodeNewbie Challenge of 2018 put on by CodeNewbie. If you haven’t heard of CodeNewbie, it’s a community and podcast run by Saron Yitbarek. They also host live Twitter Chats on Sundays a…

HTML td 標簽的 colspan 屬性

表格單元橫跨兩列的表格&#xff1a; <table border"1"><tr><th>Month</th><th>Savings</th></tr><tr><td colspan"2">January</td></tr><tr><td colspan"2">Fe…

Kotlin的Lambda表達式以及它們怎樣簡化Android開發(KAD 07)

作者&#xff1a;Antonio Leiva 時間&#xff1a;Jan 5, 2017 原文鏈接&#xff1a;https://antonioleiva.com/lambdas-kotlin/ 由于Lambda表達式允許更簡單的方式建模式函數&#xff0c;所以它是Kotlin和任何其他現代開發語言的最強工具之一。 在Java6中&#xff0c;我們僅能下…

Pyhon進階9---類的繼承

類的繼承 基本概念 定義 格式如下 繼承中的訪問控制 class Animal:__CNOUT 0HEIGHT 0def __init__(self,age,weight,height):self.__CNOUT self.__CNOUT 1self.age ageself.__weight weightself.HEIGHT heightdef eat(self):print({} eat.format(self.__class__.__name__…

python怎么備份列表_python實例:backup 備份

python實例&#xff1a;backup 備份本文來源于《python簡明教程》中的實例1. 提出問題&#xff1a; 我想要一個可以為我的所有重要文件創建備份的程序。2. 分析明確問題&#xff1a;我們如何確定該備份哪些文件&#xff1f;備份保存在哪里&#xff1f;我們怎么樣存儲備份&#…

leetcode1466. 重新規劃路線(dfs)

n 座城市&#xff0c;從 0 到 n-1 編號&#xff0c;其間共有 n-1 條路線。因此&#xff0c;要想在兩座不同城市之間旅行只有唯一一條路線可供選擇&#xff08;路線網形成一顆樹&#xff09;。去年&#xff0c;交通運輸部決定重新規劃路線&#xff0c;以改變交通擁堵的狀況。 路…

mysql數學函數名_Mysql數學函數

所有的數學函數在發生錯誤的情況下&#xff0c;均返回 NULL。-一元減。改變參數的符號&#xff1a;mysql> SELECT - 2;-> -2注意&#xff0c;如果這個操作符被用于一個 BIGINT&#xff0c;返回值也是一個 BIGINT&#xff01;這就意味著&#xff0c;應該避免在一個可能有值…

angular 漸進_如何創建具有Angular和無頭CMS的漸進式Web應用程序

angular 漸進by Ondrej Chrastina通過Ondrej Chrastina 如何創建具有Angular和無頭CMS的漸進式Web應用程序 (How to create a progressive web app featuring Angular and headless CMS) Have you ever wondered how a headless Content Management System fits in with Progr…

win10不用第三方工具激活的方法

步驟&#xff1a;1、本機上裝個win7旗艦版&#xff0c;這個得拿第三方工具激活一下&#xff0c;當然你如果已經購買了正版更沒問題了。第三方工具推薦那個啥啥loader&#xff0c;記住&#xff1a;chew_wga系列的暴力工具是不行的哦&#xff1b;2、把需要安裝的win10官方安裝鏡像…

CentOS 7 搭建 LAMP

一、安裝httpd 1、yum install httpd -y 2、啟動服務&#xff1a;systemctl start httpd 3、設置開機啟動&#xff1a;systemctl enable 二、安裝mariadb 1、yum groupinstall mariadb 2、啟動服務&#xff1a;systemctl start mariadb 3、設置開機啟動&#xff1a;systemctl e…