TGViewer
Red Atom Red Atom @unitygamelab · 205 subscribers
Post #29 49
🎯 Raycast в Unity: Гид по лучшему инструменту обнаружения

Physics.Raycast() — ваш главный инструмент для "пуль", детекции препятствий и взаимодействий. Разберём всё самое важное коротко!

🔍 Базовое использование
if (Physics.Raycast(transform.position, transform.forward, out RaycastHit hit, 10f)) 
{
Debug.Log($"Попал в: {hit.collider.name}");
Debug.DrawLine(transform.position, hit.point, Color.red); // Визуализация
}


Ключевые параметры:
- origin — откуда выпускаем луч
- direction — направление (обязательно нормализуйте!)
- hit — информация о столкновении
- maxDistance — дальность луча
💡 Фишки RaycastHit
- hit.point — точка попадания
- hit.normal — нормаль поверхности
- hit.distance — дистанция до объекта

⚡️ Оптимизация
1. Фильтр по слоям
int enemyLayer = 1 << LayerMask.NameToLayer("Enemy");
Physics.Raycast(..., enemyLayer);


2. NonAlloc-версия (без лишних выделений памяти)
RaycastHit[] hits = new RaycastHit[5];
int count = Physics.RaycastNonAlloc(..., hits);


3. Короткие лучи → Быстрее расчеты
Physics.Raycast(..., maxDistance: 5f);


🛠 Вариации Raycast
- RaycastAll — все пересечения луча
- SphereCast — луч с радиусом (толстые объекты)
- BoxCast — луч в форме куба

⚠️ Частые ошибки
- Луч из коллайдера → Игнорируйте свой объект:
if (hit.collider != myCollider) { ... }

- FixedUpdate → Raycast зависит от физики, поэтому лучше вызывать там.
- Ненормализованный direction → Используйте transform.forward, а не transform.forward * 10.

📌 Пример для пуль:
if (Physics.Raycast(gun.position, gun.forward, out hit, 100f, enemyLayer))
{
hit.collider.GetComponent<Enemy>().TakeDamage(10);
}
More from @unitygamelab
  1. Sep 26, 2026Новые модели Эксперименты с шейдером наконец закончились, но выяснилось кое-что неприятное…
  2. Sep 19, 2026Эксперименты Начал экспериментировать с постпроцессингом в URP и написал свой первый шейде…
  3. Sep 12, 2026Закончил все комнаты Закончил, конечно, громко сказано, но по локации уже можно пройтись о…
  4. Sep 5, 2026Добавил ещё две новых комнаты и и осталось всего 6 В главном хабе пришлось потратить много…
  5. Aug 29, 2026ЕЩЁ две комнаты Теперь есть ещё и склад с комнатой управления складом. Расставил свет от б…
  6. Aug 22, 2026Ещё две комнаты Добавил на локацию помещение охраны(небольшая комнатка) и распределительны…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →