مضغوط، مستمر الضغط، محرر
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 19 من 85.
يمكن لـ Unity أن تخبرك بثلاثة أمور مختلفة عن مفتاح، ويُستفسر عن كل منها داخل Update():
Input.GetKeyDown(KeyCode.Space): هل ضُغط على مفتاح Space في هذا الإطار؟ تكون النتيجة true في إطار واحد عند كل ضغطة.Input.GetKey(KeyCode.Space): هل مفتاح Space مضغوط الآن؟ تكون النتيجة true في كل إطار ما دام مفتاح Space مضغوطًا.Input.GetKeyUp(KeyCode.Space): هل أُفلت مفتاح Space في هذا الإطار؟ تكون النتيجة true في إطار واحد، عندما يُرفع الإصبع عن المفتاح.
اضغط باستمرار على Space لمدة نصف ثانية عند 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() مرة واحدة، وقد تفوتها بذلك جميع الضغطات تقريبًا.
التحدي
سهليُشحَن المقلاع أثناء الضغط على مفتاح المسافة، ويعرض مقدار الشحنة عند إفلاته.
- في
Update()، طالما أنInput.GetKey(KeyCode.Space)تساوي true، أضِفTime.deltaTimeإلىcharge. - عند
Input.GetKeyUp(KeyCode.Space)، سجّل"Charge: " + charge، ثم عيّنchargeإلى 0.
اضغط «العب»، واستمر في الضغط على مفتاح المسافة ثم أفلت المفتاح: سيعرض Console سطرًا مثل Charge: 1.5. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
public class Slingshot : MonoBehaviour
{
float charge = 0f;
void Update()
{
// أثناء الضغط باستمرار على Space: تزداد charge بمقدار 1 كل ثانية.
// عند إفلات Space: سجّل قيمة charge، ثم أعدها إلى 0.
}
}
جميع دروس أساسيات البرمجة النصية في Unity
1أساسيات C# في Unity
مرحبًا يا Unityالمتغيراتالأعداد العشرية تحتاج إلى fالنص في وحدة التحكممتغيرات تتذكرإذا وإلامقارنة الأعدادمراجعة: جامع العملات7الحلقات والدوال
التكرار باستخدام forحلقات داخل حلقاتكتابة دالةدوال تُعيد إجابةالمصفوفاتمراجعة: السُّلّم5المتجهات
جمع المتجهاتالاتجاهاتالفضاء المحلي والعالميالسرعة القُطريةالمسافة بين الأشياءVector3 بنية Structمراجعة: قيادة الطائرة المسيّرة8كائنات اللعبة والمكوّنات
المراجع في Inspectorالحصول على مكوّنالمكوّنات المفقودةإضافة مكوّنRequireComponentالإظهار والإخفاءمراجعة: مفتاح الإضاءة6التحويلات والتسلسل الهرمي
الآباء والأبناءارفع العلمالتحجيمانظر إلى الأشياءتحرّك نحو نقطةمراجعة: القمر في مدارهتدرّب بنفسك: Playground لـ Unity