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

مناطق القتل

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

منطقة القتل هي مُحفّز يقع فوق مكان يجب ألا يصل إليه اللاعب: الحمم البركانية أو الأشواك أو الفراغ تحت المستوى. يؤدي دخولها إلى إعادة اللاعب إلى نقطة ظهور. هنا يتولى البرنامج النصي الخاص بالحمم ذلك، مع تعيين نقطة الظهور في حقل Transform من نافذة Inspector:

public Transform spawnPoint;

void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Player"))
    {
        other.transform.position = spawnPoint.position;
        other.attachedRigidbody.linearVelocity = Vector3.zero;
    }
}

other.attachedRigidbody هو مكوّن Rigidbody الذي يتبعه المصادم الداخل. يؤدي تعيين transform.position إلى نقل اللاعب آنيًا، وهذا ما تحتاج إليه إعادة الظهور. لكن Rigidbody يحتفظ بسرعته خلال القفزة: فاللاعب الذي سقط بسرعة 10 وحدات في الثانية يصل إلى نقطة الظهور وهو لا يزال يسقط بسرعة 10، واللاعب الذي اندفع نحو الحمم يواصل الاندفاع عائدًا إليها مباشرة. يؤدي تعيين linearVelocity إلى Vector3.zero إلى وصوله متوقفًا. ويُبقي فحص الوسم أي شيء آخر يسقط في الحمم في مكانه.

challenge icon

التحدي

سهل

يعبر اللاعب جسرًا ضيقًا فوق الفراغ، وتدفعه قوى أزرار الأسهم؛ هذا الجزء مكتوب. تملأ مساحةً أسفل الجسر منطقةُ تشغيل تحمل الوسم KillZone، ويقف في منتصف الجسر علمٌ يحمل الوسم Checkpoint، وهو أيضًا منطقة تشغيل. أضف إلى نص اللاعب البرمجي نقاط عودة:

  • عند بدء اللعبة، تكون نقطة العودة حيث يقف اللاعب.
  • يؤدي لمس Checkpoint إلى جعل موضع اللاعب في تلك اللحظة نقطة العودة الجديدة.
  • يُعيد دخول KillZone اللاعب إلى نقطة العودة، مع إيقاف حركته.

اضغط على Play وامشِ حتى تسقط عن الجسر، ثم اضغط على Check.

جرّب بنفسك

using UnityEngine;

public class Player : MonoBehaviour
{
    public float force = 12f;
    Rigidbody body;
    Vector3 input;
    // إعادة الظهور: المكان الذي يعود إليه اللاعب

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

    void Update()
    {
        input = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical"));
    }

    void FixedUpdate()
    {
        body.AddForce(input * force);
    }

    // Checkpoint: تذكّر مكان اللاعب. KillZone: العودة إلى ذلك المكان دون حركة.
}
quiz iconاختبر نفسك

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

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