Unity教學第三篇,這篇我們要講動畫和音效
建議先看過前兩篇
本篇分成2個小節:
1. 爆炸動畫製作
2. 音效和背景音樂
1. 爆炸動畫製作
先講爆炸的動畫
用小畫家開一個50 X 200像素的區域
每50像素畫一個爆炸的連環圖
畫好之後,存成PNG檔
拖曳到Asset中
點一下Explode,在Inspector的頁面裡
Sprite Mode選Mutiple
如果把很多圖片放在一張圖裡,就要選Multiple
然後按Sprite Editor
Sprite Editor按下去後
會出現一個新的視窗
1. 按左上角的Slice,會出現一個小選單
2. Type選Grid(格狀),Pixel Size的X和Y都設50 (新版是Grid By Cell Size)
3. 按下面的Slice(裁切)
然後我們就會看到圖片被切成4份了
1. 按Apply(使用)
2. 按X離開
按Explode旁的小三角型,會跑出我們切割的四個圖片
用Ctrl + 滑鼠左鍵,選取這四個圖片(變成藍底色)
一起拖曳到Hierarchy底下,會自動產生動畫
然後就會出現一個視窗,問你這個動畫要存成什麼名字
輸入explode,按存檔
會出現三個新的東西
1. Explode_0的物件
2. explode的動畫
3. Explode_0的動畫控制器
這三者的關係是,物件底下有動畫控制器,控制器底下有動畫
點一下explode動畫
把explode動畫底下的Loop time打勾取消
這樣動畫才不會一直重複播放
我們把Hierarchy底下的Explode_0物件改名成ExplodeObject
然後在ExplodeObject物件底下
加入程式描述
自訂一個新的function,取名為AnimationEnd
注意不是放在update的大括號內喔
void AnimationEnd()
{
Destroy (gameObject); //消滅物件
}
這個function我們等一下會用到
Window → Animation
開啟Animation視窗
1. 點一下ExplodeObject選擇動畫
2. 點Add Event. 加入新的事件
3. 把Event的小箭頭拉到第五格,我們會看到他顯示No Function Selected
也就是還沒選擇Function的意思 (新版會出現在Inspectors那個視窗裡)
4. 點兩下Event的小箭頭,就會出現選單
選擇我們剛剛自訂的AnimationEnd()
新版的Event會出現在Inspectors那個視窗裡
選了之後,我們會看到他顯示AnimationEnd()
然後我們把ExplodeObject拖曳到Asset底下
我們不需要爆炸一開始在場景裡
把Hierarchy底下的ExplodeObject刪掉
打開之前的外星人程式描述 (Invader.cs)
在開頭加上
public GameObject explo; //宣告一個名為explo的物件
然後在碰撞事件底下加入
Instantiate(explo,transform.position,transform.rotation); //在外星人的位置產生爆炸
if (col.tag == "Ship") //如果碰撞的標籤是Ship
{
Instantiate(explo,col.gameObject.transform.position,col.gameObject.transform.rotation);
//在碰撞物件的位置產生爆炸,也就是在太空船的位置產生爆炸
}
寫好之後存檔,我們就會看到外星人的程式底下多了Explo的空格
把ExplodeObject拖曳到空格中
存檔後按Play
成功的話,就會看到爆炸的動畫了
2. 音效和背景音樂
接著,要加入音效和音樂
我們去素材商店(Asset Store)找音效吧!
Window → Asset Store
Asset Store裡有很多超酷超炫的素材
音樂音效、2D圖片、3D人像、3D場景等
其中有一些是免費的,有空的話一定要逛一下!
按左上角的Log in,登入Unity的開發帳號
搜尋 "Free 8bit Game Sound Effect Package"
然後點擊進去,這個是免費的音效
Download然後Import
我們不用Import全部的檔案
我選了explosion0作為爆炸聲,shot3當作雷射聲
勾選這兩個就好,然後Import
當然你也可以全部Import,聽聽看不同的聲音
或是下載其他免費資源來用
Import之後,Asset底下會出現一個新的資料夾
裡面有剛剛勾選的explosion0和shot3
把這兩個檔案拖曳到Asset的資料夾裡
然後在LaserObject底下加入Audio元件
選Audio Source(聲音來源)
把shot3音效拖曳到AudioClip的空格
同樣的,我們在ExplodeObject底下加入Audio Source
然後把explosion0的音效拖曳到AudioClip的空格
存檔後Play,應該就能聽到音效了
接著找音樂
1. 右邊選單選Music
2. PRICE按價格排列
3. 找一個8-bit Action Free
也可以直接搜尋 " 8-bit Action Free "
我選了Aggressive1當作背景音樂
把要用的音樂拖曳到Asset中
1. Background底下新增Audio Source
2. 音樂拖曳到AudioClip的空格
3. Loop打勾,就會重複播放
4. 刪除不要的音樂,當然你也可以移到其他資料夾保留他們
存檔後Play,享受你的遊戲吧!
下一篇,我們會講解介面和遊戲機制
前往下一篇
想要了解程式的觀念,請參考 初學者如何建立程式的觀念(Scratch教學)