不知道是不是我的使用方式问题,本地化似乎有个 bug
直接把代码下载下来,没用导入包的方式,(导入包的方式没这个问题) 每次调用 FF8.Local.下的方法,都会创建新的 Localization模块,在F88.cs
public static Localization Local
{
get
{
if (_localization == null)//这里永远都会判定为空,然后新建一个新的
_localization = ModuleCenter.CreateModule<Localization>();
return _localization;
}
set
{
if (_localization == null)
_localization = value;
}
}
有什么提示吗? 1.创建游戏模块: Localization 2.Localization不是通过模块中心创建并控制(无法轮询Update),仅在编辑器下可以临时使用。 1才是正常创建,2是编辑器下可以临时使用
没有 2,启动游戏的时候5/8/2024 12:57:15 AM[模块日志]创建游戏模块: Localization 然后各种打印是关于初始化多语言的,获取本地化表格成功!之类的 手动调用 string text1 = Localization.Instance.GetTextFromIdLanguage("test",FF8.Local.CurrentLanguageName); 然后再次提示 AM[模块日志]创建游戏模块: Localization [error]模块 F8Framework.Core.Localization 实例已创建。 每次手动调用都会重复上面这些(就是再次创建)
我的方式是直接把代码下载下来放到项目里,没有使用包管理器导入
静态的变量没有清理,可能是项目开了热重载,快速重载脚本之类的。
应该没有,unity 设定是默认的,没有修改Reload Domain 之类的设定
可恶,应该是我这里的问题,还要查查,一个项目没问题,一个项目有这个问题
哈哈哈哈哈哈啊哈哈哈哈哈我找到这个bug了,就挺尴尬的,我的本地化表,如果有id,但是没内容其实会出现这个问题 Localization.LoadSuccess方法里,这个 bug 就挺尴尬的,我觉得不应该这样,如果策划手贱拉了一列
我觉得这样会好点,兼容性好点 foreach (var item in tb.Values) { if(item.TextID == null) { continue; } .... }
666这也能找到😄晚点改了
已修复 1.0.5 本地化表TextID可为空
顺便问个问题,我发现打开了本地化Excel的话,启动项目是被报错的,所以是直接读取了 Excel 文件,是否有不直接读取Excel,直接手动点击导出的方式,因为有时需要看着 Excel 来改东西
我想了下,确实没必要实时监控本地化表