3.4.2 触摸点坐标转换问题

  • Creator 版本:3.4.2

  • 目标平台: Chrome浏览器 测试
    我这个是2D游戏,
    代码如下, 就是touchNode节点接受触摸,然后通过getLocation获取point后,在后面转化的时候,调用
    convertToNodeSpaceAR的函数,它调用的是3D引擎内的接口 convertToNodeSpaceAR(worldPoint: math.Vec3, out?: math.Vec3): math.Vec3; 不知道是为何。

    onLoad () {
    this.touchNode.on(Node.EventType.TOUCH_START,this.touchStartEvent ,this);
    }

    touchStartEvent(event) {
    let point:Vec2 = event.getLocation();
    point = this.touchNode.getComponent(UITransform).convertToNodeSpaceAR(point);
    }

使用event.getUILocation()试试
image

2赞

尝试不行。 点击左下角坐标,结果去了中心点。

感觉3.x之后的很多函数都不知所云,文档的说明和api文档说明都对应不上,或者函数找不到,可能也是好久没有看creator,不熟悉导致。

我现在A的子节点是B,B监听触摸,所以刚才通过event.getUILocation()应该是在B内的坐标,
我想转化成A内的坐标,用什么函数,感觉3.x没有以前的API直观

getUILocation返回的是ui世界坐标(不是b内的坐标),再通过A的uitransform转为A内的坐标

2赞

是的。现在问题解决了。

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