設定Area物件
把Area腳本加到Area物件上,並設定該Area的編號(Num)。
設定角色物件A
把SimpleMovement、RoleObj、TalkBehav腳本加到A物件上,並設定RoleObj所在的物件的身分(Role)為何。
設定角色物件B
把RoleObj、TalkBehavNPC腳本加到B物件上,並設定RoleObj所在的物件的身分(Role)為何。
設定PlayerProgress物件
把PlayerProgress腳本加到Progress物件上,並設定遊戲有甚麼任務或事情(Name)。
設定DialoguesManager物件
把DialoguesManager腳本加到DialoguesManager物件上。
將從腳本元件的上方往下一一進行各個欄位的說明:
- AreaDialogues串列的右側欄位可以設定有多少個Area會有對話。
- AreaDialogues的每個串列元素(Element)可以藉由設定AreaNum欄位來決定此元素,或說區域的對話是哪個Area的。
- AreaDialogues的每個串列元素可以藉由設定其中的Dialogues串列的右側欄位來決定該Area有幾個對話。
- 再來就可以設定”進行對話的先決條件(Task Conditions)”,Task Conditions串列的右側欄位可以設定有多少個條件。
- Task Conditions的每個串列元素可以設定Task Index欄位決定是PlayerProgress的哪個Task;再設定Is Task Compelete欄位決定這個Task是完成了還是沒有完成的狀態下,才能觸發對話。
- 接下來設定”要說甚麼”跟”誰說”,也就是對話的文字內容,Sentences串列的右側欄位可以設定有多少個句子。
- Sentences可以設定
- Speaker:決定是誰說的。
- Text:決定這個人要說甚麼。
測試看看
之後按下執行按鈕,就可以看到對話系統是能夠正常運作了。
然而,使用下來會發現一些問題,像是:
- 沒有辦法顯示中文字
- 介面使用起來,不是那麼好用
- 對話結束後,觸發事件要怎麼做
- 如果希望對話可以在角色進到範圍內,就直接觸發要怎麼做
以上提到的這四項問題,將會在接下來的文章中一一解決。
系列文章
《Carto》實作對話系統01-前言
《Carto》實作對話系統02-建立遊戲所需物件
《Carto》實作對話系統03-建構程式
《Carto》實作對話系統05-當TextMeshPro沒有辦法顯示中文
《Carto》實作對話系統06-改善對話系統的操作介面
《Carto》實作對話系統07-加入對話結束後會觸發的事件
《Carto》實作對話系統08-當條件滿足時,不用按按鍵,可以直接觸發的對話