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Створити Головне Меню

Головне Меню

Скрипт для Головного Меню

Клас MainUI - це простий скрипт, який надає функціональність для початку гри та виходу з програми. Цей скрипт призначений для використання з кнопками інтерфейсу в Unity.

Визначення класу та методи

Метод StatTheGame призначений для ініціації гри шляхом завантаження нової сцени. Зокрема, SceneManager.LoadScene(1) вказує Unity завантажити сцену з індексом збірки 1, що відповідає її позиції в налаштуваннях збірки.

Метод Quit дозволяє закрити програму, викликавши Application.Quit(), хоча ця функціональність ефективна лише в зібраній програмі і не в Unity Editor.

Використання в Unity

Прикріплення скрипту

Створіть GameObject (наприклад, порожній GameObject або елемент інтерфейсу). Прикріпіть скрипт MainUI до GameObject, перетягнувши скрипт на нього або використовуючи кнопку Add Component в Інспекторі.

Налаштування кнопок інтерфейсу

Створіть кнопку інтерфейсу (наприклад, GameObject > UI > Button). Виберіть кнопку і перейдіть до Інспектора. У розділі On Click () натисніть кнопку +, щоб додати нову подію. Перетягніть GameObject з прикріпленим скриптом MainUI в поле об'єкта. З випадаючого списку виберіть MainUI > functionName.

Менеджер Гри

Скрипт для Менеджера Гри

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

Визначення класу та змінні-члени

Методи

Метод Awake

Призначення: Забезпечує існування лише одного екземпляра GameManager і запобігає його знищенню при завантаженні нових сцен.

Шаблон Singleton: Перевіряє, чи вже існує екземпляр. Якщо так, знищує дублікат. В іншому випадку, призначає екземпляр і позначає об'єкт, щоб він не знищувався при завантаженні нової сцени.

Метод Start

Призначення: Ініціалізує стан гри як Playing при старті гри і викликає подію onGameStateChanges.

Метод FinishGame

Призначення: Встановлює стан гри як Finished і викликає подію onGameStateChanges.

Перерахування GameStates

Призначення: Визначає можливі стани гри.

Реакція ворога на зміни стану гри

Цей метод обробляє зміни стану гри. Коли стан гри змінюється на Finished, стан ворога змінюється на idle.

Панель завершення

Скрипт для панелі завершення

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

Пояснення

Методи

Метод Start

Призначення: Підписується на подію GameManager.onGameStateChanges, щоб слухати зміни в стані гри.

Метод GameManager_onGameStateChanges

Призначення: Обробляє зміни стану гри. Коли стан гри Finished, активує панель завершення та викликає OnGameFinished.

Метод OnGameFinished

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

Логіка: Якщо гравець мертвий, метод встановлює текст "You lost" червоним кольором. Якщо гравець живий, встановлює текст "You Won" зеленим кольором.

Метод BackToMainMenu

Призначення: Завантажує сцену головного меню (індекс збірки 0) при виклику. Цей метод призначений для зв'язку з кнопкою в інтерфейсі користувача.

Метод Quit

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

Підсумок

Клас FinishPanel відображає результати завершення гри та пропонує варіанти повернення до головного меню або виходу. Він підписується на GameManager.onGameStateChanges, щоб відповідно оновлюватися, коли гра завершується, покращуючи користувацький досвід чітким зворотним зв'язком та інтуїтивними опціями.

1. Що відбувається, коли викликається метод `FinishGame` у класі `GameManager`?
2. Що відбувається, коли `GameManager` змінює стан гри на `GameStates.Finished`?
Що відбувається, коли викликається метод `FinishGame` у класі `GameManager`?

Що відбувається, коли викликається метод FinishGame у класі GameManager?

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

Що відбувається, коли `GameManager` змінює стан гри на `GameStates.Finished`?

Що відбувається, коли GameManager змінює стан гри на GameStates.Finished?

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

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

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

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

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