版本1.1.0;
出现问题:systemEvent.on监听的回调在切换后场景依旧有用,切换后场景后场景内的脚本update不执行
- loader.releaseAll();没有效果, 还会导致疯狂报错
- systemEvent.removeAll()和director.removeAll();没效果, 就是因为systemEvent.on还在继续监听才去用的这个,但没想到这个也没用,
3d没有自动释放场景资源功能到底怎么正确切换场景?
我切换的场景是上个场景,在预加载后切换
版本1.1.0;
出现问题:systemEvent.on监听的回调在切换后场景依旧有用,切换后场景后场景内的脚本update不执行
有没有知道的大佬说下
是呀,我也在等 场景资源的自动释放。编辑器没看到这个选项。代码里强行调用也没用
我的使用方法错了,我出现的问题主要是回调没有释放,还有就是切换场景后update调用延迟,一般会延迟几秒钟才会进组件的update。对于动态更新背景的游戏来说很麻烦。对于系统回调我是用systemEvent.removeAll(SystemEventType.TOUCH_START);
这样的方式进行移除的,但是我发现还有其他类型的回调也有问题,比如 A、B 两个场景
在 B 场景设置了
clip.on("ended", func, this)
这样的回调,如果在 切换回A场景之前 没有调用 clip.off 函数关闭回调,那么后面 从A再切换回B场景 就会造成func内this的属性全部为空,并且this的指向并不是当前组件的this, 当前组件的this属性一切正常。问题这么多,3D咋玩,如果切换场景都做不到,我准备弃坑3D了
感觉你貌似理解错了。
大哥求解?
你在哪里调用的?
感觉你不是在切换场景后释放资源,是在管理事件?
这个没问题
确实需要做 clip.off,但是在 1.1.1 中,我们对事件系统进行了重构,如果这个 target 对象不再有效(跟随之前场景被销毁),那么事件系统会主动取消注册这个监听器,应该不会再有你提到的这个问题