You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中如何获取相机远裁剪面板四角的世界坐标?

获取相机视锥体截面矩形各边的单位长度方法

你提到的矩形是相机视锥体在指定距离平面上的截面,结合你已掌握的信息,可按以下步骤计算各边的单位长度(以Unity引擎为例):

已知条件整理

  • 矩形中心坐标:你已能获取,记为centerPos
  • 宽高比:通过Camera.pixelRect.width / Camera.pixelRect.height计算得到,记为aspectRatio
  • 相机垂直视场角:Camera.fieldOfView(仅透视相机适用)

透视相机场景计算步骤

  1. 确定目标平面与相机的距离:设该距离为distance(即相机到矩形所在平面的垂直距离,需自行确定或通过场景逻辑获取)
  2. 计算垂直半长度(中心到上下边的距离):
    float halfHeight = distance * Mathf.Tan(Camera.fieldOfView * 0.5f * Mathf.Deg2Rad);
    
  3. 计算水平半长度(中心到左右边的距离):
    float halfWidth = halfHeight * aspectRatio;
    
  4. 推导各边的长度与位置:
    • 上边/下边长度:2 * halfWidth,上边y坐标为centerPos.y + halfHeight,下边y坐标为centerPos.y - halfHeight
    • 左边/右边长度:2 * halfHeight,左边x坐标为centerPos.x - halfWidth,右边x坐标为centerPos.x + halfWidth

补充:正交相机场景

若使用正交相机,垂直半长度直接等于Camera.orthographicSize,水平半长度为Camera.orthographicSize * aspectRatio,各边长度同样为对应半长度的2倍,位置推导逻辑与透视相机一致。

内容的提问来源于stack exchange,提问作者user20311258

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:01:16