我已经使用repo为我的统一游戏制作了一个Android插件,其中我在每个级别上奖励了一些贴纸给玩家。因此,基本上,我成功地从android插件调用了添加贴纸功能,并可以根据所需的标识符和名称添加贴纸包。 (这是contents.json,已经在aar中了。)
但是,由于我现在需要编辑contents.json(我们无法修改.aar文件),因此我复制资产文件内容签出内容提供商代码https://pastebin.com/urhXTs7z
现在contents.json在我的Android/data/packagename/files/
从Unity我反序列化并序列化该json,然后将项目添加到贴纸包列表中。然后覆盖contents.json if (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链接中的代码
很乐意提供任何其他替代方法的建议。