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
Взаємодія Гравця з Об'єктами

Інтерфейси

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

Приклад

Припустимо, ви створюєте гру в Unity і хочете реалізувати різні типи зброї, такі як мечі, рушниці та луки. Ви можете створити інтерфейс з назвою IWeapon, який визначає базові дії, що має виконувати будь-яка зброя, наприклад, Attack() та Reload().

Тепер будь-який клас, який повинен вважатися зброєю у вашій грі, має реалізовувати цей інтерфейс. Наприклад, це може бути клас Sword або клас Gun.

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

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

csharp

TryGetComponent

csharp

Основні моменти

  • raycastHit: Це посилання на результат попадання променя. Коли ви виконуєте raycast у Unity, ви отримуєте інформацію про об'єкт, у який потрапив промінь;

  • .TryGetComponent(out IGetAttacked getAttacked): Цей метод намагається отримати певний компонент з transform об'єкта GameObject. Ключове слово out використовується для присвоєння отриманого компонента змінній getAttacked, якщо це вдалося. Якщо ні — все, що знаходиться під цим if, буде проігноровано;

  • IGetAttacked: Це тип інтерфейсу, який код намагається отримати з GameObject. Він вказує, що GameObject повинен містити компонент, який реалізує інтерфейс IGetAttacked.

Якщо GameObject, у який потрапив променевий кидок, має компонент, що реалізує інтерфейс IGetAttacked, змінна getAttacked після виконання цього рядка міститиме посилання на цей компонент. В іншому випадку, getAttacked буде присвоєно значення null.

question mark

Яке призначення методу TryGetComponent у Unity?

Select the correct answer

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

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

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

Секція 2. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

course content

Зміст курсу

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

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

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

book
Взаємодія Гравця з Об'єктами

Інтерфейси

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

Приклад

Припустимо, ви створюєте гру в Unity і хочете реалізувати різні типи зброї, такі як мечі, рушниці та луки. Ви можете створити інтерфейс з назвою IWeapon, який визначає базові дії, що має виконувати будь-яка зброя, наприклад, Attack() та Reload().

Тепер будь-який клас, який повинен вважатися зброєю у вашій грі, має реалізовувати цей інтерфейс. Наприклад, це може бути клас Sword або клас Gun.

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

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

csharp

TryGetComponent

csharp

Основні моменти

  • raycastHit: Це посилання на результат попадання променя. Коли ви виконуєте raycast у Unity, ви отримуєте інформацію про об'єкт, у який потрапив промінь;

  • .TryGetComponent(out IGetAttacked getAttacked): Цей метод намагається отримати певний компонент з transform об'єкта GameObject. Ключове слово out використовується для присвоєння отриманого компонента змінній getAttacked, якщо це вдалося. Якщо ні — все, що знаходиться під цим if, буде проігноровано;

  • IGetAttacked: Це тип інтерфейсу, який код намагається отримати з GameObject. Він вказує, що GameObject повинен містити компонент, який реалізує інтерфейс IGetAttacked.

Якщо GameObject, у який потрапив променевий кидок, має компонент, що реалізує інтерфейс IGetAttacked, змінна getAttacked після виконання цього рядка міститиме посилання на цей компонент. В іншому випадку, getAttacked буде присвоєно значення null.

question mark

Яке призначення методу TryGetComponent у Unity?

Select the correct answer

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

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

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

Секція 2. Розділ 5
some-alt