[0]转换2D屏幕坐标系统到3D正交投影下的坐标系统位置偏差

https://layaair2.ldc2.layabox.com/demo2/?language=ch&category=3d&group=Advance&name=Scene2DPlayer3D
 
官网demo里面的这个800和700到底是啥啊,之前以为弄对了,后来发现一直有偏差,我应该传入什么的坐标(demo里面有问题,附件无关)
//转换2D屏幕坐标系统到3D正交投影下的坐标系统
_camera.convertScreenCoordToOrthographicCoord(new Vector3(800, 700, 0), this.orthographicPos);
avatar.png

Laya_Fred

赞同来自:

您可以参考下面这个代码设置,另外如果您需要修改模型的位置,其实通过设置他渲染的tetxure的节点位置来修改的,如下图一。
let cube = new MeshSprite3D(PrimitiveMesh.createBox()); 
scene.addChild(cube);
let pos = new Vector3();
let screenPos = new Vector3();
Laya.timer.frameLoop(1, this, ()=>{
camera.orthographic = true;
screenPos.setValue(camera.clientWidth / 2, camera.clientHeight / 2, 0.1); //converScreenToCoordToOrthographicCoord传的screenPos应该是这个3d模型在摄像机rt内的屏幕坐标
camera.convertScreenCoordToOrthographicCoord(screenPos, pos);
cube.transform.position = pos;
});
图一
Snipaste_2022-05-26_17-11-44.png

 

要回复问题请先

商务合作
商务合作