Как определить дистанцию между обьектами по оси Z?
Суть такова: Едут машины по полосе, и мне надо определить расстояние между этой машины, и следующей. И если например дистанция 2 метра, то пусть машина останавливается. Мне нужен код, который высчитывает дистанцию между собой, и обьектом на который он смотрит по оси Z. Много искал, но никак не мог найти код, который бы мне помог.
В этом коде создаются машины.
public class TransformZoneFirst : MonoBehaviour
{
public Transform SpawnZone;
public GameObject ObjectToSpawn;
private float Xpos;
private float XspawnPosOne = (2.7f);
private float XspawnPosTwo = (1);
private float XspawnPosThree = (-1);
private float XspawnPosFour = (-2.7f);
void Start()
{
StartCoroutine(Spawn());
}
void Repeat()
{
StartCoroutine(Spawn());
}
IEnumerator Spawn()
{
yield return new WaitForSeconds(Random.Range(2, 7));
Xpos = Random.Range(1, 5);
switch (Xpos)
{
case 1:
Xpos = XspawnPosOne;
break;
case 2:
Xpos = XspawnPosTwo;
break;
case 3:
Xpos = XspawnPosThree;
break;
case 4:
Xpos = XspawnPosFour;
break;
}
Vector3 spawnPos = new Vector3(Xpos, SpawnZone.position.y, SpawnZone.position.z);
GameObject ClonedObject = (GameObject)Instantiate(ObjectToSpawn, spawnPos, Quaternion.Euler(-90, -90, 0));
Repeat();
}
}
А в этом задается скорость
public class MovementObjFirstLine : MonoBehaviour
{
public Vector2 Direction;
public float Speed = 0.05f;
void Start()
{
}
void FixedUpdate()
{
transform.Translate(Direction.normalized * Speed);
}
} ```
Буду рад любой помощи.