Ghid pentru începători pentru interfața Unity C#

O interfață în C# este un contract care definește un set de metode, proprietăți și evenimente pe care o clasă trebuie să le implementeze. Acționează ca un model pentru implementarea funcționalității în mai multe clase. Interfețele oferă o modalitate de a obține polimorfismul, permițând diferitelor clase să împărtășească comportamente comune.

Unity Interfață C#

Pentru a utiliza interfețele în Unity, urmați pașii de mai jos:

  • Creați un script nou și numiți-l orice (în cazul meu îl voi numi InterfaceContainer)
  • Îndepărtați tot ce este în interior, apoi lipiți codul de mai jos:
public interface IEntity
{
    void Initialize(); //Function without any arguments
    float health { get; set; } //A variable
    void ApplyDamage(float points); //Function with one argument
}

Interfața se numește IEntity (Notă: capitalul i la început nu este necesară, dar pentru comoditate, numiți toate interfețele cu „I” la începeți, astfel veți ști când clasa folosește o interfață).

Pentru a utiliza interfața într-un script C#, urmați pașii de mai jos:

  • Creați un script nou și numiți-l orice (în cazul meu îl voi numi EntityScript)
  • Adăugați numele interfeței după MonoBehaviour, care este IEntity în acest caz (separat prin virgulă)
public class EntityScript : MonoBehaviour, IEntity

Veți observa că scriptul dă o eroare, asta pentru că metodele de interfață nu sunt implementate. Deci, să implementăm metodele 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;
    }
}

Metodele de interfață sunt acum implementate.

Cum simplifică interfețele fluxul de lucru de programare?

Principalul avantaj al interfețelor C# este că pot fi utilizate de mai multe classes, așa că în loc să apelați GetComponent pentru fiecare script, puteți obține toate referințele de script folosind numele interfeței.

Utilizați interfețele C# atunci când trebuie să implementați aceleași metode în mai multe scripturi sau când trebuie să faceți referire la o clasă necunoscută în același context.

Verificați exemplul de mai jos:

        //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

Scriptul de mai sus primește o componentă cu o interfață IEntity, apoi apelează metodele acesteia.

Primă

Interfețele pot accepta și tipuri de date personalizate, de exemplu:

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

Tipul de date este apoi furnizat la implementarea interfeței într-o clasă (poate fi un tip standard, cum ar fi float sau int, sau un tip mai complex, cum ar fi un Class sau chiar altul Interfață):

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;
    }
}
Articole sugerate
Introducere în mașina de stat în Unity
Un ghid pentru încărcarea scenei în Unity
Ghid cuprinzător pentru transformarea rotației în Unity
Un ghid pentru integrarea controlerului Nintendo cu Unity
Script pentru preluarea obiectelor în Unity
Ghid pentru monocomportament în Unity
Cele mai utile fragmente de cod pentru dezvoltatorii Unity