Menu
CoddyTech
flag Ar iconالعربيةdown icon

الربط في Inspector

جزء من قسم بناء ألعاب حقيقية في رحلة Unity على Coddy. الدرس 8 من 56.

يمكن أيضًا توصيل زر من نافذة Inspector، من دون استخدام AddListener إطلاقًا. تكون قائمة On Click () الخاصة بالزر فارغة في البداية. تضيف علامة + صفًا؛ اسحب الكائن الذي يحتوي على النص البرمجي إلى خانة الكائن في الصف، وستعرض القائمة المنسدلة للدوال مكوّنات ذلك الكائن، ولكل منها دواله العامة. اختر Jukebox > NextTrack، وعندها سيؤدي كل نقر إلى استدعاء هذه الدالة:

public class Jukebox : MonoBehaviour
{
    public string[] tracks;
    private int current;

    public void NextTrack()
    {
        current = (current + 1) % tracks.Length;
        Debug.Log("Now playing: " + tracks[current]);
    }
}

تعرض القائمة المنسدلة الدوال التي تكون public، وتُرجع void، ولا تأخذ أي وسيط أو تأخذ وسيطًا واحدًا من النوع int أو float أو string أو bool أو Object، وتضبط قيمته في الصف. لا تظهر الدالة الخاصة NextTrack في القائمة، لذا لا يمكن اختيارها. يخزّن الصف اسم الدالة: أعد تسمية NextTrack إلى SkipTrack، وسيعرض الصف <Missing Jukebox.NextTrack>، ولن تفعل النقرات شيئًا، ولن يظهر أي خطأ في Console.

تناسب الصفوف في نافذة Inspector الأزرار الموضوعة في المشهد: إذ يمكن لأي شخص في الفريق رؤية ما يستدعيه الزر وتغييره من دون فتح نص برمجي. يناسب AddListener في الشيفرة الأزرار التي تُنشأ أثناء تشغيل اللعبة، والاستدعاءات التي تمرّر قيمة من متغير، كما يكتشف المترجم إعادة تسمية دالة هناك. لا تظهر المستمعات المضافة من الشيفرة مطلقًا في قائمة On Click ()، لذا فإن الزر الموصول بالطريقتين يستدعي كليهما.

challenge icon

التحدي

سهل

للجسر المتحرك في القلعة ثلاثة أزرار، وقد رُبطت في نافذة Inspector بالبرنامج النصي Drawbridge على BridgeControl. لا يعمل أيٌّ منها بعد. حدّد RaiseButton وLowerButton وLampButton في نافذة Hierarchy واقرأ كل صف من صفوف On Click (): فهو يذكر الطريقة التي يستدعيها النقر. اجعل الأزرار الثلاثة تعمل، وذلك بتغيير Drawbridge.cs فقط:

  • إحدى الطرق مكتوبة بالفعل، لكن باسم آخر. غيّر اسمها إلى الاسم الذي يستدعيه صفها.
  • يؤدي رفع الجسر إلى تدوير bridge بمقدار 70 درجة حول x (أي localRotation)، ويعرض Bridge: up في statusText.
  • يشغّل زر المصباح warningLamp إذا كان مطفأً، ويطفئه إذا كان مضاءً.

اضغط Play، وجرّب كل زر، ثم اضغط Check.

جرّب بنفسك

using UnityEngine;
using TMPro;

public class Drawbridge : MonoBehaviour
{
    public Transform bridge;
    public TMP_Text statusText;
    public GameObject warningLamp;

    public void LowerBridge()
    {
        bridge.localRotation = Quaternion.Euler(0f, 0f, 0f);
        statusText.text = "Bridge: down";
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس بناء ألعاب حقيقية