[LayaAir 2.0]3D空间转2D空间的问题

3D空间转2D空间我用的是
this.camera.viewport.project(this.playerArray[i].transform.position, this.camera.projectionViewMatrix, this.imgPos2);
转换的坐标到this.imgPos2里面。
QQ图片20190212194232.png

像这样的一个场景。加载图片到3D物体上跟着3D物体跑动这样是没有问题的,而我。但当要做的是在摄像机上面显示其他人的位置信息摄像机移动到左上角
或者是右上角的时候,位置信息就会出错。比如我人物在左上角的时候,其他人的位置标签应该在我的屏幕有下脚。但结果却是出现在我屏幕的左上角。
我判断标签在屏幕位置的代码如下:
//判断显示图标的X是在左边还是右边
if(this.imgPos2.x < 0 ){
this.imgPos2.x = 0;
}else if( this.imgPos2.x >= camera_width){
this.imgPos2.x = camera_width - 84;
//判断显示图标的Y是在上面还是下面
if(this.imgPos2.y < 0 ){
this.imgPos2.y = 0;
}
MainScene.RobotLocations[i-1].pos(this.imgPos2.x, this.imgPos2.y);
其中this.imgPos2的X,Y的值在我摄像机的位置在左上角或者右上角的时候,会直接变为负数,那也就归零到屏幕的左上角了。
其他人就位置信息就不正确了。
已邀请:

Aar0n

赞同来自:

无法理解题意

Aar0n

赞同来自:

负数的 就是不在屏幕范围内,就不显示,这个还是要操作 转换成2d 之后的逻辑,和屏幕范围做比较,超出的不显示

孤影楠

赞同来自:

QQ截图20190213110502.png

就像这张图我的人物如果在左下角或者右下角,那么如下图
QQ图片20190213115241.png

标签位置像这样显示正常。
但我的人物如果在左上角或者右上角:
QQ截图20190213115532.png

其它人的位置标签就不对了

Aar0n

赞同来自:

这个逻辑要在转换之后,自己再调整一下,,虽然还是没看懂图,感觉到你的意思用逻辑写出来就可以了,不是调用某个接口就直接实现的

要回复问题请先

商务合作
商务合作