Как сделать смену обьекта при приближении?

Для реализации смены объекта при приближении в C# можно воспользоваться функционалом работы с камерой и коллайдерами. Вот примерный алгоритм, как можно это сделать:

1. Создайте два объекта, которые будут меняться местами при приближении.
2. Добавьте коллайдеры к обоим объектам, чтобы определить столкновения.
3. Напишите скрипт для объекта, отвечающего за смену, который будет реагировать на столкновения и приближение.

Пример кода для скрипта этого объекта:

using UnityEngine;

public class ChangeObjectOnApproach : MonoBehaviour
{
    public GameObject objectToActivate;
    public GameObject objectToDeactivate;
    public float distanceThreshold = 5f;

    private void Update()
    {
        float distance = Vector3.Distance(transform.position, Camera.main.transform.position);

        if (distance < distanceThreshold)
        {
            objectToActivate.SetActive(true);
            objectToDeactivate.SetActive(false);
        }
        else
        {
            objectToActivate.SetActive(false);
            objectToDeactivate.SetActive(true);
        }
    }
}

4. Присоедините этот скрипт к объекту в вашей сцене.
5. Присвойте переменным objectToActivate и objectToDeactivate ссылки на объекты, которые вы хотите сменять местами при приближении.
6. Установите значение distanceThreshold равным необходимому вам порогу приближения.

Теперь при приближении к объекту, его место будет занимать другой объект. Не забудьте настроить коллайдеры объектов, чтобы корректно определялись столкновения.