如何将世界坐标转换到节点坐标

尝试监听节点的触摸事件,获取触摸位置

发现event.touch.getUILocation()获取到的是世界坐标,而且node也不再有convertToNodeSpace()接口了

进过多翻查找没找到可以转换的api

但是找到了node.setWorldPosition()和node.getPosition(),也就是说setWorldPosition里面一点做了相关转换使得getPosition可以得到一个节点坐标

查看源码后得出下面的转换方式:

    const touch = event.touch.getUILocation();
    const wordPoint = v3(touch.x, touch.y, 0);
    const nodePoint = v3(0,0,0);
    Vec3.transformMat4(nodePoint, wordPoint,  Mat4.invert(m4_1, this.node['_mat']));
1赞

convertToNodeSpace接口在UITransfrom组件上

1赞

哈?我去瞅瞅,升级后都不会了

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