Unity C#

Physics.Raycast в Unity C# — рейкаст и обнаружение объектов

Метод Physics.Raycast проверяет пересечение луча с коллайдерами в физической среде Unity. Это один из самых частых инструментов для взаимодействия с миром: понять, куда «смотрит» игрок или с чем столкнулся объект.

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

Особенности

  • Гибкость: есть перегрузки, включая подробную информацию о попадании через RaycastHit.
  • Физический расчёт: опирается на физику Unity — точно и эффективно.
  • Ограничение дистанции: можно задать максимальную длину луча для оптимизации.

Пример кода

Луч идёт вперёд от объекта; при попадании логируем имя и проверяем тег:

using UnityEngine;

public class RaycastExample : MonoBehaviour
{
    private float maxDistance = 100.0f;

    void Update()
    {
        // Создаем луч из камеры игрока
        Ray ray = new Ray(transform.position, transform.forward);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit, maxDistance))
        {
            Debug.Log("Объект найден: " + hit.collider.name);

            // Пример взаимодействия
            if (hit.collider.CompareTag("Interactable"))
            {
                Debug.Log("Вы столкнулись с интерактивным объектом!");
            }
        }
    }
}