Тёмный

Уровень здоровья и нанесения урона персонажу в Unity 

АйтиНуб
Подписаться 9 тыс.
Просмотров 14 тыс.
50% 1

В этом видео мы научимся создавать счетчик здоровья главного персонажа и добавлять урон в Unity.
🔙 Предыдущее видео: • Искуственный интеллект...
📜 Скрипт из видео здесь: drive.google.c...

Опубликовано:

 

12 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 80   
@Владислав-н8е1ч
Благодарю за информацию. Ещё и объяснения присутствуют, а не просто "делайте как я". Красава.
@user-rt9wc1yk1d
@user-rt9wc1yk1d Год назад
Спасибо за короткий и очень полезный туториал! Очень помогло и выручило)
@user-dr8co1sz4s
@user-dr8co1sz4s 4 месяца назад
Большое спасибо. Всё очень понятно спасибо!
@fresh7451
@fresh7451 Год назад
Чел, ты просто спас меня, спасибо
@lemenglx6576
@lemenglx6576 3 месяца назад
Здравствуйте. Уже битый третий час пытаюсь, но не получается. Сам объект есть, который наносит урон, хп и его потеря тоже работают, но как только объект запихиваю по иерархии во вргага, то он перестаёт наносить урон и просто отталкивает. Как решить?
@Флоутенс
@Флоутенс 3 месяца назад
пофиксил?
@lemenglx6576
@lemenglx6576 2 месяца назад
@@Флоутенс извини, не было уведомления. Да, решил. Друг помог
@user-tr3wx5ww3l
@user-tr3wx5ww3l 6 месяцев назад
Все здорово только вы пожалуйста досконально объясняйте еще подробнее а то сделал пол игры и мотом в одном видеоуроке что то пошло не так и теперь приходится делать все заново
@GameBrownBob
@GameBrownBob Год назад
У тебя очень позновательные и нужные видосы, но редко выходят.(( Я сделал шкалу здоровья персонажу с твоего предыдущего видео про enemy урон с хелфбара.(у меня игра с видом сверху) Можешь сказать как сделать востоновление HP допустим от колодца?(когда подходишь что бы востоновление медленно происходило )
@user-uf7hu2dq6y
@user-uf7hu2dq6y Год назад
Спасибо за отзыв. Дело в том, что я не делаю игры, по этому так сразу сказать как что то сделать не могу, надо самому сделать, а потом уже и видео выложить, я любитель в юнити, по этому и видео выходят редко, так как делаю их когда есть свободное время. Я изначально думал буду развиваться в этом вопросе, если канал станет полулярным, чтобы хоть какую-то копейку заработать, но без финансовых вливаний это к сожалению не возможно, по этому бесплатно работать на ютуб как-то нет мотивации). Просто иногда поддерживаю канал материалами, чтоб не заглох и все. А насчет вопроса по поводу восстановления хп, могу только сказать в какую сторону капать: пополнять также как и отбирать, только в обратном порядке, а действие это производить, например по соприкоснавению с колодцем, тоесть с его коллайдером, если колайдер руки персонажа коснулся коллайдера воды, то здоровье пополнилось, что-то типа того.
@GameBrownBob
@GameBrownBob Год назад
@@user-uf7hu2dq6y Спасибо за ответ. Согласен, тратить свое время на то что не приносит деньги не хочется! Ну как будут выходить твои видосы буду их смотреть и ставить лайк. Свою проблему с HP я решил с помощью чат gpt крутая штука.
@user-uf7hu2dq6y
@user-uf7hu2dq6y Год назад
@@GameBrownBob Да там и без чата Gpt инфы вагон в интернете, просто он тебе сразу популярный код выдал и все. Можно было и ассет взять готовый уже, например здесь unityassetfree.com/search?search=health&submit=. Вся суть программирования в том, чтобы самому научиться пусть даже сначала с ошибками и потом совершенствоваться, а пользуясь готовыми скриптами программировать никогда не научишься, это в точных науках можно смотреть готовые решения, а здесь самому надо находить решения, это я так тебе на всякий случай пишу на будущее. А так давай! Удачи в разработке!
@Criftiks
@Criftiks Месяц назад
Привет помоги пожалуйста тут у меня проблема с первым скриптом. Пишется в ошибках что public нельзя использовать ну я их и убрал но теперь во втором скрипте Пишется что не содержит определения для повреждения и ещё там одно сообщение горит жёлтым локальная функция повреждения объявлена но негде не используется помоги пж
@user-uf7hu2dq6y
@user-uf7hu2dq6y Месяц назад
К сожалению, я не знаю, может что-то в новых версиях юнити не так делается, может ты что-то пропустил, я уже не занимаюсь этим давно и в юнити наврядли уже вернусь. Если взять ту же версию юнити, что у меня в видео и сделать все точно так же, то должно сработать.
@obozrevatelanime9514
@obozrevatelanime9514 Год назад
Очень полезный материал, но как делать в случае, когда враг атакует из расстояния? Например, стреляет из оружия.
@user-uf7hu2dq6y
@user-uf7hu2dq6y Год назад
А какая разница вешаешь скрипт тот что на оружии, на то чем будет наноситься урон ( на стрелу например). А если стрелять при помощи частиц ( огнестрельным ) то там урон считается по прицеливанию и по нажатию на курок, видео об этом в инете полно.
@FugJin_650
@FugJin_650 Год назад
имя PlayerManager не существует в текущем контексте. выдает такую ошибку, что делать?
@user-uf7hu2dq6y
@user-uf7hu2dq6y Год назад
Где эта ошибка именно возникает? У тебя не виден объект PlayerManager, что здесь не понятного. Все сделать как на видео и будет работать. И когда скрипты закидуете готовые, постарайтесь хотя понимать что в них происходит. Если берете скрипт в описании, то смотрите что бы названия объектов и переменных совпадали с моими.
@haggerth9732
@haggerth9732 Год назад
Почему у меня есть анимация дамага, но урона я никакого не получаю?
@user-uf7hu2dq6y
@user-uf7hu2dq6y Год назад
Или что-то пропустил, или коллайдеры не соприкасаются друг с другом, попробуй увеличить коллайдер меча и персонажа своего.
@haggerth9732
@haggerth9732 Год назад
@@user-uf7hu2dq6y С вами можно как-то связаться?
@СоциальнаяНакипь
Такой вопрос, делал как в уроке про патрулирование и противник не бьет, если после первого удара не отойти, он перестает видеть персонажа Не совсем понимаю как это править
@user-uf7hu2dq6y
@user-uf7hu2dq6y Год назад
Там в скриптах есть условия if больше того меньше того и цифры, то есть если он видит перса твоего на расстоянии в 20 то начинает идти, если расстояние 10 , то уже бежит и если расстояние 5, то наносит урон. Регулируешь эти расстояние как тебе нужно, но заметь, что это расстояние от коллайдера объекта до коллайдера персонажа, то есть это расстояние между коллайдерами.
@lord_x_0-game_channel_x_0
@lord_x_0-game_channel_x_0 Год назад
Здравствуйте, у меня не работает я всё сделал как на видео не получилось, когда я скачал скрипты в менесежере было ещё окно болд Оверди
@user-uf7hu2dq6y
@user-uf7hu2dq6y Год назад
Привет. Ну что я могу сказать, если сделали с нуля все по видео, то все должно работать по другому не может быть, это программирование, если все одинаково сделано у всех, не может у одного работать, у другого не работать. Другое дело, что у вас там в проекте уже есть скрипты, ассеты и другое, которые возможно конфликтуют с этими скриптами, но к сожалению у меня нет вашего проекта, чтобы понять какие там ошибки. Кстати предыдущее видео вы смотрели, оно некоторым образом связано с этим. И еще, некоторые люди пользуясь скриптом из описания, называют переменные в проекте своими именами, соответственно названия переменных в скрипте и в проекте разные, вот и не работает. Читайте ошибки, логи, конечно, если вы хотите чему-то научиться. А я еще раз повторю на чистую сцену, если делать все внимательно по видео все работает. Кстати что за окно у вас выбивает я тоже не знаю.
@lord_x_0-game_channel_x_0
@lord_x_0-game_channel_x_0 Год назад
Крч
@lord_x_0-game_channel_x_0
@lord_x_0-game_channel_x_0 Год назад
Можете скинуть в закрепите этот проект
@lord_x_0-game_channel_x_0
@lord_x_0-game_channel_x_0 Год назад
Я зайду и сам посмотрю в чём проблема
@lord_x_0-game_channel_x_0
@lord_x_0-game_channel_x_0 Год назад
Пр, я нашёл в твоё проекте ошибку, ошибка в том што надо было менеджер повесить на плеера и тогда всё заработает !
@АлексейГанин-к3т
@АлексейГанин-к3т 3 месяца назад
здравствуйте! что делать если я все правильно сделал, но враг не наносит урон?
@user-uf7hu2dq6y
@user-uf7hu2dq6y 3 месяца назад
Привет, по коллайдеру попадает?
@АлексейГанин-к3т
@АлексейГанин-к3т 3 месяца назад
​@@user-uf7hu2dq6y по игроку моему?
@user-uf7hu2dq6y
@user-uf7hu2dq6y 3 месяца назад
@@АлексейГанин-к3т Я понимаю, что по игроку. Там в коде условия что когда коллайдеры соприкасаються, урон отнимается. У тебя коллайдеры вообще есть на игроке и оружие?
@makssem3843
@makssem3843 7 месяцев назад
Что делать если при запуски или спавне врага то урон наносится сам даже если игрока он не касается ?
@user-uf7hu2dq6y
@user-uf7hu2dq6y 7 месяцев назад
Коллайдеры скорее всего где то соприкасаются, настрой коллайдеры.
@alex25loks
@alex25loks Год назад
Всё круто, но хотелось бы что-бы урон наносился только при окончании анимации атаки у врага либо в определённом кадре, как это сделать?
@user-uf7hu2dq6y
@user-uf7hu2dq6y Год назад
Можно попробовать изменить порядок выполнения кода. Код выполняется сверху вниз, значит сначала включать анимацию, а после код с уроном писать.
@alex25loks
@alex25loks Год назад
@@user-uf7hu2dq6y Хорошо, попробую
@Heronzavr
@Heronzavr 6 месяцев назад
Будит видело как потом на плей маркет загрусить игру??? Или какой нибудь дорогой гугл /яндекс сайт по играм
@user-uf7hu2dq6y
@user-uf7hu2dq6y 6 месяцев назад
Не будет. Я уже этим не занимаюсь. Просто иногда возможно какие то видео будут, но точно не про это.
@TimurProgramist
@TimurProgramist Месяц назад
здравствуйте почему не работает урон
@den14888
@den14888 Год назад
привет у меня когда здоровье идёт до нуля то у меня идёт дальше -10 и тд
@user-uf7hu2dq6y
@user-uf7hu2dq6y Год назад
Я уже устал всем повторять. Если вы все внимательно сделали по видео, с нулевого проекта, а не когда у вас куча скриптов стоит, ассетов и прочего, которое может конфликтовать, то все будет работать. Также проверти имена переменных в скрипте, в иерархии, в аниматоре, чтобы они совпадали, если скрипт в описании качали. Проверьте в инспекторе, риджидбоди, коллайдеры, MeshAgent если надо. Также в скриптах есть некоторые величины ( например: скорость, расстояния, меньше, больше ), которые могут не совпадать с моими, теми что в видео. Вы должны все настраивать под себя сами, у всех проекты индивидуальные и я не могу знать что у вас там происходит.
@user-tr3wx5ww3l
@user-tr3wx5ww3l 6 месяцев назад
Вы просто сцену переименуйте как в скрипте и все будет ок
@Heronzavr
@Heronzavr 6 месяцев назад
А што будит если с ЧУЖОЙ игры открыть фаил в 70 мб resources.assets
@user-uf7hu2dq6y
@user-uf7hu2dq6y 6 месяцев назад
Бери открывай и увидишь.
@Heronzavr
@Heronzavr 6 месяцев назад
@@user-uf7hu2dq6yок надо ресурсы или все ассец фаилы
@user-uf7hu2dq6y
@user-uf7hu2dq6y 6 месяцев назад
@@HeronzavrПроэкт открыть ты имеешь в виду?
@already77
@already77 Год назад
Nice
@user-jw6kw9km3s
@user-jw6kw9km3s 4 месяца назад
Добрый день!Большое вам спасибо,но у меня есть один вопрос,как сделать так чтобы вылазили когда пишешь код подсказки на языке си шарп и у меня еще цвет слов совсем другой и подсказки не вылазят😢😢😢
@user-jw6kw9km3s
@user-jw6kw9km3s 4 месяца назад
Ето надо как-то настраивать визуал студио?если да то сможете помочь?
@user-uf7hu2dq6y
@user-uf7hu2dq6y 4 месяца назад
@@user-jw6kw9km3s Привет! Спасибо за отзыв. В визуал студии, что ли подсказки? А вы ее устанавливали в unity hub или отдельно?
@user-jw6kw9km3s
@user-jw6kw9km3s 4 месяца назад
@@user-uf7hu2dq6y Отдельно вроде,а что можно через юнити хаб?
@user-jw6kw9km3s
@user-jw6kw9km3s 4 месяца назад
@@user-uf7hu2dq6y Спасибо,я попробую скачать через юнити хаб,а мне осатвлять новый визуал студио?просто я работаю на версии юнити 2021 а визуал студио 2022,тоесть надо еще скачать версию 19 года,верно?
@user-jw6kw9km3s
@user-jw6kw9km3s 4 месяца назад
@@user-uf7hu2dq6y Нажаль не помогло,скачал через юнити хаб все равно слова другого цвета
@user-kz4ti2gh2x
@user-kz4ti2gh2x 4 месяца назад
Здравствуйте. У меня персонаж не получает урона. Когда DamageItem касается персонажа он отталкивается но урона не получает. Я перепробовал все варианты, и заново создал и повторял 3 раза, но хп все равно не убывает. Что можно сделать?
@user-uf7hu2dq6y
@user-uf7hu2dq6y 4 месяца назад
Привет, ну если отталкивается значит коллайдеры соприкасаются, просто не срабатывает код, ищите ошибку в скрипте, если брали здесь скрипт смотрите, чтобы названия переменных совпадали с вашими.
@user-bb4uf8ig7h
@user-bb4uf8ig7h Год назад
Как задать плавность исчезновения этого эффекта красного экрана?
@user-uf7hu2dq6y
@user-uf7hu2dq6y Год назад
Честно сказать без понятия, скорее всего через переменную никак, только через анимацию. Ищи видео где эффект дамага через анимацию делают вот например ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-RXOe0WK-jRI.html
@bugsbunny5211
@bugsbunny5211 Год назад
​@@user-uf7hu2dq6y using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class DangerZone : MonoBehaviour { public Slider healthBar; // Эта переменная типа slider для полоски здоровья(slider - стандартный элемент UI). Это можно использовать вместо значения здоровья public GameObject damageEffect; // В эту переменную перетаскиваем объект Canvas-а с изображением эффекта получения урона private float transparency; // В этой переменной будет значение прозрачности нашего эффекта private float timer; private float speed = 2; // В этой переменной хранится скорость пропадания эффекта получения урона. Чем больше число - тем медленнее будет исчезать эффект void Update() { if (healthBar.value == 0) { SceneManager.LoadScene("Level1"); } if (transparency > 0) { timer += Time.deltaTime/speed; // Старт таймера transparency = Mathf.Lerp(1, 0, timer); // Плавное изменения значения прозрачности damageEffect.GetComponent().color = new Color(255f, 255f, 255f, transparency); /* С каждой секундой прозрачность становится все больше и эффект исчезает */ } } private void OnCollisionEnter(Collision collision) { transparency = 1; // Значение прозрачности healthBar.value -= 10; // В этой строчке из полоски здоровья вычитается значение урона (можно поместить в переменную damage) damageEffect.GetComponent().color = new Color(255, 255, 255, transparency); /* В этой строчке меняется цвет и альфа-канал (первые 3 числа - это R, G, B, пишите числа в соответствии с желаемым цветом эффекта. Можно установить цвет в самой Unity и записать эти значения). 4 число (в нашем случае - переменная) - это как раз и есть значение альфа-канала (прозрачность)*/ timer = 0; // Сброс таймера. Он нам будет нужен для плавного изменения значения прозрачности } } Наверное, не лучший вариант решения проблемы, но всё же (я сам новичок). Измените только под свой проект и будет вам счастье) В этом коде всё в кучу просто и лучше распределить все по разным скриптам.
@bugsbunny5211
@bugsbunny5211 Год назад
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class DangerZone : MonoBehaviour { public Slider healthBar; // Эта переменная типа slider для полоски здоровья(slider - стандартный элемент UI). Это можно использовать вместо значения здоровья public GameObject damageEffect; // В эту переменную перетаскиваем объект Canvas-а с изображением эффекта получения урона private float transparency; // В этой переменной будет значение прозрачности нашего эффекта private float timer; private float speed = 2; // В этой переменной хранится скорость пропадания эффекта получения урона. Чем больше число - тем медленнее будет исчезать эффект void Update() { if (healthBar.value == 0) { SceneManager.LoadScene("Level1"); } if (transparency > 0) { timer += Time.deltaTime/speed; // Старт таймера transparency = Mathf.Lerp(1, 0, timer); // Плавное изменения значения прозрачности damageEffect.GetComponent().color = new Color(255f, 255f, 255f, transparency); /* С каждой секундой прозрачность становится все больше и эффект исчезает */ } } private void OnCollisionEnter(Collision collision) { transparency = 1; // Значение прозрачности healthBar.value -= 10; // В этой строчке из полоски здоровья вычитается значение урона (можно поместить в переменную damage) damageEffect.GetComponent().color = new Color(255, 255, 255, transparency); /* В этой строчке меняется цвет и альфа-канал (первые 3 числа - это R, G, B, пишите числа в соответствии с желаемым цветом эффекта. Можно установить цвет в самой Unity и записать эти значения). 4 число (в нашем случае - переменная) - это как раз и есть значение альфа-канала (прозрачность)*/ timer = 0; // Сброс таймера. Он нам будет нужен для плавного изменения значения прозрачности } } Наверное, не лучший вариант решения проблемы, но всё же (я сам новичок). Измените только под свой проект и будет вам счастье) В этом коде всё в кучу просто и лучше распределить все по разным скриптам.
@АртурГ
@АртурГ 11 месяцев назад
У меня не работает, я всё сделал как на видео
@user-uf7hu2dq6y
@user-uf7hu2dq6y 11 месяцев назад
Названия переменных и объектов все совпадают с теми, что в скриптах?
@Heronzavr
@Heronzavr 6 месяцев назад
Скрыпт надо на модель врога привезать???
@user-uf7hu2dq6y
@user-uf7hu2dq6y 6 месяцев назад
В видео все есть 5:12
@KladMenNabi
@KladMenNabi 8 месяцев назад
Blood Overley - это что?
@user-qf7th6tm4u
@user-qf7th6tm4u 6 месяцев назад
это blood overlay
@vargnon
@vargnon 4 месяца назад
из-за может быть что урон по персонажу не проходит?
@user-uf7hu2dq6y
@user-uf7hu2dq6y 3 месяца назад
Коллайдеры не соприкасаются.
@vargnon
@vargnon 3 месяца назад
@@user-uf7hu2dq6y а что делать если у меня моделька персонажа сделана через XR origin b character controller? Всё равно дело в коллайдерах?
@user-uf7hu2dq6y
@user-uf7hu2dq6y 3 месяца назад
@@vargnon Я ничего, не знаю, я уже больше года вообще юнити не юзаю. Если хотите высылайте проэкт я посмотрю.
@F1MUEzvz
@F1MUEzvz Год назад
спасибо большое но есть проблема вот скрипт using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; using UnityEngine.SceneManagement; public class PlayerManager : MonoBehaviour { public static int playerHP; public static bool isGameOver; public TextMeshProUGUI playerHPText; public GameObject bloodOverlay; void Start() { isGameOver = false; playerHP = 100; } // Update is called once per frame void Update() { playerHPText.text = "" + playerHP; if (isGameOver) { SceneManager.LoadScene("EnemyDamage"); } } public IEnumerator Damage (int damageAmount) { bloodOverlay.SetActive(true); playerHP -= damageAmount; if (playerHP
@user-uf7hu2dq6y
@user-uf7hu2dq6y Год назад
Файл как класс называется? Или просто скачай скрипты по ссылке и просто вставь в проект.
@F1MUEzvz
@F1MUEzvz Год назад
@@user-uf7hu2dq6y все исправил, юнити что то переработал и на все писал что, то название неправильное то еще что то, вообщем перезапустил и все получилось
@Zero_Two_016
@Zero_Two_016 Год назад
А как это можно сделать с танками?
@user-uf7hu2dq6y
@user-uf7hu2dq6y Год назад
Все по аналогии, только вместо меча, будет снаряд, ну еще несколько изменений потребуется. Вот эдесь наверное, что то похожее будет ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-n61YYEj4h1A.html
@Zero_Two_016
@Zero_Two_016 Год назад
@@user-uf7hu2dq6y спасибо большое!
Далее
iPhone 16 для НИЩЕБРОДОВ!
00:51
Просмотров 1,9 млн
Я сделал 3D Танчики с Денди :3
12:09
Создание Hello Neighbor на Unity #1
10:54
Просмотров 8 тыс.