我已经使用repo为我的统一游戏制作了一个 android 插件,其中我在每个级别奖励玩家一些贴纸。所以基本上我成功地从android插件调用了添加贴纸功能,并且可以根据所需的标识符和名称添加贴纸包。(这里的 contents.json 已经在 aar 中了。)
但是因为我现在需要编辑 contents.json(我们不能修改 .aar 文件)所以我复制资产文件内容签出内容提供程序代码https://pastebin.com/urhXTs7z
现在 contents.json 在我的Android/data/packagename/files/
在 Unity 中,我反序列化并序列化该 json,然后将项目添加到贴纸包列表中。然后覆盖contents.jsonif (Application.platform == RuntimePlatform.Android)
{
System.IO.File.WriteAllText(Application.persistentDataPath + "/contents.json", contents);
}
它适用于原始contents.json,但更新stickerpack后,ReadContentFile
函数不会读取新项目但这不起作用,插件只是读取原始contents.json。(因为在 OnCreate 中调用了复制资产,所以我尝试使用 android 的 sharepreferences 仅调用一次 copyassets 函数。但后来我的应用程序崩溃了。)
我在这里找到了有类似问题的人:https ://github.com/WhatsApp/stickers/issues/340 但我不知道该怎么做。
我什至不知道当代码在插件中时是否可以动态处理贴纸添加。
请参考 pastebin 链接中的代码
希望对替代方法提出任何建议。