Посібник для початківців інтерфейсу Unity C#

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

Unity Інтерфейс C#

Щоб використовувати інтерфейси в Unity, виконайте наведені нижче дії.

  • Створіть новий сценарій і назвіть його як завгодно (у моєму випадку я назву його InterfaceContainer)
  • Видаліть усе, що всередині нього, а потім вставте код нижче:
public interface IEntity
{
    void Initialize(); //Function without any arguments
    float health { get; set; } //A variable
    void ApplyDamage(float points); //Function with one argument
}

Інтерфейс називається IEntity (Примітка. Велика i на початку не обов’язкова, але для зручності назвіть усі свої інтерфейси за допомогою «I» почати, таким чином ви дізнаєтесь, коли клас використовує інтерфейс).

Щоб використовувати інтерфейс у сценарії C#, виконайте наведені нижче дії.

  • Створіть новий сценарій і назвіть його як завгодно (у моєму випадку я назву його EntityScript)
  • Додайте ім’я інтерфейсу після MonoBehaviour, яке в даному випадку є IEntity (розділене комою)
public class EntityScript : MonoBehaviour, IEntity

Ви помітите, що сценарій видає помилку, тому що методи інтерфейсу не реалізовано. Отже, давайте реалізуємо методи IEntity:

using UnityEngine;

public class EntityScript : MonoBehaviour, IEntity
{

    public float health { get; set; }

    public void Initialize()
    {
        health = 100;
    }

    public void ApplyDamage(float points)
    {
        health -= points;
    }
}

Методи інтерфейсу тепер реалізовано.

Як інтерфейси спрощують робочий процес програмування?

Основна перевага інтерфейсів C# полягає в тому, що вони можуть використовуватися декількома класами, тому замість виклику GetComponent для кожного сценарію ви можете отримати всі посилання на сценарії, використовуючи назву інтерфейсу.

Використовуйте інтерфейси C#, коли вам потрібно реалізувати ті самі методи в кількох сценаріях або коли вам потрібно посилатися на невідомий клас у тому самому контексті.

Перевірте приклад нижче:

        //Get the script that uses IEntity interface
        IEntity interfaceEntity = gameObject.GetComponent<IEntity>();
        interfaceEntity.Initialize(); //Initializing the entity
        interfaceEntity.ApplyDamage(10); //Applying the damage
        interfaceEntity.health += 10; //Healing the entity

Наведений вище сценарій отримує компонент з інтерфейсом IEntity, а потім викликає його методи.

Бонус

Інтерфейси також можуть приймати спеціальні типи даних, наприклад:

public interface IHealable<T>
{
    void Heal(T type);
}

Потім тип даних надається під час реалізації інтерфейсу в класі (це може бути стандартний тип, такий як float або int, або більш складний тип, такий як Class або навіть інший Інтерфейс):

using UnityEngine;

public class EntityScript : MonoBehaviour, IEntity, IHealable<int>
{

    public float health { get; set; }

    public void Initialize()
    {
        //health = 100;
        Heal(100);
    }

    public void ApplyDamage(float points)
    {
        health -= points;
    }

    public void Heal(int points)
    {
        health = points;
    }
}
Рекомендовані статті
Вступ до кінцевої машини в Unity
Впровадження керування гарнітурою VR в Unity
Скрипт для захоплення об'єктів в Unity
Створення сцени Game Over в Unity
Посібник з інтеграції контролера Nintendo з Unity
Найкращі корисні фрагменти коду для розробників Unity
Реалізація цілей в Unity Games