关于3D中v3坐标转v2坐标的求助

下面那条红色的 是一个ui他在canvas层下 上面那个白色的球 在三维空间 是一个会移动的球体 我想让UI层的条可以一直追踪这个球 这样的话我需要获取球在ui下的v2坐标 我翻阅论坛尝试了已知的方法 但是获取到的坐标都有问题 worldToScreen
WorldNode3DToLocalNodeUI 这两个方法我都用了 但是获取的坐标都偏差甚远 哪位大佬能解读一下这是怎么回事

哇 有没有大佬救救孩子啊

我之前看到有的人说和旋转有关系 但是我把摄像机的所有位置属性调整成0 然后得出的坐标数据还是不对的

两个方法的输入值都是vec3(0,0,0)的情况下是可以得到准确的中心位置 但是一旦值发生了改变得到的结果就完全混乱
WorldNode3DToLocalNodeUI(cam, cc.v3(5,50,2), cc.find(‘Canvas/test’), pos);情况下得到Vec3 {x: 1798.6357435197817, y: 32000, z: 1.5}

    console.log(cam.worldToScreen(cc.v3(10,10,10)))   Vec3 {x: 2266, y: 4031.5, z: 5.5}
    console.log(cam.worldToScreen( cc.v3(10,0,0)))    Vec3 {x: 2266, y: 366.5, z: 0.5}

。。。。解决了 为啥这玩意不能放在start里运行啊 放在update里数据就对了

因为start只会在创建时执行一次而update是会每帧执行一次的