Menu
CoddyTech

الأزرار المسماة

جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 21 من 85.

إلى جانب المفاتيح، لدى Unity أزرار: أسماء مدرجة في Input Manager (Edit, Project Settings, Input Manager)، وكل اسم مرتبط بمفتاح واحد أو أكثر. يسأل Input.GetButtonDown("Fire1") عن الاسم، لا عن مفتاح. يتضمن المشروع الجديد ما يلي:

  • "Jump": مفتاح المسافة
  • "Fire1": مفتاح Ctrl الأيسر أو زر الفأرة الأيسر
  • "Fire2": مفتاح Alt الأيسر أو زر الفأرة الأيمن
  • "Submit" و"Cancel": مفتاحا Enter وEscape

ترتبط أزرار لوحة الألعاب بالأسماء نفسها، ويمكن تغيير المفاتيح في Input Manager دون تعديل الشيفرة. تعمل GetButton وGetButtonDown وGetButtonUp مثل GetKey وGetKeyDown وGetKeyUp. يسجل هذا السلاح طلقة عند كل ضغطة على Ctrl أو نقرة:

void Update()
{
    if (Input.GetButtonDown("Fire1"))
    {
        Debug.Log("Shot!");
    }
}

الاسم عبارة عن سلسلة نصية، لذا فإن كتابة اسم خاطئ لا تمنع ترجمة الشيفرة. يبحث Unity عن الاسم عند تشغيل السطر، وإذا لم يكن هناك زر بهذا الاسم، فسيصدر خطأ في كل إطار: ArgumentException: Input Button Fier1 is not setup. عندما ترى هذه الرسالة، قارن الاسم في الشيفرة بالقائمة الموجودة في Input Manager.

challenge icon

التحدي

سهل

أصلح قفزة الضفدع واجعله يهبط مجددًا.

  1. اضغط على «العب»: تعرض وحدة التحكم خطأً بشأن الزر "Jumpp". غيّره إلى "Jump".
  2. أضف عبارة if ثانيةً على Input.GetButtonUp("Jump") تطرح new Vector3(0, hop, 0) من transform.position.

اضغط على «العب»، واضغط باستمرار على Space ثم أفلتها: يقفز الضفدع إلى الأعلى، ثم يهبط. ثم اضغط على «تحقق».

جرّب بنفسك

using UnityEngine;

public class Hopper : MonoBehaviour
{
    public float hop = 1.5f;

    void Update()
    {
        if (Input.GetButtonDown("Jumpp"))
        {
            transform.position += new Vector3(0, hop, 0);
        }
    }
}

جميع دروس أساسيات البرمجة النصية في Unity

تدرّب بنفسك: Playground لـ Unity