只加载当前语言对应的资源

如果游戏比较小, 也不追求极致, 不用考虑内存的话, 是可以不用考虑只加载当前语言对应的资源的.

但如果游戏比较大, 或内存有限的情况下, 往往都只需要加载当前语言对应的资源.

MyLocalization 本地化第一步通常就是创建本地化项并关联资源, 这些关联的资源, 如果不做处理的话, 会在它们的容器资源(StringTable 或 当前场景 或 LocalizationSetting预设)加载时, 同时被Unity自动加载到内存中去. 所以要做的是不要使用Unity默认的关联的资源方式的引用资源, 而是改用路径加载的方式去加载, 才能做到按需加载本地化项关联的资源.

若改成路径加载的方式, MyLocalization 就需要一个加载器, 来根据路径去加载所需资源, MyLocalization 不会去实现一个完备的加载方案供给用户去使用, 而是让用户自行选择或自行开发适合自己项目的加载方案.

所以 MyLocalization 提供一个加载器接口 IResLoader 供给用户去实现, 让用户赋予 MyLocalization 一个资源加载器.

有了资源路径和加载器, MyLocalization 即使不用Unity默认的关联方式,也能正常获得资源了. 不同的加载器同一个资源可能需要的资源路径不一样, 虽然它们都对应着同一个资源, 所以继承 IResLoader 接口的加载器还需要告诉 MyLocalization: 各个资源生成了什么样的资源路径并返回给 MyLocalization.

Last updated