2015年5月22日 星期五

【Unity】PlayerPrefs存取中文字

這次要提的是PlayerPrefs存取中文字的問題,用的方法有一點鑽漏洞但並不複雜。
PlayerPrefs.SetString是Unity內存取字串的語法,但是過幾次後發現有些中文字因為編碼的問題在GetString會抓到空白字串,如果中文字串是製作方能自己設定就繞個彎避開就好,但可以讓玩家設定的情況就需要找個方法解決了。
自己查了一下,常見的建議方法多半是將中文字轉成編碼,將編碼存下來,讀取的時候再轉換回來。
所以重點在中文字的編碼轉換,於是找到了這一篇:
http://game.ceeger.com/forum/read.php?tid=5897&fid=2&page=1

文中6樓的將中文字轉換成網址編碼來存取,也就是:
PlayerPrefs.SetString ("playerName", WWW.EscapeURL(inputName));//存檔
playerName = WWW.UnEscapeURL(PlayerPrefs.GetString ("playerName"));//讀檔

不過問題點也是文中其他樓提到的字串長度翻倍。


既然如此就來試試看:
PlayerPrefs String

輸入字串後按下確定後存字串,重新執行讀取字串後顯示在畫面上,另外輸出編碼在Console中。
兩個字:
PlayerPrefs String

六個字:
PlayerPrefs String

九個字+兩個標點符號:
PlayerPrefs String

十五個字+兩個標點符號。
PlayerPrefs String


接著是android的環境測試:
PlayerPrefs String

PlayerPrefs String

PlayerPrefs String

PlayerPrefs String

大致上就是這樣,測試的方向有一點隨便,也沒有什麼結論,就是個在自己的case中是個堪用的方法,既然查到就分享出來,總之這次就到這裡。

背景圖:
ヴィントドルフ:http://winddorf.oops.jp/1top.htm

沒有留言:

張貼留言

【自製小遊戲】水平思考猜謎(海龜湯)

遊戲連結 海龜湯的玩法是由出題者提出一個難以理解的事件,參與猜題者可以提出任何問題以試圖縮小範圍並找出事件背後真正的原因。但出題者僅能以「是」、「不是」或「沒有關係」來回答問題。 本遊戲蒐集各種論壇、平台的42個題目,提供給想玩海龜湯卻愁找不到題目的你們。 ...