feat: 支持更新相机高度
This commit is contained in:
@@ -85,12 +85,24 @@ export class PlayerController extends Component {
|
||||
const normalizedX = screenPos.x - centerX;
|
||||
const normalizedY = screenPos.y - centerY;
|
||||
|
||||
// 获取相机的正交高度
|
||||
const orthoHeight = this.camera.orthoHeight;
|
||||
|
||||
// 计算屏幕坐标到世界坐标的缩放比例
|
||||
// 屏幕高度的一半对应 orthoHeight 的世界单位
|
||||
const scaleY = orthoHeight / (visibleSize.height * 0.5);
|
||||
const scaleX = scaleY; // 保持宽高比一致
|
||||
|
||||
// 将屏幕坐标转换为世界坐标(相对于相机中心)
|
||||
const worldOffsetX = normalizedX * scaleX;
|
||||
const worldOffsetY = normalizedY * scaleY;
|
||||
|
||||
// 考虑相机的位置偏移
|
||||
const cameraPos = this.camera.node.position;
|
||||
|
||||
// 计算世界坐标
|
||||
const worldX = normalizedX + cameraPos.x;
|
||||
const worldY = normalizedY + cameraPos.y;
|
||||
// 计算最终的世界坐标
|
||||
const worldX = worldOffsetX + cameraPos.x;
|
||||
const worldY = worldOffsetY + cameraPos.y;
|
||||
|
||||
return new Vec3(worldX, worldY, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user