各位大家好,
我碰到了一个奇怪的问题。但是当我导出我的 Unity 项目,并在一个新的项目中导入时会出现这个问题。
具体步骤如下:
- 我导出了我的项目(以包形式导出),这个包里包括:
- 所有的本地化表(GameText)
- 所有的语言 / 地域
- 本地化设置
- 但是,我并没有导出 Addressables 设置。
- 在新的项目中,我重复设置了以下步骤:
- 在 Edit → Project Settings → Localization → Add All 菜单中添加了所有的语言
- 打开 Addressables 窗口:Window → Asset Management → Addressables
- 将所有的本地化表添加到 Default 组中
- 使用 New Build → Default Build Script 构建 Addressables
缺点如下:
- 在 本地化窗口中,表格和键都可见
- 在 运行时,游戏显示的是键而不是翻译过的文本(例如 level_button)
- 本地化表格窗口显示了 1000+ 个错误
错误示例
AddressableEntryNotFoundException:GameText_en 未找到 Addressable 资源。
UnityEditor.Localization.LocalizationEditorSettings.GetPreloadTableFlagInternal (UnityEngine.Localization.Tables.LocalizationTable table) (at ./Library/PackageCache/com.unity.localization@2baf2a27280b/Editor/Settings/LocalizationEditorSettings.cs:736)
UnityEditor.Localization.LocalizationEditorSettings.GetPreloadTableFlag (UnityEngine.Localization.Tables.LocalizationTable table) (at ./Library/PackageCache/com.unity.localization@2baf2a27280b/Editor/Settings/LocalizationEditorSettings.cs:319)
UnityEditor.Localization.LocalizationTableCollection+<>c.b__36_0 (UnityEngine.LazyLoadReference1[T] tbl) (at ./Library/PackageCache/com.unity.localization@2baf2a27280b/Editor/Settings/LocalizationTableCollection.cs:226) System.Collections.Generic.List1[T].TrueForAll (System.Predicate`1[T] match) (at :0)
UnityEditor.Localization.LocalizationTableCollection.IsPreloadTableFlagSet () (at ./Library/PackageCache/com.unity.localization@2baf2a27280b/Editor/Settings/LocalizationTableCollection.cs:226)
UnityEditor.Localization.UI.LocalizationTablesWindow.TableCollectionSelectionChanged () (at ./Library/PackageCache/com.unity.localization@2baf2a27280b/Editor/UI/Tables/LocalizationTablesWindow.cs:265)
UnityEditor.Localization.UI.LocalizationTablesWindow.OnTableContentsIMGUI () (at ./Library/PackageCache/com.unity.localization@2baf2a27280b/Editor/UI/Tables/LocalizationTablesWindow.cs:297)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at /Users/bokken/build/output/unity/unity/Modules/UIElements/Core/IMGUIContainer.cs:407)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&) (at /Users/bokken/build/output/unity/unity/Modules/IMGUI/GUIUtility.cs:224)
情况如下:
- 表格存在
- 鲜艳的键存在
- 语言存在
- 但是, 本地化在 运行时并不解析
问题是:
在 移动项目、设置 Localization 和 Addressables 后是否缺少了额外的设置步骤?
任何帮助都将大有干系
我也创造了一个 Unity 论坛的帖子。
评论 (0)