本地Bundle包,里面有个预制体A。
预制体根节点上绑定了一个脚本B。
构建Bundle,放到远程
loadBundle从远程读取该Bundle,并打印Bundle包里预制体A的_components
发现原先绑定的脚本组件变成null了
当然,实例化预制体后,用代码把脚本动态绑上去是没问题的
但是如果游戏较复杂,所有脚本都动态绑是个不小的工作量
有没有办法解决这个远程Bundle脚本丢失问题?
本地Bundle包,里面有个预制体A。
预制体根节点上绑定了一个脚本B。
构建Bundle,放到远程
loadBundle从远程读取该Bundle,并打印Bundle包里预制体A的_components
发现原先绑定的脚本组件变成null了
当然,实例化预制体后,用代码把脚本动态绑上去是没问题的
但是如果游戏较复杂,所有脚本都动态绑是个不小的工作量
有没有办法解决这个远程Bundle脚本丢失问题?
脚本B也在这个Bundle下吗?
也在这个Bundle下
应该不会吧,看看有没有其他预设引用了这个脚本,或者其他脚本引用了这个脚本,微信小游戏平台对吧
试了一早上,结果就是脚本丢失,编辑器运行调试的H5平台,但这个做法实现以后是全平台通用的,无论微信、原生、鸿蒙
检查下服务器内容 拦截本地接收到的AB包查看下完整性
脚本没下载?
测试过,远程AB包读取后是包含脚本的
有没有用本地AB包尝试过相同步骤 不通过远程
本地可以的,远程包不行,预制体上绑定的脚本变成null了
意思是 脚本B 是在远程bundle下,然后想实现动态热更脚本B?
你创建一个新的bundle,一个新的空预设体,一个新的脚本,然后绑定,构建之后看看打出来的bundle文件夹,里面的json都看看有什么问题没有
不需要动态热更脚本,是打算整个Bundle包热更掉
这个验证过了,远程Bundle包里是有脚本的,因为我把本地Bundle的同名脚本删除,照样能跑而且正常了
有测试远程包的脚本下载下来了吗
下载下来了
那你加一下日志查一下为什么没有把组件挂上去
所以问题是:为什么会丢失脚本?
现在的问题是,
远程Bundle的脚本import其他bundle的脚本
其他bundle的脚本import远程bundle的脚本
都import不了
因为原先import是按照本地路径写的,现在远程Bundle里脚本路径发生变化了