DyadyaEmil
@DyadyaEmil
Начинающий программист

Как реализовать сражение в игре(отследить реакцию на контакт в определённом радиусе по принципу свой-чужой) в 2D игре?

Всем доброй ночи, будьте добры,поделитесь опытом.
Разрабатываю мобильную игру, нужно реализовать систему сражения. Суть проста, человек нажимает на значок персонажа и он спавнится идя в право (в сторону противников,которые автоматически идут на лево)
Как реализовать возможность обнаружения их друг друга, что бы когда они были в неком радиусе, останавливались и начинали драться.
Буду рад помощи, и заранее спасибо.

P.S.
Про то как заспавнить и направить в нужную сторону я знаю, а вот конкретно что бы они увидели друг друга и начали реагировать на данное событие нет.
  • Вопрос задан
  • 219 просмотров
Решения вопроса 2
GavriKos
@GavriKos Куратор тега Unity
1) Формула расстояния (@yayashitoya почти правильно написал - там корень еще, либо радиус квадратичный)
2) Прям в юнити есть magnitude и sqrMagnitude - расстояние между Vector3
3) Ну можно еще коллайдеры (триггеры) использовать
Ответ написан
DyadyaEmil
@DyadyaEmil Автор вопроса
Начинающий программист
Если кому интересная данная тема,то по мере ее решения я выложу подробную инструкцию реализации сюда.

Обновление:
Всем кому была так же непонятна эта тема как и мне, рад поделится решением.
Как отметил "GavriKos", можно работать через колайдеры.
1)добавить на юнита куб, убрать не нужные мешы.
2)Добавить ему тэг (если что загуглите).
3)убрать стандартный бокс колайдер (если делаете 2Д). И выбрать 2Д колайдер, так же отметить его тригером.
private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("evil")) // проверяем наименование тега,указываем его в скобках. 
        {
            
            Debug.Log("Цель вошла");
        }
    }
    private void OnTriggerExit2D(Collider2D other)
    {
        Debug.Log("Цель вsшла");
    }

А вот и сам простой скрипт.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@yayashitoya
(X1-X2)^2+(Y1-Y2)^2<=R^2
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы