cocos creator 3.x tiledmap创建碰撞无效

initMap(mapNode:Node){

    let tiledMap = mapNode.getComponent(TiledMap);

    console.log(tiledMap);

    let tiledSize = tiledMap.getTileSize();

    console.log(tiledSize);

    let layer = tiledMap.getLayer("background");

    console.log(layer);

    let layerSize = layer.getLayerSize();

    for(let i = 0;i<layerSize.width;i++){

        for(let j = 0; j < layerSize.height;j++){

            let tiled = layer.getTiledTileAt(i,j,true);

            if(tiled.grid !== 0){

                let body = tiled.node.addComponent(RigidBody2D);

                body.type = ERigidBody2DType.Static;

                body.wakeUp();

                console.log(body.group);

                let collider = tiled.node.addComponent(BoxCollider2D);

                collider.offset = v2(tiledSize.width / 2,tiledSize.height / 2);

                collider.size = tiledSize;

                collider.apply();

            }

        }

    }

}

我要做的是横版跳跃游戏,用tilemap做的地块,角色站在上面;
在网上找的代码,刚体组件应该是加上了;但是下面的collider加没加上不确定,角色总是会掉下来。搞了两天了,找不到问题,求大神帮忙看看

论坛中有人说是坐标问题,但是具体是啥问题呢?

TiledMap节点的Anchor Point 一定要重置为0,然后在脚本上加入这段代码,查看具体的图块节点的位置,重新设计该区块的position。
PhysicsSystem2D.instance.debugDrawFlags = EPhysics2DDrawFlags.All;

2赞

非常感谢大神的回复。