القفز باستخدام دفعة
جزء من قسم الفيزياء وأسلوب اللعب في رحلة Unity على Coddy. الدرس 3 من 71.
تأخذ AddForce وسيطًا ثانيًا هو ForceMode، يحدد كيفية استخدام المتجه. إذا لم تحدده، فستحصل على ForceMode.Force، وهي دفعة تستمر خطوة فيزيائية واحدة، لذا يجب إضافتها خطوة بعد خطوة. أما الركلة أو القفزة أو الانفجار فتحدث دفعة واحدة، وهذا هو ForceMode.Impulse: الدفعة كاملةً مرة واحدة، فتتغير السرعة بمقدار الدفع مقسومًا على الكتلة.
تُركل كرة القدم هذه (0.5 kg) عند النقر. تقفز سرعتها بمقدار (0, 2, 6) / 0.5 = (0, 4, 12) m/s في الخطوة الفيزيائية التالية، ثم يتولى الجاذبية والعشب الأمر:
void Update()
{
if (Input.GetMouseButtonDown(0))
{
rb.AddForce(new Vector3(0, 2, 6), ForceMode.Impulse);
}
}يمكن استدعاء الدفعة التي تحدث مرة واحدة من Update()، في إطار النقر: تحتفظ Unity بها وتطبقها في الخطوة الفيزيائية التالية. تختلف الأوضاع الأربعة من ناحيتين: هل تحدث دفعة واحدة أم على مدى خطوة، وهل تؤخذ الكتلة في الحسبان أم لا:
Force: على مدى خطوة، مع القسمة على الكتلة (المحركات، الرياح).Acceleration: على مدى خطوة، مع تجاهل الكتلة.Impulse: دفعة واحدة، مع القسمة على الكتلة (الركلات، القفزات).VelocityChange: دفعة واحدة، مع تجاهل الكتلة: يُضاف المتجه مباشرةً إلى السرعة.
التحدي
سهلاجعل الضفدع يقفز مرة واحدة عند كل ضغطة على مفتاح المسافة.
- أسفل التعليق، اكتب
if (Input.GetKeyDown(KeyCode.Space)). - داخلها، استدعِ
rb.AddForce(Vector3.up * jumpImpulse, ForceMode.Impulse);، لكي يقفز الضفدع ذو الكتلة البالغة 2 kg.
اضغط على «العب» ثم اضغط على مفتاح المسافة: يقفز الضفدع إلى الأعلى ثم يسقط. بعد ذلك، اضغط على «تحقق».
جرّب بنفسك
using UnityEngine;
public class FrogJump : MonoBehaviour
{
public float jumpImpulse = 10f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
// Space: دفعة واحدة إلى الأعلى بقوة jumpImpulse
}
}
جميع دروس الفيزياء وأسلوب اللعب
1الجسم الصلب (Rigidbody)
الجاذبية والكتلةالدفع باستخدام AddForceالقفز باستخدام دفعةFixedUpdate للفيزياءالسرعة المتجهةالأجسام الحركيةمراجعة: منصة الإطلاق4الكوروتينات
InvokeInvokeRepeating, CancelInvokeأول Coroutine لكالحلقات داخل الكوروتيناتإيقاف الكوروتيناتمراجعة: العد التنازلي10المشروع: الهروب من الحلبة
الحلبةالصيادونتدرّب بنفسك: Playground لـ Unity