ETH官方钱包

切換
舊版
前往
大廳
主題

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

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

先上展示影片,請比對下面的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
留言
追蹤 創作集

作者相關創作

更多創作