启用 IResLoader 子类

MyLocalization 需要在Unity Editor 模式下和游戏运行模式下都需要加载资源,或转换资源路径, 所以需要在两个时机点给 MyLocalization 赋值 IResLoader 子类:

  1. C# 代码编译后需要立刻赋值

  2. 游戏刚启动后需要立刻赋值

C# 代码编译后, 会调用添加 UnityEditor.Callbacks.DidReloadScripts 标签的方法. 如 ResourceLoader 中的AutoAssign 方法:

#if UNITY_EDITOR && Using_ResourceLoader
        [UnityEditor.Callbacks.DidReloadScripts(200)]
        public static void AutoAssign() {
            LocalizationSetting.loader = new ResourceLoader();
        }
#endif

参照此代码在用户实现 IResLoader 接口的子非静态类中添加类似代码即可.

游戏刚启动后, 在某一个立刻会执行的 MonoBehaviour类的Awake 方法中 LocalizationSetting.loader = new XXXLoader(); 赋值即可. (可参考 Demo 中的 ReLoaderSetter.cs 类写法和使用方式也行)

(必要时调整一下代码运行顺序, 将赋值的类的运行顺序调得更加靠前.)

Last updated