切換
舊版
前往
大廳
主題

【Unity 腳本製作】用程式碼打劇本,自製tag語言

%%鼠 拒收病婿 | 2020-10-31 04:42:26 | 巴幣 18 | 人氣 482

先上展示影片,請比對下面的tag文本。


說明:
用<select>創選單,<opt>代表選項。
在影片中我先選"設定a=2",接著進行if判斷。
再執行一次,這次我選設定a=1,與上次不同的是,最後一行的if內容就不會執行到。

基本語法規則可以參考我上一篇日誌

"set"宣告的變數是用字典存放,有在考慮要不要創個類別多紀錄個變數類別,然後在文本這邊定義,不然目前都要判斷是文字還是數字。
若變數是"temp_"開頭,則存在暫時字典,讀完文檔後會清空。其他則存放在另一個static字典,可以寫個存檔腳本去存,記得字典要用二進位存,json不能。

if 用來判斷set設定的變數。


主要regex跟拆巢狀的功能都放在 RPG Core ,(if比較也寫在裡面)
解讀並控制UI的功能放在 Reader

拆解巢狀tag的概念我上一篇有提到,最開頭的regex使用,可以把文本的tag按照順序印出。

接著用迴圈解析

Line是我的自訂類別,跟上次不同的是: 我新增了變數startLine去紀錄上一層的位置,變得像是鏈結串列的概念。 多紀錄開頭是因為巢狀內容的最後一行跑完後,應該要轉回巢狀的開始,並從該位置的endline+1繼續讀。


讀取下一行時,判斷自己是不是巢狀內容的最後一行:


比較燒腦的是判斷 if的 || (or) 和 && (and)運算,不知道這樣的邏輯有沒有錯,至少測試到現在還行。


其他就只剩拆拆arg的內容而已囉!


雜談:
目前還是個80%的半成品,之後除了自己遊戲會用到外,想說做完後看看有沒有朋友想試用看看,或做個小對話解謎demo遊戲。主要是看還缺少什麼功能或tag,就邊用邊擴增吧~

雜談2:
如果週末沒產進度,就用這篇讓我抵免這周的遊戲周更吧!!  (x


送禮物贊助創作者 !
0
留言

創作回應

悠閒紅茶
嗯,看不懂(會寫程式碼的果然都是怪物
2020-10-31 05:28:10
%%鼠 拒收病婿
寫完之後一部分的東西我也看不懂w
2020-11-02 01:10:53
御安鴨·摸頭害鴨哭
我現在還在思考爲什麼我一跳躍就穿模了
2020-10-31 07:22:27
%%鼠 拒收病婿
太快了(x
2020-11-02 01:11:16
樂小呈
完全看不懂[e12]
2020-10-31 08:49:13
%%鼠 拒收病婿
邏輯的地方我自己寫完也看不是很懂XD
2020-11-02 01:12:54

更多創作