Menu
CoddyTech

السرعة المتجهة

جزء من قسم الفيزياء وأسلوب اللعب في رحلة Unity على Coddy. الدرس 5 من 71.

rb.linearVelocity هو كيفية تحرّك الجسم الآن: متجه Vector3 بوحدة متر في الثانية على المحاور x وy وz. تخبرك قراءته بالاتجاه الذي يتحرك فيه الجسم، ويمثل rb.linearVelocity.magnitude سرعته. يؤدي تعيين قيمة له إلى تغيير الحركة فورًا، من دون زيادة تدريجية في السرعة أو تأثير للكتلة: يتحرك صندوق كتلته 1 kg وخزنة كتلتها 50 kg، إذا ضُبطت سرعتهما على 2 m/s، بسرعة 2 m/s بالضبط بدءًا من خطوة الفيزياء التالية. وتستمر الجاذبية والاحتكاك والاصطدامات في التأثير فيه بعد ذلك.

تتحرك عربة الكارت هذه إلى الأمام بسرعة cruise m/s بالضبط. تنسخ السرعة، وتغيّر z فقط، ثم تعيّنها من جديد، لذلك تبقى قيمة y التي منحتها الجاذبية، وتظل العربة تسقط من نهاية المنحدر:

void FixedUpdate()
{
    Vector3 vel = rb.linearVelocity;
    vel.z = cruise;            // إلى الأمام بسرعة cruise m/s بالضبط
    rb.linearVelocity = vel;   // تحتفظ y بالقيمة التي جعلتها الجاذبية عليها
}

أما تعيين y إلى 0 أيضًا فسيطرح سرعة الجاذبية في كل خطوة، وستنزلق العربة إلى أسفل المنحدر بدلًا من السقوط. قبل Unity 6، كانت هذه الخاصية تُسمى velocity. ما زالت الدروس التعليمية القديمة تكتب rb.velocity: في Unity 6، يُترجم ذلك، مع تحذير بأن velocity قديمة وأُعيدت تسميتها إلى linearVelocity. وبالطريقة نفسها، أصبح اسم drag هو linearDamping. اكتب الأسماء الجديدة.

challenge icon

التحدي

سهل

حرّك الروبوت بسرعة speed متر/ثانية بالضبط، ودعه يسقط من الحافة.

  1. في FixedUpdate()، اقرأ float h = Input.GetAxisRaw("Horizontal");، واقرأ float v من "Vertical".
  2. عيّن rb.linearVelocity = new Vector3(h * speed, rb.linearVelocity.y, v * speed);، مع الإبقاء على قيمة الجاذبية في المحور y.

اضغط «العب» وامشِ إلى خارج الحافة: سيتوقف الروبوت عندما تترك زر الحركة، وسيسقط. ثم اضغط «تحقق».

جرّب بنفسك

using UnityEngine;

public class RobotWalk : MonoBehaviour
{
    public float speed = 3f;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void FixedUpdate()
    {
        // تحرّك بسرعة speed بالضبط باستخدام مفاتيح الأسهم، مع الحفاظ على قيمة y الناتجة عن الجاذبية
    }
}

جميع دروس الفيزياء وأسلوب اللعب

تدرّب بنفسك: Playground لـ Unity