المحاور
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 20 من 85.
تحوّل Input.GetAxis("Horizontal") السهمين الأيسر والأيمن (وكذلك A وD) إلى رقم واحد من -1 إلى 1: -1 لليسار، و1 لليمين، و0 عند عدم الضغط على أيٍّ منهما. وتفعل Input.GetAxis("Vertical") الشيء نفسه مع السهمين السفلي والعلوي (S وW). يستبدل استدعاء واحد عبارتي if، كما تتحكم عصا ذراع الألعاب بالمحاور نفسها من دون أي شيفرة إضافية.
لا يقفز الرقم فجأة. باستخدام الإعدادات الافتراضية في Unity، يتحرك نحو القيمة المستهدفة بمعدل 3 في الثانية، لذا يستغرق الوصول إلى 1 ثلث ثانية بعد الضغط، ثم يستغرق الرجوع إلى 0 ثلث ثانية أخرى بعد رفع الإصبع. يجعل هذا التدرّج مركبة الوسادة الهوائية هذه تسرّع بلطف وتنزلق حتى تتوقف:
public float speed = 5f;
void Update()
{
float h = Input.GetAxis("Horizontal");
transform.position += new Vector3(h * speed * Time.deltaTime, 0, 0);
}يتجاوز Input.GetAxisRaw("Horizontal") هذا التدرّج: فتكون القيمة بالضبط -1 أو 0 أو 1 في كل إطار، لذا تبدأ الحركة وتتوقف فورًا. استخدم GetAxis للأشياء التي يُفترض أن تشعرك بالثقل، واستخدم GetAxisRaw للتحكم السريع والدقيق. عند الضغط على السهمين معًا، تعطي كلتا الدالتين القيمة 0، لأن الاتجاهين يلغي أحدهما الآخر. (في مشروع Unity 6، ينطبق إعداد Active Input Handling من درس التوجيه باستخدام المفاتيح على المحاور أيضًا.)
التحدي
سهلاجعل العربة الجوالة تتحرك بسلاسة حادة، من دون تدرّج.
- في
Update()، اقرأfloat h = Input.GetAxisRaw("Horizontal");وfloat v = Input.GetAxisRaw("Vertical");. - أضف
new Vector3(h * speed * Time.deltaTime, 0, v * speed * Time.deltaTime)إلىtransform.position.
اضغط على «العب»، وانقر داخل اللعبة وحرّك العربة باستخدام الأسهم أو WASD: ستبدأ العربة وتتوقف فورًا. ثم اضغط على «تحقق».
جرّب بنفسك
using UnityEngine;
public class Rover : MonoBehaviour
{
public float speed = 4f;
void Update()
{
// يحرّك Horizontal على طول المحور x، وVertical على طول المحور z، دون تدرّج في الحركة.
}
}
جميع دروس أساسيات البرمجة النصية في Unity
1أساسيات C# في Unity
مرحبًا يا Unityالمتغيراتالأعداد العشرية تحتاج إلى fالنص في وحدة التحكممتغيرات تتذكرإذا وإلامقارنة الأعدادمراجعة: جامع العملات7الحلقات والدوال
التكرار باستخدام forحلقات داخل حلقاتكتابة دالةدوال تُعيد إجابةالمصفوفاتمراجعة: السُّلّم5المتجهات
جمع المتجهاتالاتجاهاتالفضاء المحلي والعالميالسرعة القُطريةالمسافة بين الأشياءVector3 بنية Structمراجعة: قيادة الطائرة المسيّرة8كائنات اللعبة والمكوّنات
المراجع في Inspectorالحصول على مكوّنالمكوّنات المفقودةإضافة مكوّنRequireComponentالإظهار والإخفاءمراجعة: مفتاح الإضاءة6التحويلات والتسلسل الهرمي
الآباء والأبناءارفع العلمالتحجيمانظر إلى الأشياءتحرّك نحو نقطةمراجعة: القمر في مدارهتدرّب بنفسك: Playground لـ Unity