創作內容

37 GP

【專案日誌】山鴉行動 UI導航、語言切換 9/17

作者:迷茫小呈│2021-09-17 21:13:31│巴幣:172│人氣:408
e04 9月也過一半了
遊戲主畫面的 UI 這周來了,於是又開始修修修

首先是 UI 導航
原本想到了一個新的做法打算砍掉重寫一個,但試了半天才發現 Unity SerializeField 和 interface 的搭配...沒辦法搭配,所以放棄做新的,就去把舊的導航程式重構了一遍,新版的等完成專案後在研究吧

UI 導航,能用滑鼠或鍵盤控制。


重弄了更好的編輯視覺化,舊版用 Debug 畫出來的線太細了,看的很吃力,所以這次改用 Handle.DrawBezier 畫,能自己調粗細。




還有新增了幾個選項 - 移動至導航紀錄、備用導航和脫離導航。
導航至紀錄就是字面意思,他不是導航到指定物件上,而是過去的紀錄,如果導航的入口不只有一個就適合用 (左上設定按鈕的橘線就是導航至紀錄)。



備用導航...也是字面意思,我把導航物件上加了個 navigable 的變數,如果嘗試移動到目標的時候對象的狀態是不可導航的,那就會嘗試去找備用連結的目標,如果備用也不可導航就繼續類推,直到找到(或找不到)目標。

這樣就能避免用一堆變數決定導航條件ㄌ,要擔心的就是備用連結可能無限遞迴,自己多注意ㄅ

然後脫離導航就是停留物件變成 unnavigable 的時候連向的目標。




語言切換
因為會有文本翻譯的要求,所以做 UI 的時候就連著一起完成了,省的之後麻煩。功能做出來了但還沒完全實裝。


從 Hugo 那裏得到的靈感,我用改路徑的方式來切換文本


為了方便我從編輯器裡設定,我弄了一個文本令牌的 ScriptableObject 當作仲介,只要放入其中一個語言的文本就會自動產生出路徑模板。如果要物件要儲存自己的文本的話,直接放文本令牌就好。



在遊戲初始化的時候 Manager 就會根據語言切換關鍵字,把讀取到到的 TextAsset 存入 ScriptableObject。需要文本的物件直接和令牌物件拿就好,不用接觸到 Manager,完美封裝語言系統 !

唯一的缺點就是為了防止 Json 實時轉換的開銷,所以令牌會在 Manager 輸入文本的時候就先完成轉換,但 ScriptableObject 沒辦法搞泛型,所以 Json 轉換後只能用 object 儲存。能避免 object 我是想盡量避免啦,但暫時找不到替代方案

就醬
趕工一周完成兩個系統和主畫面 UI,以及一大堆 BUG
雖然 Unity 就有內建的導航、而且語言插件也不少,但...我就造輪子 :P


今天下午打了 AZ,趁副作用還沒出來趕快生出日誌
六日兩天會不好過了


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5268314
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:Unity|遊戲開發|山鴉行動

留言共 4 篇留言

ays.
弱弱的想問一下, 要處理 navigation 是因為你的 UI 可能是用手把/鍵盤操作, 不是單純的靠滑鼠or點擊的關係嗎?

09-18 14:36

迷茫小呈
4 ,因為遊戲本身控制是用鍵盤,但UI只能滑鼠很怪,所以讓 UI 也支援鍵盤操作[e19]09-18 14:39
ays.
原來如此, 感謝大大的回覆 <(_ _)>

09-18 14:41

迷茫小呈
[e5]09-18 14:41
千羽
遊戲越來越完整了(・∀・)

09-18 14:45

迷茫小呈
度,辛苦ㄌ一年多[e1]09-18 14:53
來自異世界的巨大起司
這UI的互動效果好棒[e38]

09-18 19:52

迷茫小呈
湯瀨大大做的 UI ,感謝湯瀨,讚嘆湯瀨[e7]09-18 21:20
我要留言提醒:您尚未登入,請先登入再留言

37喜歡★angus945 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【學習日誌】把物體投影到... 後一篇:【閒聊】事隔一年,又回到...

追蹤私訊切換新版閱覽

作品資料夾

ilove487奇幻小說 連載中
[達人專欄] 《克蘇魯的黎明》0319.夜深了看更多我要大聲說昨天09:47


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】