الأزرار المُسمّاة
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 14 من 67.
بالإضافة إلى المفاتيح، لدى 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.
التحدي
سهليقفز الضفدع ما دام زر Jump مضغوطًا: يؤدي الضغط على Jump إلى رفعه بمقدار hop وحدة مرة واحدة، ويعيده ترك الزر إلى الأسفل بالمقدار نفسه. ينفّذ الكود المبدئي الرفع بالفعل، لكنه يُظهر خطأً بمجرد تشغيل اللعبة.
اضغط على Play واقرأ الخطأ في Console. أصلحه، وأضف الهبوط عند ترك الزر، ثم اضغط على Check.
جرّب بنفسك
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
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر