السرعة المتجهة
جزء من قسم الفيزياء وأسلوب اللعب في رحلة 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. اكتب الأسماء الجديدة.
التحدي
سهلحرّك الروبوت بسرعة speed متر/ثانية بالضبط، ودعه يسقط من الحافة.
- في
FixedUpdate()، اقرأfloat h = Input.GetAxisRaw("Horizontal");، واقرأfloat vمن"Vertical". - عيّن
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 الناتجة عن الجاذبية
}
}
جميع دروس الفيزياء وأسلوب اللعب
1الجسم الصلب (Rigidbody)
الجاذبية والكتلةالدفع باستخدام AddForceالقفز باستخدام دفعةFixedUpdate للفيزياءالسرعة المتجهةالأجسام الحركيةمراجعة: منصة الإطلاق4الكوروتينات
InvokeInvokeRepeating, CancelInvokeأول Coroutine لكالحلقات داخل الكوروتيناتإيقاف الكوروتيناتمراجعة: العد التنازلي10المشروع: الهروب من الحلبة
الحلبةالصيادونتدرّب بنفسك: Playground لـ Unity