Menu
CoddyTech
flag Ar iconالعربيةdown icon

وجّه

الدرس 2 من 14 في دورة لعبة الثعبان ثلاثية الأبعاد في Unity على Coddy.

تنعطف الأفعى باستخدام مفاتيح الأسهم أو WASD. تنظر الكاميرا إلى اللوحة من الحافة الأمامية، لذا يكون الاتجاه إلى أعلى الشاشة بمحاذاة +z، Vector3.forward، ويكون الاتجاه إلى أسفلها هو Vector3.back. يشير Vector3.up إلى السماء: فالرأس إذا تحرك بهذا الاتجاه سيرتفع عن اللوحة.

يحدث الانعطاف مرة واحدة عند كل ضغطة، لذا اقرأ المفاتيح باستخدام wasPressedThisFrame من نظام الإدخال. تغيّر الضغطة direction فقط. تظل Step() تحرّك الرأس في النبضة التالية، فتحافظ الأفعى على إيقاعها. روبوت متجول يتجه نحو يمين الشاشة عند الضغط على D:

Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
    heading = Vector3.right;
}

لا يحتوي نظام الإدخال على محاور للوحة المفاتيح: فمفتاح السهم ومفتاح الحرف مفتاحان منفصلان، ويربط بينهما ||. تكون Keyboard.current بقيمة null على جهاز لا يحتوي على لوحة مفاتيح، لذا اقرأها مرة واحدة في البداية وتحقق منها.

challenge icon

التحدي

سهل
  1. أضف using UnityEngine.InputSystem; إلى Snake.
  2. في أعلى Update()، اقرأ Keyboard.current. يؤدي الضغط على السهم لأعلى أو W إلى تعيين direction إلى Vector3.forward؛ والسهم لأسفل أو S إلى Vector3.back؛ والسهم لليسار أو A إلى Vector3.left؛ والسهم لليمين أو D إلى Vector3.right.
  3. اترك Step() كما هو: يتغير اتجاه الرأس عند الخطوة التالية.

اضغط على Play، وانقر على اللعبة ووجّهها، ثم اضغط على Check.

جرّب بنفسك

using UnityEngine;

public class Snake : MonoBehaviour
{
    public float tick = 0.15f;   // الثواني بين خطوتين
    private float timer;
    private Vector3 direction = Vector3.right;

    void Update()
    {
        timer += Time.deltaTime;
        if (timer >= tick)
        {
            timer -= tick;
            Step();
        }
    }

    void Step()
    {
        transform.position += direction;
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

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