[LayaAir 2.0]3D空间转2D空间的问题
3D空间转2D空间我用的是
this.camera.viewport.project(this.playerArray[i].transform.position, this.camera.projectionViewMatrix, this.imgPos2);
转换的坐标到this.imgPos2里面。
像这样的一个场景。加载图片到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的值在我摄像机的位置在左上角或者右上角的时候,会直接变为负数,那也就归零到屏幕的左上角了。
其他人就位置信息就不正确了。
this.camera.viewport.project(this.playerArray[i].transform.position, this.camera.projectionViewMatrix, this.imgPos2);
转换的坐标到this.imgPos2里面。
像这样的一个场景。加载图片到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的值在我摄像机的位置在左上角或者右上角的时候,会直接变为负数,那也就归零到屏幕的左上角了。
其他人就位置信息就不正确了。
没有找到相关结果
已邀请:
要回复问题请先登录
4 个回复
Aar0n
赞同来自:
Aar0n
赞同来自:
孤影楠
赞同来自:
就像这张图我的人物如果在左下角或者右下角,那么如下图
标签位置像这样显示正常。
但我的人物如果在左上角或者右上角:
其它人的位置标签就不对了
Aar0n
赞同来自: