samana писал(а):BANANARAGE писал(а):Мне не нужно что бы он узнавал умер враг или нет
Да? Точно? Ну хорошо!
Тут другая проблема, если враг по которому он стрелял выйдет из зоны он все равно по нему продолжает стрелять..
Теперь как это решить
samana писал(а):BANANARAGE писал(а):Мне не нужно что бы он узнавал умер враг или нет
Да? Точно? Ну хорошо!
BANANARAGE писал(а):Теперь как это решить
Saltant писал(а):Проверяй дальность
samana писал(а):botaforq писал(а):Но Raycast предназначена для отслеживания попадания в врага, с ним код будет более оптимизирован и в разы сократиться.
Raycast здесь действительно совершенно не нужен. Saltant и Alkos26Rus всё верно подсказывают.
Но появится проблема - как узнать, что враг умер.
Saltant писал(а):в итоге получается одна ошибка заменяется другой
BANANARAGE писал(а):samana писал(а):BANANARAGE писал(а):Мне не нужно что бы он узнавал умер враг или нет
Да? Точно? Ну хорошо!
Тут другая проблема, если враг по которому он стрелял выйдет из зоны он все равно по нему продолжает стрелять..
Теперь как это решить
Alkos26Rus писал(а):BANANARAGE писал(а):samana писал(а):BANANARAGE писал(а):Мне не нужно что бы он узнавал умер враг или нет
Да? Точно? Ну хорошо!
Тут другая проблема, если враг по которому он стрелял выйдет из зоны он все равно по нему продолжает стрелять..
Теперь как это решить
Вставь это в апдейтСинтаксис:Используется csharpif(target && Vector3.Distance(transform.position, target.position) > range)target = null;
Saltant писал(а):Что именно не работает? Что дебаг у тебя показывает?
BANANARAGE писал(а):Saltant писал(а):Что именно не работает? Что дебаг у тебя показывает?
if(target && Vector3.Distance(transform.position, target.position) > range)target = null;
где таргет посишн подчеркивается красным я поменял его таргет тансформ посишн и код стал правильным, но теперь он вообще не реагирует на врага.
Alkos26Rus писал(а):BANANARAGE писал(а):Saltant писал(а):Что именно не работает? Что дебаг у тебя показывает?
if(target && Vector3.Distance(transform.position, target.position) > range)target = null;
где таргет посишн подчеркивается красным я поменял его таргет тансформ посишн и код стал правильным, но теперь он вообще не реагирует на врага.
Ну это естественно, я писал от руки и не посмотрел что таргед это у тебя коллайдер. Не реагирует походу потому что сбрасывает врага сразу после того как найдет, не учитывается размер коллайдера врага, а дистанция считается по центру объекта. Короче поиск врага по Physics2D.OverlapCircle() это полная хрень, ищи по дистанции перебирая массив врагов. Но исходя из "где таргет посишн подчеркивается красным" похоже что и код ты не сам писал а скопипастил, поэтому у меня сомнения что ты сможешь сделать поиск врага через массив.
TeslaGan писал(а):collision.gameObject.tag == "Enemy"
TeslaGan писал(а):действительно, правильный совет. CompareTag(). копировал пример с документации по колайдерЭнтер, не обратил внимания что именно они используют
Сейчас этот форум просматривают: Yandex [Bot] и гости: 28