Creator 场景切换后cc.find捕获不到新场景中的节点

我们做了一个简单的小游戏,在切换场景的时候遇到了问题:

在loadScene之后,我们试图在InitScenes和ScriptsLoad函数中使用cc.find获取新场景中的部分节点,

但某些节点无法正确的捕获到。

请问LoadScenes是加载完所有的节点之后才启动场景切换的吗?

我们之前尝试过使用计时器,通过延迟几秒调用cc.find解决过这个问题。

我们想确切的知道在切换场景之后紧接着就使用cc.find是否是可行的方案。如果不行,那获取新加载场景节点的标准的做法是怎样的。

感谢提供帮助的所有人。

你应该是要放在第三个参数吧?

您好。

我是参照Cocos文档写的代码,具体如下:


在这一节,指明了附加的参数用来指定场景加载【后】的回调函数。

感谢您的回答,这边问题我们已经解决——是节点的命名发生了错误,导致cc.find捕捉不到节点。

上述的loadScene()函数的回调经过测试,的确是场景加载完之后才调用的。

但我们目前遇到了新的问题:

我们想知道,是不是一个新的场景只能加载一次,之后的场景切换都是RunScene而不是LoadScene?

上述问题出现在我们想要频繁地在两个地图之间来回切换(想象一下玩DNF在两个相邻的地图之间跑来跑去的情景)。

我看到很多其它开发者也遇到了类似的问题,请问您有什么思路吗?

都可以用 loadScene 来进行加载场景,你看看你都代码是否加载了 2 次 Town3 场景,

您好,感谢您的再次回答!:smiley:

按照我们的理解:
场景切换会销毁当前场景,当我们离开场景A进入场景B的时候,A会被释放,B需要Load。对于一个已经被释放过的场景,再次切换至它需要重新加载。

上述问题出现在我们反复在A、B两个场景间来回切换的时候:

首先从A切换到B,我们调用了一次Load函数来切换至B场景。
然后从B切换回A,我们调用了一次Load函数来切换回A场景。
最后从A再次切换到B,我们又一次调用了Load函数,但这一次就出现了所述的错误,表示B场景已经加载。

请问您有什么思路吗?

我这边没出现你说到问题,能否做个小 demo 呢?你们是如何释放场景的?

是这样的,我们并没有主动释放场景。

我们是这样理解这句话的,当切换了新场景之后,原有的场景就被销毁了,需要重新加载。
所以当切换回一个已经被销毁(释放这个词可能不太准确)的场景,需要重新加载。

我们已经发现只有特定的一个场景会出现这种问题,其它场景不会有这种BUG。(这可能是您无法复现的原因)

我们会进一步检查场景中的元素以及脚本加载情况来尝试解决。

再次,感谢您的关注。:relaxed: