Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Додати частинки | Покращення гри
Бійцівська гра в Unity
course content

Зміст курсу

Бійцівська гра в Unity

Бійцівська гра в Unity

1. Система анімації Unity
2. Поведінка гравця
3. Поведінка Ворога
4. Покращення гри
5. Покращення гри Flappy Bird

bookДодати частинки

Пояснення змін у методі Update

Метод Update у скрипті ворога тепер включає логіку для оновлення менеджера станів, забезпечення того, щоб ворог був обернений до гравця, та обробку конкретного випадку, коли ворог знаходиться у стані DeathState. Ця логіка була додана, щоб запобігти продовженню обертання ворога до гравця після його смерті.

Компоненти методу

Оновлення StateManager

stateManager.UpdateStates(Time.deltaTime)

Цей рядок оновлює менеджер станів, передаючи час, що минув з останнього кадру (Time.deltaTime). Це забезпечує правильне оновлення поточного стану кожного кадру.

Перевірка DeathState

if (stateManager.GetCurrentState() is DeathState) return;

Цей рядок перевіряє, чи поточний стан є DeathState. Якщо ворог знаходиться у стані DeathState, метод завершується раніше, запобігаючи подальшим оновленням для обертання до гравця або інших поведінок.

Обертання до гравця

Наступні рядки забезпечують, що ворог завжди обернений до гравця:

scale.x = transform.position.x > player.position.x ? -1 : 1;

Цей рядок перевіряє, чи позиція x ворога більша за позицію x гравця:

  • Якщо так, scale.x встановлюється на -1, змушуючи ворога обернутися вліво;
  • Якщо ні, scale.x встановлюється на 1, змушуючи ворога обернутися вправо.

transform.localScale = scale;

Цей рядок застосовує оновлений масштаб до трансформації ворога, забезпечуючи його обертання в правильному напрямку.

Чому ми зробили це так

Обробка стану смерті

Додавання перевірки для DeathState забезпечує, що ворог не продовжує оновлювати свою поведінку або орієнтацію після смерті. Це важливо для підтримки логіки гри та запобігання несподіваним поведінкам після того, як ворог повинен бути неактивним.

Централізована логіка

Переміщуючи логіку обертання до гравця в метод Update, ми централізуємо цю поведінку, зменшуючи надмірність і покращуючи підтримуваність коду. Це забезпечує, що ворог завжди обернений до гравця незалежно від поточного стану, що спрощує код, специфічний для стану.

Пояснення обробки смерті ворога

Клас DeathState є специфічним станом, який обробляє поведінку ворога, коли він помирає.

Чому ми зробили це так

Обробка поведінки смерті

Клас DeathState спеціально управляє поведінкою ворога, коли він помирає, забезпечуючи відтворення анімації смерті та позначення стану як завершеного.

Інтеграція анімації

Використання параметрів аніматора забезпечує правильну синхронізацію анімації смерті зі зміною стану, надаючи плавний і реалістичний досвід.

Спавн частинок при смерті ворога

Цей код показує, як ворог обробляє свою смерть, коли його здоров'я досягає нуля. Він переходить до DeathState і відтворює ефект частинок смерті.

Розбір Коду

Перевірка Здоров'я

if (health <= 0)

Ця умова перевіряє, чи здоров'я ворога впало до нуля або нижче.

Перехід до DeathState

stateManager.ChangeState(deathState)

Цей рядок переводить ворога в DeathState за допомогою StateManager.

Створення Частинок Смерті

var deathParticle = Instantiate(deathParticles, transform.position, Quaternion.identity)

Цей рядок створює екземпляр ефекту частинок смерті на позиції ворога. deathParticles - це префаб, що містить систему частинок для ефекту смерті. Quaternion.identity забезпечує відсутність обертання частинок.

Відтворення Частинок Смерті

deathParticle.Play()

Цей рядок відтворює створений ефект частинок.

Знищення Частинок Смерті

Destroy(deathParticle.gameObject, 5)

Цей рядок планує знищення об'єкта GameObject ефекту частинок через 5 секунд, щоб він не залишався в грі нескінченно.

Чому Ми Зробили Це Так

Управління Станами: Перехід до DeathState забезпечує правильне управління поведінкою смерті ворога та виконання будь-якої специфічної логіки для стану смерті.

Візуальні Ефекти: Відтворення ефекту частинок смерті надає візуальний зворотний зв'язок гравцеві, покращуючи ігровий досвід.

Що відбувається з системою частинок, коли здоров'я менше або дорівнює нулю?

Що відбувається з системою частинок, коли здоров'я менше або дорівнює нулю?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 1
some-alt