编辑器模式下,使用TiledMap出先问题

  • Creator 版本:3.6.0
  • 编辑器模式下,使用TiledMap出先问题
    问题1、
    使用tiled地图编辑器导出的地图在编辑器中使用的时候,通过代码获取到
    图层下面的地图块位置不一致,出现了偏差,经过验证就是偏差了一半,向右上方偏离。
    问题2、
    解决方案是将编辑器中层级锚点设置为(0,0),然后在设置下坐标可以解决,但是每次保存运行没或修改了代码等一些操作会导致锚点的设置被重置到(0.5, 0.5)。

希望可以看下这个问题,我创建的是2d项目

PhysicsSystem2D.instance.debugDrawFlags = EPhysics2DDrawFlags.All;//开启碰撞箱

let tiledSize = this.node.getComponent(TiledMap).getTileSize();

    let layer = this.node.getComponent(TiledMap).getLayer("wall");

    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) {

                tiled.node.addComponent(BoxCollider2D).group = 4;

                tiled.node.addComponent(RigidBody2D).type = 0;

                

                tiled.node.getComponent(BoxCollider2D).offset = new Vec2(tiledSize.width / 2, tiledSize.height / 2);

                tiled.node.getComponent(BoxCollider2D).size = tiledSize;

                tiled.node.getComponent(BoxCollider2D).apply();
1赞

offset