Unity Dear ImGui - 追加中文字體教學
2025-02-17 21:27:51

在使用 UImGui 時,預設是不支援中文的。若需要在介面上顯示繁體中文,就需要為 Dear ImGui
指定一個支援中文的字型檔。以下將示範如何下載並加入 Noto Sans TC,讓我們的 Dear ImGui 視窗能正確顯示繁體中文文字。
1. 下載 Noto Sans TC 字型
- 前往 Google Fonts - Noto Sans TC。
- 點擊 Download family 下載字型壓縮檔。
- 解壓縮後,你可以看到多種不同字重的
.ttf檔案,例如:NotoSansTC-Regular.otf或NotoSansTC-Bold.otf。
這裡以
NotoSansTC-Regular.otf為例。
2. 將字型放入專案
- 在 Unity 專案中,建立或找到
Assets/StreamingAssets資料夾(若不存在,請自行建立)。 - 將
NotoSansTC-Regular.otf複製到Assets/StreamingAssets資料夾中。
注意:
StreamingAssets資料夾可以在打包後被正確帶入,並維持原有的檔案路徑,方便我們在程式中透過Application.streamingAssetsPath取得。
3. 新增自訂字體初始化程式
建立一個 ImguiCustomFont 腳本,用於初始化中文字體,程式碼範例如下:
1 | using ImGuiNET; |
fontPath: 利用Application.streamingAssetsPath取得 StreamingAssets 內的字型檔路徑。AddFontFromFileTTF: 從檔案路徑讀取.ttf或.otf字型,並指定字型大小。GetGlyphRangesChineseFull(): 使用 Dear ImGui 內建的中文字形範圍,讓繁體中文能正確顯示。
4. UImGui 設定
- 在場景中找到
UImGui元件,或自行建立一個新的 GameObject,並加入UImGui元件。 - 在
UImGui組件的 Font Atlas Configuration 區塊中,將 Font Custom Initializer (ImGuiIOPtr)
設定為你剛剛建立的ImguiCustomFont.AddChineseFont方法。- Runtime Only:在執行時載入字體
- ImGui Custom Font:指向
ImguiCustomFont腳本物件中的方法
在某些版本的 UImGui 中,介面可能略有不同,但主要流程是一致的:把自訂的字體初始化方法掛在 UImGui 的字體設定位置。

5. 測試與驗證
- 進入 Play Mode 後,Dear ImGui 會在初始化階段讀取並載入
NotoSansTC-Regular.otf字型。 - 你可以在自定義視窗中輸入繁體中文,或在程式碼中顯示中文字串,以驗證字體是否正常顯示。
範例程式碼:
1 | using UImGui; |
若字體沒有正常載入或顯示,請確認路徑是否正確、StreamingAssets 資料夾是否存在,以及 UImGui 的 Font Atlas 設定是否正確。
