最近在開發的一款小遊戲裡面會使用到對話系統,在問了AI之後找到了Dialogue這個對話系統,後來查資料發現這樣的系統似乎常常被使用到,彈性非常高,使用起來也非常方便。Unity Pakage 本來就有這個插件可以用,但因為AI有直接生腳本給我,就直接拿來用了。
我查到的延伸應⽤
- 分⽀對話(對話可根據玩家選項改變⽅向)
- 語⾳與表情同步
- 多語系系統(Localization)
- 整合劇情事件(例如在對話中觸發 Camera Shake、⾓⾊移動等事件。)
簡單介紹一下Dialogue運作原理
基本由 DialogueData \ DialogueNPC \ DialogueUI 三支腳本控制,流程如下:
玩家靠近 NPC → 觸發 DialogueNPC 對話 → 開啟DialogueUI 並讀取 Data 及 NPC的內容顯⽰在對話框 → 玩家按下⼀步⾄對話結束 → 關閉對話框、恢復控制
如何使用
腳本
基本的三個腳本分別是Data(管理對話框內有的物件,如NPC名稱、圖片、對話內容等等,不需掛載在任何地方)、NPC(掛載在NPC身上,負責開關對話流程,紀錄NPC的資訊)、UI(管理對話框UI、打字效果、讀取資料來顯示在對話框),程式碼的筆記我放在最後一行 腳本可以根據需求增減,我只有寫到基本的功能
Inspector

基本會需要玩家、NPC以及對話框UI
- 玩家記得上Player的個Tag
- NPC掛載DialogueNP的腳本,以及 E提示(Active的勾勾要取消勾選)
- UI根據需求加入,並將DialogueUI掛載在對話框這個Panel上
Hierarchy

- 在NPC的Hierarchy視窗裡面可以看到掛上NPC的腳本後,多了這些東西,可以自由填寫想要的內容了。另外記得掛載 Box Collider 並勾選 Is Trigger
- UI掛載DialogueUI後拉入對應的物件就好,其他不需要設置
程式碼看這邊
如有任何錯誤歡迎指正!












