دليل المبتدئين لواجهة Unity C#

الواجهة في C# عبارة عن عقد يحدد مجموعة من الأساليب والخصائص والأحداث التي يجب على الفصل تنفيذها. إنه بمثابة مخطط لتنفيذ الوظائف في فئات متعددة. توفر الواجهات طريقة لتحقيق تعدد الأشكال، مما يسمح للفئات المختلفة بمشاركة السلوكيات المشتركة.

Unity واجهة #C

لاستخدام الواجهات في Unity، اتبع الخطوات التالية:

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# هي أنه يمكن استخدامها بواسطة عدة classes، لذلك بدلاً من استدعاء 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;
    }
}
المقالات المقترحة
مقدمة لآلة الدولة في الوحدة
دليل لدمج وحدة تحكم Nintendo مع Unity
كيفية تغيير دقة الشاشة في لعبة الوحدة
دليل لتحميل المشهد في الوحدة
دليل شامل لتحويل التناوب في الوحدة
دليل للسلوك الأحادي في الوحدة
إنشاء كائنات تفاعلية في الوحدة