第64節 - Unity: Fonts, Traditional and Simplified Chinese Characters
這一節我會介紹Unity: Fonts, Traditional and Simplified Chinese Characters,則如何在Unity上顯示英文、繁體和簡體中文字。主要介紹以下內容:
1: Display Text Using Default Font (Arial) in Inspector
2: Display Text Using Default Font (Arial) in C# Script
3: Display Text Using Custom Font in Inspector
4: Display Text Using Custom Font in C# Script
1.0 Display Text Using Default Font (Arial) in Inspector
首先,第一個問題是Unity預設字體(Default Font)是Arial,但是我們可以成功顯示所有英文、繁體和簡體中文字,這是不是代表Arial字體支援英文、繁體和簡體中文字?
答案當然不是,Arial字體只支援英文字體和有關符號,當遇到不支援的字體時,電腦(例如: Windows 10)就會自動選擇內置的字體,智能電話一樣,當遇到不支援的字體時,智能電話(例如: 我的智能電話是Samsung Galaxy S6 Edge)就會自動選擇內置的字體。
1: Windows 10預設繁體和簡體中文字體是PMingLiU(新世名體)
2: Samsung Galaxy S6 Edge預設繁體和簡體中文字體是Noto Sans TC和Noto Sans SC
注意: 不同Windows版本和智能電話型號的預設字體會有所不同。

- Windows 10預設英文字體是Segoe UI。
- Windows 10預設繁體和簡體字體是PMingLiU(新世名體)。

- 在Windows 10左下⻆選擇Run。

- 輸入regedit。

- 選擇以上檔案。
- Windows 10預設繁體和簡體字體是PMingLiU(新世名體)。

- Samsung Galaxy S6 Edge預設英文字體是Noto Sans。
- Samsung Galaxy S6 Edge預設繁體和簡體字體是Noto Sans TC和Noto Sans SC。

- 大家可在Google Play下載任何File Manager App。

- 在system> fonts內就可以找到Noto Sans TC字體。

- 在system> fonts內就可以找到Noto Sans SC字體。
1.3 Display Text Using Default Font (Arial) in Inspector

- 建立一個新Project 。
- 建立一個新的Canvas Text - Text,再選擇Canvas。
- 在Text內輸入Happy New Year (Arial)。
- 設定Font = Arial。
- 設定Font Size = 100。
- 設定Color = Red。

- 建立一個新的Canvas Text - Text(1),再選擇Text(1)。
- 在Text內輸入新年快樂、新年快乐 (Arial)。
- 設定Font = Arial。
- 設定Font Size = 100。
- 設定Color = Yellow。

- 選擇File > Build Settings 。
- 選擇Android。
- 選擇Build。

- 當Build完成後,apk檔案就會建立,檔案大小是大約19M。
注意: 因為Arial字體都是在Android OS內內置,所以Arial字體是不須包括在apk檔案內。

- 當Build完成後,apk檔案就會建立,檔案大小是大約19M。
注意: 因為Arial字體都是在Android OS內內置,所以Arial字體不須包括在apk檔案內。

- 在system> fonts內就可以找到Arial字體。
1.4 Result

- Unity Console會選舉Windows 10內的Arial字體。
- Unity Console會選舉Windows 10預設繁體和簡體字體是PMingLiU(新世名體)。

- 如在File > Build Settings選擇Android,Unity Android (例如: Samsung Galaxy S6 Edge)就會自動選擇內置的Arial字體。
- Unity Android (例如:Samsung Galaxy S6 Edge)就會自動選擇內置的Noto Sans TC字體和Noto Sans SC字體。
2.0 Display Text Using Default Font (Arial) in C# Script
以下會介紹如何在C# Script內顯示預設的英文、繁體和簡體字體,如下圖:

- 建立一個新Project 。
- 建立一個新的Canvas Text - Text,再選擇Canvas。
- 設定Render Mode = Screen Space - Camera。
- 把Main Camera拖放到Render Camera內。
- 設定UI Scale Mode = Scale With Screen Size。
- 設定Reference Resolution = 800 x 600和平Screen Match Mode = Expand。

- 選擇Text。
- 在Text內輸入hkprogram.com。
- 設定Font = Arial,Font Size = 50。
- 把有關的C# Script拖放到Text內,則Add Component。

- 建立一個Text Reference - textRef。
- 用gameObject.GetComponent<Text>()方法把Text的Component存入textRef內。
- 設定textRef的顏色 。
注意: 設定顏可以用以上兩種方法。 - 設定textRef的內容。
3.2 Result

- textRef的內容會由hkprogram.com轉為Hello World!。
- textRef的顏色會轉為紅色。
3.0 Display Text Using Custom Font in Inspector
以下會介紹如何在Inspector內加入自選的英文、繁體和簡體字體,如下圖:

- 在Windows > Fonts內選擇KAIU字體。

- 在Assests區域內加入KAIU字體。

- 建立一個新Project 。
- 建立一個新的Canvas Text - Text,再選擇Canvas。
- 在Text內輸入Happy New Year (Arial)。
- 設定Font = Arial。
- 設定Font Size = 100。
- 設定Color = Red。

- 建立一個新的Canvas Text - Text(1),再選擇Text(1)。
- 在Text內輸入新年快樂、新年快乐 (KAIU)。
- 把KAIU字體拖放到Font內。
- 設定Font Size = 100。
- 設定Color = Yellow。

- 選擇File > Build Settings 。
- 選擇Android。
- 選擇Build。

- 大家可以在Unity >MyDemo64_2 > Assets內找到KAIU.ttf檔案,檔案大小是大約5M。

- 當Build完成後,apk檔案就會建立,檔案大小是大約22M。
注意: 當KAIU字體拖放到Font內,再當Build完成後,KAIU字體就會儲存在apk檔案內,所以大家要留意檔案的大小。
2.2 Result

- Unity Console會選舉Windows 10內的Arial字體。
- Unity Console會選舉Windows 10預設繁體和簡體字體是PMingLiU(新世名體)。
- Unity Console會選舉apk檔案內的KAIU字體。

- 如在File > Build Settings選擇Android,Unity Android(例如: Samsung Galaxy S6 Edge)就會自動選擇內置的Arial字體。
- Unity Android (例如: Samsung Galaxy S6 Edge)就會自動選擇內置的Noto Sans TC字體和Noto Sans SC字體。
- Unity Android會選舉apk檔案內的KAIU字體。
4.0 Display Text Using Custom Font in C# Script
以下會介紹如何在C# Script加入自選的英文、繁體和簡體字體,如下圖:

- 建立一個新Project 。
- 建立一個新的Canvas Text - Text,再選擇Camera。
- 設定Camera Orthographic Size = 600/2 = 300。

- 建立一個新的Canvas Text - Text,再選擇Canvas。
- 設定Render Mode = Screen Space - Camera。
- 把Main Camera拖放到Render Camera內。
- 設定UI Scale Mode = Scale With Screen Size。
- 設定Reference Resolution = 800 x 600和平Screen Match Mode = Expand。

- 選擇Text。
- 在Text內輸入hkprogram.com。
- 設定Font = Arial,Font Size = 50。
- 把有關的C# Script拖放到Text內,則Add Component,再把OLDENGL字體拖放到My New Font內。

- 建立一個Text Reference - textRef和Font Reference - myNewFont。
- 用gameObject.GetComponent<Text>()方法把Text的Component存入textRef內。
- 設定textRef的顏色 。
注意: 設定顏可以用以上兩種方法。 - 設定textRef的fontSize = 50。
- 設定textRef的font = myNewFont。
- 設定textRef的內容。
4.2 Result

- textRef的Font由Arial轉為OLDENGL。
- textRef的Font Size = 50。
- textRef的顏色會轉為紅色。
- textRef的內容會由hkprogram.com轉為Hello World!。