الربط في Inspector
جزء من قسم إنشاء ألعاب حقيقية في رحلة Unity على Coddy. الدرس 8 من 60.
يمكن أيضًا توصيل زر في نافذة 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 ()، لذا فإن الزر الموصول بالطريقتين يستدعي كليهما.
التحدي
سهلاجعل الأزرار الثلاثة للجسر المتحرك تعمل في Drawbridge.cs.
- يستدعي صف «عند النقر ()» لكل زر
RaiseأوLowerأوToggleLamp. أعد تسميةLowerBridgeإلىLower. - اكتب
public void Raise(): يتغيرbridge.localRotationإلى 70 درجة حول المحور x، ويعرضstatusTextالنصBridge: up. - اكتب
public void ToggleLamp(): يشغّلwarningLampعندما تكون مطفأة، ويطفئها عندما تكون مشغّلة.
اضغط «العب»: يؤدي كل زر وظيفته. ثم اضغط «تحقق».
جرّب بنفسك
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";
}
}
جميع دروس إنشاء ألعاب حقيقية
4المشاهد والمستويات
تحميل مشهدإعادة تشغيل المستوىالمستوى التاليالاحتفاظ بالبيانات بين المشاهدمراجعة: اختيار المستوى10مشروع: لعبة منصات ثلاثية الأبعاد
المسارمنصات متحركة2الأزرار والشاشات
الأزرار وonClickالتعبيرات Lambdaالربط في Inspectorتشغيل اللوحات وإيقافهاأشرطة الصحةمراجعة: متجر الترقيات5الحفظ باستخدام PlayerPrefs
حفظ رقمالتحميل بقيمة افتراضيةأعلى نتيجةحفظ الإعداداتمراجعة: العملات في البنك6مشروع: عدّاء لا نهاية له
ثلاثة مساراتعقبات أمامكتدرّب بنفسك: Playground لـ Unity