Unity C# Arayüzü Başlangıç ​​Kılavuzu

C#'taki arayüz, bir sınıfın uygulaması gereken bir dizi yöntemi, özelliği ve olayı tanımlayan bir sözleşmedir. Birden fazla sınıfta işlevsellik uygulamak için bir plan görevi görür. Arayüzler, farklı sınıfların ortak davranışları paylaşmasına olanak tanıyarak polimorfizm elde etmenin bir yolunu sağlar.

Unity C# Arayüzü

Unity'deki arayüzleri kullanmak için aşağıdaki adımları izleyin:

  • yeni bir komut dosyası oluşturun ve ona herhangi bir ad verin (benim durumumda buna InterfaceContainer adını vereceğim)
  • İçindeki her şeyi kaldırın ve aşağıdaki kodu yapıştırın:
public interface IEntity
{
    void Initialize(); //Function without any arguments
    float health { get; set; } //A variable
    void ApplyDamage(float points); //Function with one argument
}

Arayüzün adı IEntity (Not: Başlangıçta büyük harf i gerekli değildir, ancak kolaylık olması açısından tüm arayüzlerinizi sonuna 'I' ile adlandırın. Bu şekilde sınıfın bir arayüz kullandığını anlarsınız).

Arayüzü bir C# betiğinde kullanmak için aşağıdaki adımları izleyin:

  • yeni bir komut dosyası oluşturun ve ona herhangi bir ad verin (benim durumumda buna EntityScript adını vereceğim)
  • Bu durumda IEntity olan MonoBehaviour'dan sonra arayüz adı ekleyin (virgülle ayrılmış olarak)
public class EntityScript : MonoBehaviour, IEntity

Komut dosyasının hata verdiğini fark edeceksiniz, bunun nedeni arayüz yöntemlerinin uygulanmamasıdır. O halde IEntity yöntemlerini uygulayalım:

using UnityEngine;

public class EntityScript : MonoBehaviour, IEntity
{

    public float health { get; set; }

    public void Initialize()
    {
        health = 100;
    }

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

Arayüz yöntemleri artık uygulanmaktadır.

Arayüzler programlama iş akışını nasıl basitleştirir?

C# arayüzlerinin temel avantajı, birden çok sınıf tarafından kullanılabilmesidir, böylece her komut dosyası için GetComponent'i çağırmak yerine, tüm komut dosyası referanslarını arayüz adını kullanarak alabilirsiniz.

Aynı yöntemleri birden fazla komut dosyasında uygulamanız gerektiğinde veya aynı bağlamda bilinmeyen bir sınıfa başvuruda bulunmanız gerektiğinde C# arayüzlerini kullanın.

Aşağıdaki örneği kontrol edin:

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

Yukarıdaki komut dosyası, IEntity arayüzüne sahip bir bileşen alır ve ardından onun yöntemlerini çağırır.

Bonus

Arayüzler ayrıca özel veri türlerini de kabul edebilir, örneğin:

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

Veri türü daha sonra Arayüzü bir Sınıfta uygularken sağlanır (float veya int gibi standart bir tür veya Class gibi daha karmaşık bir tür veya hatta başka bir tür olabilir) Arayüz):

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;
    }
}
Önerilen Makaleler
Unity'de Durum Makinesine Giriş
Çekmece ve Dolapların Özel Anahtarlarla Birlik İçinde Açılması
Unity'de VR Kulaklık Kontrolünü Uygulama
Unity'de Sıra Tabanlı Oyunlar Yapmak
Unity'de Av Simülatörü Oluşturma
Unity'de Işınlanmayı Uygulamak
Unity Oyununda Ekran Çözünürlüğü Nasıl Değiştirilir