В этом видео мы научимся создавать счетчик здоровья главного персонажа и добавлять урон в Unity. 🔙 Предыдущее видео: • Искуственный интеллект... 📜 Скрипт из видео здесь: drive.google.c...
Здравствуйте. Уже битый третий час пытаюсь, но не получается. Сам объект есть, который наносит урон, хп и его потеря тоже работают, но как только объект запихиваю по иерархии во вргага, то он перестаёт наносить урон и просто отталкивает. Как решить?
Все здорово только вы пожалуйста досконально объясняйте еще подробнее а то сделал пол игры и мотом в одном видеоуроке что то пошло не так и теперь приходится делать все заново
У тебя очень позновательные и нужные видосы, но редко выходят.(( Я сделал шкалу здоровья персонажу с твоего предыдущего видео про enemy урон с хелфбара.(у меня игра с видом сверху) Можешь сказать как сделать востоновление HP допустим от колодца?(когда подходишь что бы востоновление медленно происходило )
Спасибо за отзыв. Дело в том, что я не делаю игры, по этому так сразу сказать как что то сделать не могу, надо самому сделать, а потом уже и видео выложить, я любитель в юнити, по этому и видео выходят редко, так как делаю их когда есть свободное время. Я изначально думал буду развиваться в этом вопросе, если канал станет полулярным, чтобы хоть какую-то копейку заработать, но без финансовых вливаний это к сожалению не возможно, по этому бесплатно работать на ютуб как-то нет мотивации). Просто иногда поддерживаю канал материалами, чтоб не заглох и все. А насчет вопроса по поводу восстановления хп, могу только сказать в какую сторону капать: пополнять также как и отбирать, только в обратном порядке, а действие это производить, например по соприкоснавению с колодцем, тоесть с его коллайдером, если колайдер руки персонажа коснулся коллайдера воды, то здоровье пополнилось, что-то типа того.
@@user-uf7hu2dq6y Спасибо за ответ. Согласен, тратить свое время на то что не приносит деньги не хочется! Ну как будут выходить твои видосы буду их смотреть и ставить лайк. Свою проблему с HP я решил с помощью чат gpt крутая штука.
@@GameBrownBob Да там и без чата Gpt инфы вагон в интернете, просто он тебе сразу популярный код выдал и все. Можно было и ассет взять готовый уже, например здесь unityassetfree.com/search?search=health&submit=. Вся суть программирования в том, чтобы самому научиться пусть даже сначала с ошибками и потом совершенствоваться, а пользуясь готовыми скриптами программировать никогда не научишься, это в точных науках можно смотреть готовые решения, а здесь самому надо находить решения, это я так тебе на всякий случай пишу на будущее. А так давай! Удачи в разработке!
Привет помоги пожалуйста тут у меня проблема с первым скриптом. Пишется в ошибках что public нельзя использовать ну я их и убрал но теперь во втором скрипте Пишется что не содержит определения для повреждения и ещё там одно сообщение горит жёлтым локальная функция повреждения объявлена но негде не используется помоги пж
К сожалению, я не знаю, может что-то в новых версиях юнити не так делается, может ты что-то пропустил, я уже не занимаюсь этим давно и в юнити наврядли уже вернусь. Если взять ту же версию юнити, что у меня в видео и сделать все точно так же, то должно сработать.
А какая разница вешаешь скрипт тот что на оружии, на то чем будет наноситься урон ( на стрелу например). А если стрелять при помощи частиц ( огнестрельным ) то там урон считается по прицеливанию и по нажатию на курок, видео об этом в инете полно.
Где эта ошибка именно возникает? У тебя не виден объект PlayerManager, что здесь не понятного. Все сделать как на видео и будет работать. И когда скрипты закидуете готовые, постарайтесь хотя понимать что в них происходит. Если берете скрипт в описании, то смотрите что бы названия объектов и переменных совпадали с моими.
Такой вопрос, делал как в уроке про патрулирование и противник не бьет, если после первого удара не отойти, он перестает видеть персонажа Не совсем понимаю как это править
Там в скриптах есть условия if больше того меньше того и цифры, то есть если он видит перса твоего на расстоянии в 20 то начинает идти, если расстояние 10 , то уже бежит и если расстояние 5, то наносит урон. Регулируешь эти расстояние как тебе нужно, но заметь, что это расстояние от коллайдера объекта до коллайдера персонажа, то есть это расстояние между коллайдерами.
Привет. Ну что я могу сказать, если сделали с нуля все по видео, то все должно работать по другому не может быть, это программирование, если все одинаково сделано у всех, не может у одного работать, у другого не работать. Другое дело, что у вас там в проекте уже есть скрипты, ассеты и другое, которые возможно конфликтуют с этими скриптами, но к сожалению у меня нет вашего проекта, чтобы понять какие там ошибки. Кстати предыдущее видео вы смотрели, оно некоторым образом связано с этим. И еще, некоторые люди пользуясь скриптом из описания, называют переменные в проекте своими именами, соответственно названия переменных в скрипте и в проекте разные, вот и не работает. Читайте ошибки, логи, конечно, если вы хотите чему-то научиться. А я еще раз повторю на чистую сцену, если делать все внимательно по видео все работает. Кстати что за окно у вас выбивает я тоже не знаю.
@@АлексейГанин-к3т Я понимаю, что по игроку. Там в коде условия что когда коллайдеры соприкасаються, урон отнимается. У тебя коллайдеры вообще есть на игроке и оружие?
Я уже устал всем повторять. Если вы все внимательно сделали по видео, с нулевого проекта, а не когда у вас куча скриптов стоит, ассетов и прочего, которое может конфликтовать, то все будет работать. Также проверти имена переменных в скрипте, в иерархии, в аниматоре, чтобы они совпадали, если скрипт в описании качали. Проверьте в инспекторе, риджидбоди, коллайдеры, MeshAgent если надо. Также в скриптах есть некоторые величины ( например: скорость, расстояния, меньше, больше ), которые могут не совпадать с моими, теми что в видео. Вы должны все настраивать под себя сами, у всех проекты индивидуальные и я не могу знать что у вас там происходит.
Добрый день!Большое вам спасибо,но у меня есть один вопрос,как сделать так чтобы вылазили когда пишешь код подсказки на языке си шарп и у меня еще цвет слов совсем другой и подсказки не вылазят😢😢😢
@@user-uf7hu2dq6y Спасибо,я попробую скачать через юнити хаб,а мне осатвлять новый визуал студио?просто я работаю на версии юнити 2021 а визуал студио 2022,тоесть надо еще скачать версию 19 года,верно?
Здравствуйте. У меня персонаж не получает урона. Когда DamageItem касается персонажа он отталкивается но урона не получает. Я перепробовал все варианты, и заново создал и повторял 3 раза, но хп все равно не убывает. Что можно сделать?
Привет, ну если отталкивается значит коллайдеры соприкасаются, просто не срабатывает код, ищите ошибку в скрипте, если брали здесь скрипт смотрите, чтобы названия переменных совпадали с вашими.
Честно сказать без понятия, скорее всего через переменную никак, только через анимацию. Ищи видео где эффект дамага через анимацию делают вот например ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-RXOe0WK-jRI.html
@@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; // Сброс таймера. Он нам будет нужен для плавного изменения значения прозрачности } } Наверное, не лучший вариант решения проблемы, но всё же (я сам новичок). Измените только под свой проект и будет вам счастье) В этом коде всё в кучу просто и лучше распределить все по разным скриптам.
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; // Сброс таймера. Он нам будет нужен для плавного изменения значения прозрачности } } Наверное, не лучший вариант решения проблемы, но всё же (я сам новичок). Измените только под свой проект и будет вам счастье) В этом коде всё в кучу просто и лучше распределить все по разным скриптам.
спасибо большое но есть проблема вот скрипт 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 все исправил, юнити что то переработал и на все писал что, то название неправильное то еще что то, вообщем перезапустил и все получилось
Все по аналогии, только вместо меча, будет снаряд, ну еще несколько изменений потребуется. Вот эдесь наверное, что то похожее будет ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-n61YYEj4h1A.html