在新增相机下展示的图层,getUILocation获取位置不对

  • Creator 版本:3.5.0

  • 目标平台: h5/pcweb

  • 重现方式:主Camera可以改变位置来实现跟随角色移动,新增一个相机展示固定在屏幕底部的ui层,点击ui层上的摇杆最中心的位置,触发touchstart事件时,获取到的坐标在通过convertToNodeSpaceAR转换后存在较大偏差,正常应该接近(0,0)
    1、效果图,后面地图可滚动,摇杆固定


    2、摇杆的层级为自定义,地图用的默认UI_2D

    代码如下
    let uiLocation = event.getUILocation();
    // let pos = this.controlCamera.screenToWorld(v3(uiLocation.x, uiLocation.y));
    let pos = v3(uiLocation.x, uiLocation.y, 0);
    let uiTrans = this._childNode.getComponent(UITransform);
    let pos_0 = uiTrans.convertToNodeSpaceAR(pos);
    console.log('pos0: ', pos_0)
    this._childNode.setPosition(pos_0);

PS,当我把摇杆的层级也改为UI_2D时,这套转换的最终结果是正确的

你好,如果你的 canvas 绑定的 camera 的 visibility 只有 UI_2D 话,那么 canvas 下的 UI 节点就都需要设置 layer 为 UI_2D。