Зміст курсу
Бійцівська гра в Unity
Бійцівська гра в Unity
Взаємодія гравця з об'єктами
Інтерфейси
Інтерфейс схожий на контракт, який визначає набір методів і властивостей, які клас повинен реалізувати. Це дозволяє вам вказати, яку функціональність повинен мати клас, без надання деталей реалізації.
Приклад
Припустимо, ви створюєте гру в Unity і хочете створити різні типи зброї, такі як мечі, рушниці та луки. Ви можете створити інтерфейс під назвою IWeapon
, який визначає основні дії, які повинна виконувати будь-яка зброя, такі як Attack()
та Reload()
.
Тепер будь-який клас, який хоче вважатися зброєю у вашій грі, повинен реалізувати цей інтерфейс. Наприклад, ви можете мати клас Sword
або клас Gun
.
Використовуючи інтерфейси, ви можете забезпечити, щоб усі ваші види зброї мали однакову базову функціональність (Attack()
і Reload()
), але кожен з них може мати свою унікальну реалізацію. Це робить ваш код більш модульним і легшим для управління, особливо коли ваша гра стає складнішою.
Це інтерфейс, який ми використовували в нашій грі для позначення ворогів як об'єктів, які можуть бути атаковані.
TryGetComponent
Основні Пункти
raycastHit
: Це стосується результату попадання променя. Коли ви кидаєте промінь в Unity, ви отримуєте інформацію про те, який об'єкт;.TryGetComponent(out IGetAttacked getAttacked)
: Цей метод намагається отримати певний компонент з трансформаціїGameObject
. Ключове словоout
використовується для призначення отриманого компонента зміннійgetAttacked
, якщо це вдалося. Якщо ні, то ігнорується все, що під цимif
;IGetAttacked
: Це тип інтерфейсу, який код намагається отримати зGameObject
. Він вказує, щоGameObject
повинен мати компонент, який реалізує інтерфейсIGetAttacked
.
Якщо GameObject
, в який влучив промінь, має компонент, що реалізує інтерфейс IGetAttacked
, змінна getAttacked
буде містити посилання на цей компонент після виконання цього рядка. В іншому випадку, getAttacked
буде присвоєно значення null.
Дякуємо за ваш відгук!