Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 55

Враг не наносит урон по игроку

24.05.2018, 04:41. Показов 3233. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет! Подскажите, в чём проблема? Нужно чтобы враг бил меня, если он подошёл ко мне, а на моём слайдере отнимались жизни, и игрок умирал. На враге всё работает отлично, бью его и он теряет хп, затем умирает. На персонаже же вообще не работает, враг просто подходит и проигрывает анимацию удара, значение на слайдере вообще не отнимается.

В чём дело? Я уверен что всё делаю правильно, что за бред?

Вот урон по игроку (висит на игроке)

C#
1
2
3
4
5
6
7
8
9
   public void AddPlayerDamage(int damage2)
        {
            health2 -= damage2;
            healthBar2.value = health2;
            if (health2 <= 0)
            {
                Debug.Log("Я тяжело ранен!");
            }
        }


Вот триггер на враге

C#
1
2
3
4
5
6
7
8
void OnTriggerEnter2D(Collider2D collider2)
    {
        if (collider2.tag == "Player")
        {
            PlayerController pCon = collider2.GetComponent<PlayerController>();
            pCon.AddPlayerDamage(10);
        }
    }

Всё должно работать как часы по идее. Не могу понять в чём проблема, где косяк. Спасибо заранее.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.05.2018, 04:41
Ответы с готовыми решениями:

Wi-Fi наносит вред?
Правда, что Wi-Fi ухудшает качество спермы?

ТекДата наносит ответный удар
Доброго времени суток. Возникла проблемка с датой. В одно документе нужно вывести две определенные даты. Выводим их в таблице как константы...

Двойной урон
При попадании, наноситься двойной урон. Метод ApplyDamage почему-то вызывается два раза. P.S. Пуля при поподании уничтожается. ...

6
29 / 27 / 9
Регистрация: 10.08.2016
Сообщений: 163
24.05.2018, 09:07
(на враге) в этой строке разве ты ссылаешься именно на скрипт плауера который должен висеть на игроке?
C#
1
PlayerController pCon = collider2.GetComponent<PlayerController>();
может сделаешь лучше прямую ссылку на скрипт плауреа, например через инспектор
0
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 55
24.05.2018, 10:59  [ТС]
Да, я проверил, я ссылаюсь именно на PlayerController игрока.
0
29 / 27 / 9
Регистрация: 10.08.2016
Сообщений: 163
24.05.2018, 12:10
попробуй где это возможно вызвать логи Debug.Log
таким образом найдешь где именно не меняется значение

перепроверь все связки в инспекторах, иерархию объектов и тд.
0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
24.05.2018, 12:32
Цитата Сообщение от IStayAway Посмотреть сообщение
C#
1
2
3
public void AddPlayerDamage(int damage2) {
   health2 -= damage2;
   healthBar2.value = health2;
выведите в лог значения health2 и healthBar2.value и увидите что там меняется или нет.

Добавлено через 1 минуту
а может у вас стремная (100500) валуе и не заметно изменение...
0
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 55
24.05.2018, 14:12  [ТС]
Спасибо, уже разобрался.

Проблема была в том, что мне не нужен был триггер, так как у меня enum, и вызывать
C#
1
2
 PlayerController pCon = collider2.GetComponent<PlayerController>();
            pCon.AddPlayerDamage(10);
нужно было в нём. Простите идиота, только начал изучать Unity, не знал что оно вот так работает. По крайней мере я чему-то научился. Всё равно спасибо что откликнулись на помощь.
0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
24.05.2018, 15:12
Цитата Сообщение от IStayAway Посмотреть сообщение
мне не нужен был триггер, так как у меня enum
а каким образом связаны эти 2 вещи?

хотя наверное знаю)

сцена.
забегает ГГ на поляну.
видит врага, враг смотрит в глаза ГГ, ГГ в глаза врагу, между ними пробежали искры.
враг со словами "Я НУМЕРАТОР" херачит ГГ плойкой на весь екран...
занавес накрывает дохлого ГГ.

Добавлено через 7 минут
Цитата Сообщение от IStayAway Посмотреть сообщение
C#
1
PlayerController pCon = collider2.GetComponent<PlayerController>();
и кстати а откуда вы собрались брать collider2 если не будете использовать триггер?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2018, 15:12
Помогаю со студенческими работами здесь

Урон от соприкосновения
Народ помогите пожалуйста!У меня есть переменная int healt = 100,мне нужно при соприкосновении с коллайдером отнимать int damage = 10....

Урон от падения с высоты
Ребята, помогите пожалуйста реализовать урон от падения с высоты. чет не нашел адекватных уроков. :wall: Добавлено через 10 минут ...

Урон от взрыва гранаты
скрипт для реализации эффекта взрыва public Transform BoomDetonator; public float TimeBoom = 120f; void Start() ...

Милый враг, с ДР!
Сегодня ДР у Милый Враг не довелось (пока) познакомится в реале, но знаком по форумным постам (их мало, но все по делу, а качество...

Враг недремлет!
Вчера вечером решил добавить новый сайт в РСЯ. Пихнул его на модерацию через ЦОП. Пока жду модерации, решил сегодня глянуть логи...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru