热更新 新版本中加了几个新的prefab 热更新后调用 cc.game.restart 重启 然后 cc.loader.loadRes 新的prefab 是成功的,然后把游戏关闭 重启后 就load不到新的prefab了 android ios都一样的
大概是你没有指定搜寻路径吧,热更新的资料没读到
指定了的 在mian.js里 前面几次更新都是OK的
我也遇到 这个问题了,并且是 官方热更新demo 也存在同样的问题。有解!!
官方的demo,尝试加入 cc.game.restart()这一句。
case jsb.EventAssetsManager.ALREADY_UP_TO_DATE:
cc.game.restart();
break;
关键是 官方demo 热更新cc.game.restart() 后,可以 正常加载更新后的内容,但是 当app 重新启动后,理应直接加载 更新后的版本,但是还是会加载 更新前的。
难道是demo 故意这么写的?我跟着demo 集成到 项目中也是同样的,可以更新成功,但是 app 重启后 就还是加载的旧版本的。
建议每次都检测下更新,这个机制可以保证使用母包的更新代码,可以防止更新到最新代码包后,代码损坏导致以后都没法再通过更新修复,当然理解更新机制后,你们喜欢diy的可以自己diy了。
这点我明白,只是我现在重启APP, 在mian.js里也加入了 设置搜索路径,并且看打印 ,确实也指向了刚刚更新下载保存的目录,cc.game.restart() 后依然加载的是 初始的场景,这点我就没搞懂是为什么了。
这个你跟踪下native层的代码,可能是路径的优先级不对,文件最终转化的读取路径应该是不对了。
找到 问题了, hotUpdate.js 中 在更新完成之后,保存的路径 是绝对路径,而iOS 系统 ,程序每次启动 document 目录之前的路径都是会变化的,所以导致 设置了也 找不到文件。在main.js 中更新成 当前相对的路径 就可以 了。
所以应该怎么写main.js和路径 官方例子保存的是绝对路径吗
我也遇到该问题了,能详细给下你的解决方案吗?我打印出来看,路径是正确的。
解决了吗 是重启后设置搜索路径的问题,要在require setting 还是什么的之前设置 这样才能找到新加的prefab等
你这个问题,是设置路径的代码放错了位置。。。。检查一下mainjs吧
else if (window.jsb) {
1.XXXXXXXXX
}
必须放在这里的第一行,不要放到window.boot();后面去了,
我之前也遇到了,总结了很久才总结出来,
每次更新完重启生效,进程一重启就失效了,应该是这个引起的!~
感谢了
请问这个怎么解决的啊,我也遇到了 更新了prefab后load不到