动态加载的TiledMap没有Layer

版本:Cocos Creator 3.3.2
平台:Web

我想实现一个TiledMap的动态加载,于是我使用了下面这样的代码

let scene = <Node><any>director.getScene().getChildByName('Canvas')
        let node = instantiate(this.stage)
        this._map = node.getChildByName('map').getComponent(TiledMap)
        this._loadMap().then(map => {
            this._map.tmxAsset = map
            return this._initMap()
        })
        .then(() => {
            node.getChildByName('hero').setPosition(0, 0, 0)

            node.parent = scene
            node.setPosition(0, 0, 0)
            console.log('spawn')
        })

map节点里原先有一个空的TiledMap组件

场景加载之后发现Layers是空的QAQ

求各位大神解答!

如果我在加载的时候不访问layers,把map节点打印在控制台上,就可以看见layers,应该是onload的时候layers还没有被创建的原因,我试过把onload的内容放在start里但是也获取不到layers

我找到问题了,在我的代码里我是在运行node.parent = scene之前访问子层的,只要改成指定父节点之后访问子层就不会出现问题。

所以猜想子层的节点应该是在地图节点进入节点树之后再动态生成的。

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。