الضغط والاستمرار والتحرير
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 12 من 67.
يمكن لـ Unity أن يخبرك بثلاثة أشياء مختلفة عن أحد المفاتيح، ويُستفسر عن كل منها في Update():
Input.GetKeyDown(KeyCode.Space): هل تم الضغط على مفتاح المسافة في هذا الإطار؟ تكون النتيجة true في إطار واحد لكل ضغطة.Input.GetKey(KeyCode.Space): هل مفتاح المسافة مضغوط الآن؟ تكون النتيجة true في كل إطار يظل فيه مفتاح المسافة مضغوطًا.Input.GetKeyUp(KeyCode.Space): هل تم تحرير مفتاح المسافة في هذا الإطار؟ تكون النتيجة true في إطار واحد، عندما يُرفع الإصبع عن المفتاح.
إذا أبقيت مفتاح المسافة مضغوطًا لمدة نصف ثانية عند 60 إطارًا في الثانية، فستكون GetKey نتيجتها true في 30 إطارًا، وGetKeyDown في أول إطار منها، وGetKeyUp في الإطار الذي يلي الأخير. المدفع الذي يطلق مرة واحدة لكل ضغطة يستعلم عن GetKeyDown؛ أما مع GetKey، فستؤدي ضغطة واحدة إلى إطلاق 30 طلقة:
public int shots = 0;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
shots++;
Debug.Log("Shots fired: " + shots);
}
}تُستخدم GetKeyUp لما يحدث عندما يرفع اللاعب إصبعه عن المفتاح، مثل انتهاء العدو السريع. تعطي الطرق الثلاث إجابة للإطار الحالي فقط، ولهذا يجب استخدامها في Update(): فهي تعمل في كل إطار، بينما تعمل Start() مرة واحدة، وبالتالي تفوتها جميع الضغطات تقريبًا.
التحدي
سهليُشحَن المقلاع أثناء الضغط على مفتاح Space: تزداد charge بمقدار 1 لكل ثانية يُضغط فيها على Space، ولا تزداد عندما لا يكون مضغوطًا. عند تحرير Space، سجّل Charge: متبوعًا بقيمة الشحن (على سبيل المثال Charge: 1.5)، ثم أعد charge إلى 0 للتسديدة التالية.
اضغط على تشغيل، واضغط مطولًا على Space ثم حرّره، وراقب وحدة التحكم. ثم اضغط على تحقّق.
جرّب بنفسك
using UnityEngine;
public class Slingshot : MonoBehaviour
{
float charge = 0f;
void Update()
{
// أثناء الضغط المستمر على Space: تزداد charge بمقدار 1 كل ثانية.
// عند إفلات Space: سجّل قيمة charge، ثم أعدها إلى 0.
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر