Unity Game Development
第10話 音效系統&匯出與上傳遊戲
Lecturer:水獺
目錄(可點(嗎?)
本堂課內容
本堂課內容
音效系統
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365428/309542.png)
讀取音效
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365428/309542.png)
先去網路上找一個音效檔
本堂課會用雷射發射的聲音做示範
之後在Project視窗、Assets資料夾裡創一個資料夾Audio放音效檔
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365782/pasted-from-clipboard.png)
讀取音效
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365428/309542.png)
接著切到你想要這個音效發出的Scene
檢查這個Scene的Camera上是否有Audio Listener Component
沒有的話在Camera上Add Component --> Audio Listener
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365856/pasted-from-clipboard.png)
讀取音效
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365428/309542.png)
然後在你想要發出聲音的GameObject或它的Prefab(如果有)上
Add Component --> Audio Source
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365869/pasted-from-clipboard.png)
讀取音效
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365428/309542.png)
再來回到剛剛的音檔資料夾
把音檔拖進「AudioClip」框框裡
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365874/pasted-from-clipboard.png)
讀取音效
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365428/309542.png)
講一下AudioSource
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11366763/pasted-from-clipboard.png)
音檔資源
預設是把音訊輸出到Audio Listener,這裡可以改成輸出到Audio Mixer
聲音播放時是否靜音
如果有Filter的話繞過(一次關閉所有Filter效果)
如果有Listener Filter的話繞過(一次關閉所有Filter效果)
如果有Reverb Zone的話繞過(一次關閉所有效果)
是否在物件生成時播放
是否重複播放
設定此音訊相較其他音訊的優先程度(0:最優先、不會被蓋掉;256:最後考慮)
設定此音訊之音量(1最大、0最小)
設定因為音訊速度而導致的音高變化量(預設1)
設定聲音在耳機或喇叭中聽起來偏向左/右側
跟3D有關(不細講)
混響(reverb)設定(不細講)
跟3D有關(不細講)
讀取音效
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365428/309542.png)
再來回到剛剛的音檔資料夾
把音檔拖進「AudioClip」框框裡
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365874/pasted-from-clipboard.png)
發出音效
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365428/309542.png)
開始寫程式!
因為我的目的是要讓音效在雷射生成時發出聲音
所以其實直接勾Play On Awake就行了
但我還是寫一次在Start裡給你們參考
如果要讓角色在跳躍或做其他動作時有音效
則寫在對應的函式或判斷式裡
但注意一定都要有一個AudioSource才能播放聲音
發出音效
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365428/309542.png)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class STLMove : MonoBehaviour
{
[SerializeField] AudioSource audioSource; //這個一定要加,AudioSource的參考
Vector3 movement;
float time = 0;
[SerializeField] float speed = 5;
void Start()
{
movement = new Vector3(0,1000,0);
audioSource.Play(); //對播放音效就是這麼簡單
}
void FixedUpdate()
{
time += Time.deltaTime;
if(time > 0.5f){
Destroy(gameObject);
}
Move();
}
void Move(){
transform.Translate(movement*Time.deltaTime*speed);
}
}
發出音效
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365428/309542.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11365943/pasted-from-clipboard.png)
之後把AudioSource拖進SerializeField框,就完成了
本堂課內容
本堂課內容
匯出與上傳遊戲
Build(匯出)
左上角File --> Build Settings
點開應該長這樣
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11366889/pasted-from-clipboard.png)
在Build排程中的Scene(s)
包括會被Build出來和不會
平台
一些其他的設定
Build或Build+運行
Windows
如果你的專案需要在本機才能跑(言下之意就是WebGL有問題且解決不了)就用這個
Windows
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11366889/pasted-from-clipboard.png)
有勾起來代表會被Build到最後的執行檔中
等等說
可以調Intel 64bit或32bit(沒有AMD)
建立VS可以讀的Build Data File,使專案可以直接在VS裡被Build
開發者匯出模式(預設未啟用,啟用後才可勾選下面三個選項)
壓縮資源的方式(不用改
是否啟用分析資訊儲存器
是否啟用深度分析
是否在匯出之執行檔執行時若有錯誤直接Log出錯誤訊息
Windows
講一下Player Settings
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367041/pasted-from-clipboard.png)
遊戲公司名稱(自訂)
遊戲專案名稱(自訂)
遊戲專案版本(自訂)
遊戲應用程式Icon(自訂)
遊戲內鼠標(自訂)
可以自訂更多大小的Icon
視窗模式(全螢幕、視窗全螢幕、最大視窗、視窗)
視窗(全螢幕的話則是遊戲畫面)長寬
是否將視窗(全螢幕的話則是遊戲畫面)設為螢幕解析度(不建議,很可能跑版)
視窗是否可自訂大小
可以先按Build然後選一個資料夾(空的)匯出一波
Windows
之後你會看到這樣
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367133/pasted-from-clipboard.png)
開啟「專案名.exe」就可以在本機運行遊戲了
WebGL
是把專案上傳到itch.io要用的Platform(推薦)
WebGL
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367074/pasted-from-clipboard.png)
Platform選WebGL
右下按Switch Platform
WebGL
基本上跟前面一樣
只是開啟Development Build之後在網頁上執行時只要有錯就會直接Log出來(不可選)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367089/pasted-from-clipboard.png)
WebGL
一樣講一下Player Settings
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367158/pasted-from-clipboard.png)
遊戲畫面寬
遊戲畫面高
三種模板
(Default:基本,在灰底上會有載入條;
Minimal:最小、輕量化;
PWA:類似於瀏覽器中可執行的APP)
個人還是會用Default
WebGL
之後按下Build
你會得到:
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367189/pasted-from-clipboard.png)
全選之後右鍵壓縮得到一個壓縮檔
WebGL
之後去到itch.io然後註冊或登入
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367194/pasted-from-clipboard.png)
WebGL
右上角頭像點一下
選Upload new project
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367199/pasted-from-clipboard.png)
WebGL
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367204/pasted-from-clipboard.png)
專案名稱(標題)
專案網址(會自動生成)
到訪簡介(可選)
遊戲類型
專案種類(選HTML)
發布狀態(發布、正在開發、暫停開發、取消計畫、草案)
WebGL
是否要錢(選否)
在這裡上傳壓縮檔
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367208/pasted-from-clipboard.png)
遊戲細節描述
WebGL
更改檔案顯示名稱
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367213/pasted-from-clipboard.png)
可在那些平台上執行
是否在瀏覽器中遊玩(勾選)
是否隱藏此檔案並使其不可被下載
WebGL
遊戲分類
遊戲tag
遊戲在某些商店中的連結(無)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367218/pasted-from-clipboard.png)
WebGL
不可添加評論
可開版討論
只有作者可見
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367224/pasted-from-clipboard.png)
可添加評論
只有作者&被作者認證過的人可見
對所有人可見
記得按儲存
WebGL
大功告成!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/11367245/pasted-from-clipboard.png)
Q&A&DO
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2335947/images/10707371/62e131df7fe3599fdd46ecb3.png)
建北電資Unity遊戲開發小社第10堂
By MH Yang
建北電資Unity遊戲開發小社第10堂
- 53