点击位置转换LocalPosition异常

  • Creator 版本: v3.0.0
  • 目标平台:ALL
  • 重现方式:必现
  • 之前哪个版本是正常的: v2.4.4
  • 编辑器操作系统: MacOS

问题描述

点击屏幕内摇杆,要获取摇杆相对于摇杆底图的LocalPosition,通过UITransform组件下的方法convertToNodeSpaceAR方法转换,结果差别很大,不知道问题在哪里。

UI结构如下截图:

转换代码如下:

onLoad() {
    this._bg?.on(Node.EventType.TOUCH_START, this._touchStart, this);
}
 private _touchStart(event: EventTouch) {
            let pos = v3(event.getLocationX(), event.getLocationY(), 0);
            console.log('pos: ', pos.x, pos.y);  // 点击区域坐标,对的

            let uiTrans = this.node.getComponent(UITransform);

            let pos_0: Vec3 | undefined = uiTrans?.convertToNodeSpaceAR(pos);
            console.log('pos0: ', pos_0);  // 转换后的坐标,LocalPosition不太对。
}

event.getLocation()方法改成event.getUILocation()试试

已解决,感谢。

  • 方便其他人查看,将最终实现代码贴下面。
let uiLocation = event.getUILocation();
let pos = v3(uiLocation.x, uiLocation.y, 0);
let uiTrans = this._joystick?.getComponent(UITransform);
let pos_0: Vec3 | undefined = uiTrans?.convertToNodeSpaceAR(pos);

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