预加模型载资源会占用内存,在未使用该模型资源的情况下去释放它会报错,必须要先调用Laya.loader.getRes()获取模型并调用destroy()才行,希望官方能够尽快修改此bug。
你的引擎是哪个版本,我们确定下你这个版本的引擎是否确实存在这个bug。还有你是所有模型释放都会报一样的错,还是某个模型释放报错,如果某个模型报错能否提供下模型文件。
Laya_XS 最新版1.7.13,不是哪一个模型的问题,释放.lh文件地址会出问题,其它不会!
释放资源的流程就是先通过getRes获取到模型,然后在通过dispose调用来消耗资源跟对象,destory只是销毁对象!
Laya_XS 你写个demo试一下就知道有问题了,我知道怎么释放对象,我强调的是释放预加载未使用的模型资源,只能调用destroy()方法,调用disponse()会报错的!!!!
Uncaught TypeError: res.dispose is not a function
现在的机制就是加载了模型后就直接创建了对象,不管你用不用,释放流程都是一样的,必须先destory释放对象,然后在dispose释放资源
Laya_XS Uncaught TypeError: res.dispose is not a function
刚才跟同事那边确定了下你还需要判断下从getRes里获取的对象是否存在,然后在调用dispose释放
Laya_XS 我跟踪了代码,对象是存在的,也加了判断条件,调用disponse就会报错,Uncaught TypeError: res.dispose is not a function。
要不你写个示例我们这个查下具体问题,辛苦!
见附件
你的问题是lh是模型对象,你不用去调用dispose释放就可以,dispose是释放资源对象的,你只要把lh里面的资源对象直接释放了,然后lh最后调用下destory释放下就可以了!
Laya_XS 明白了。https://ldc.layabox.com/doc/?nav=zh-ts-4-0-14这个文档应该写清除点,不然还有人踩坑!
模型getRes出来的,没有dispose...函数~_~,why
dfklegend ?
dfklegend 做一下类型转换 你看下getres返回类型是什么就明晰了
此问题已解决,请管理员关闭回复。
伐木工人 请问怎么解决?