Искажение расстояния удара Unity3d Raycast
Я делаю лазерный датчик для симулятора в 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;
}
Есть ли у вас предложения по устранению искажения?
Спасибо