常驻节点上的全局单例组件在配置为远程包的Asset bundle 里使用会重新初始化

  • Creator 版本: 3.8.4

  • 目标平台: iOS

  • 重现方式:
    希望在游戏中用全局单例组件的方式实现场景间的数据传递。

我在本地 main bundle 里创建一个启动场景页,按官方文档和论坛指引添加一个常驻节点GameMgr,在这个节点上添加一个全局单例组件。然后在另一个本地 asset bundle,比如 demo bundle里调用单例组件。单例能正常发挥作用。
但是把demo bundle配置为远程时,打印日志能看到常驻节点还是能找到,挂载的单例组件也能获取到,但是单例组件会重新初始化。

有人能解释一下这是为什么吗?不是我的配置有问题吧?不是本身就不支持?

目前暂时是加入本地缓存的机制。每次获取数据尝试通过本地缓存读取。

  • 重现概率: 必现

show your demo~~~

可以添加常驻节点来防止 场景切换中的代码重新初始化

/**

     * @en

     * Add a persistent root node to the game, the persistent node won't be destroyed during scene transition.<br>

     * The target node must be placed in the root level of hierarchy, otherwise this API won't have any effect.

     * @zh

     * 声明常驻根节点,该节点不会在场景切换中被销毁。<br>

     * 目标节点必须位于为层级的根节点,否则无效。

     * @param node - The node to be made persistent

     */

    addPersistRootNode(node: Node): void;