Как определить дистанцию между обьектами по оси 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);
    }
} ```


Буду рад любой помощи.

Ответы (0 шт):