我在Unity3d中为模拟器制作激光传感器;我需要做的是从不同角度的点投射光线,然后从Unity外的另一个软件获取距离。 左边是红色线条是铸造光线的统一场景,右边是另一个节目上可视化的光线。该程序仅从中心点重新获得距离和角度。 正如您所看到的,程序中复制的点数是扭曲的。
这是我用来获取距离的统一代码:
RaycastHit hit;
float max_dst = 20.0f*5;
int steps = 1080;
Vector3 raydir = Quaternion.Euler(0.0f, 135.0f,0.0f)*transform.forward;
Quaternion rot = Quaternion.Euler(0.0f, -270.0f/steps,0.0f);
Vector3 startPos = transform.position + offset;
for(int i=0; i<steps; i++) {
if (Physics.Raycast (startPos, raydir, out hit, max_dst))
dists[i] = hit.distance;
raydir = rot*raydir;
}
你有什么建议可以消除失真吗?
感谢