تحكم طائرات الهليكوبتر للوحدة

يمكن أن يكون إنشاء لعبة هليكوبتر في Unity مشروعًا ممتعًا لمطوري الألعاب. في هذا البرنامج التعليمي، سأرشدك خلال عملية إنشاء لعبة هليكوبتر بسيطة باستخدام Unity وC#. سنغطي كيفية إعداد حركة المروحية وضوابطها وفيزياءها الأساسية.

الخطوة 1: إعداد المشروع

  • افتح Unity وأنشئ مشروعًا ثلاثي الأبعاد جديدًا.
  • قم بإعداد إعدادات مشروعك حسب الحاجة (على سبيل المثال، التسمية والموقع).
  • قم باستيراد أي أصول ستستخدمها، مثل نماذج طائرات الهليكوبتر والتضاريس وصناديق السماء.

الخطوة 2: إنشاء كائن لعبة الهليكوبتر

  • قم بإنشاء GameObject فارغ جديد ("GameObject -> إنشاء فارغ").
  • أعد تسمية GameObject إلى "Helicopter" للتوضيح.
  • قم بإرفاق نموذج ثلاثي الأبعاد لطائرة هليكوبتر إلى GameObject عن طريق سحبه إلى المشهد.

الخطوة 3: إضافة مكون الجسم الصلب

  • حدد GameObject المروحية.
  • انقر فوق "Add Component" في نافذة المفتش.
  • ابحث عن "Rigidbody" وأضف مكون Rigidbody إلى المروحية.
  • اضبط إعدادات الجسم الصلب لتتناسب مع الوزن والخصائص الفيزيائية لطراز المروحية الخاص بك.

الخطوة 4: كتابة سيناريو حركة طائرات الهليكوبتر

  • الآن، سنقوم بإنشاء برنامج نصي C# للتعامل مع حركة المروحية.

'HelicopterController.cs'

using UnityEngine;

public class HelicopterController : MonoBehaviour
{
    public float maxSpeed = 10f; // Maximum speed of the helicopter
    public float maxRotationSpeed = 5f; // Maximum rotation speed of the helicopter
    public float acceleration = 2f; // Acceleration factor for speed
    public float rotationAcceleration = 1f; // Acceleration factor for rotation speed
    public Transform mainRotor; // Drag the main rotor GameObject here in the Inspector
    public Transform tailRotor; // Drag the tail rotor GameObject here in the Inspector

    private Rigidbody rb;
    private float currentSpeed = 0f;
    private float currentRotationSpeed = 0f;

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

    void FixedUpdate()
    {
        // Get user input for movement
        float moveHorizontal = Input.GetAxis("Horizontal");
        float moveVertical = Input.GetAxis("Vertical");

        // Calculate movement direction
        Vector3 movement = new Vector3(moveHorizontal, 0f, moveVertical);

        // Apply movement to the helicopter
        rb.AddRelativeForce(movement * acceleration);

        // Calculate new speed based on acceleration
        currentSpeed = Mathf.Clamp(currentSpeed + acceleration * Time.deltaTime, 0f, maxSpeed);

        // Get user input for rotation
        float rotationInput = Input.GetAxis("Rotation");

        // Calculate rotation
        Quaternion rotation = Quaternion.Euler(0f, rotationInput * maxRotationSpeed, 0f);

        // Apply rotation to the helicopter
        rb.MoveRotation(rb.rotation * rotation);

        // Rotate main rotor
        mainRotor.Rotate(Vector3.up * currentSpeed * Time.deltaTime * 100f);

        // Rotate tail rotor
        tailRotor.Rotate(Vector3.right * currentSpeed * Time.deltaTime * 500f);

        // Calculate new rotation speed based on acceleration
        currentRotationSpeed = Mathf.Clamp(currentRotationSpeed + rotationAcceleration * Time.deltaTime, 0f, maxRotationSpeed);
    }
}

الخطوة 5: إرفاق البرنامج النصي

  • قم بإنشاء برنامج نصي C# جديد في مشروعك Unity.
  • انسخ والصق الكود المذكور أعلاه في البرنامج النصي.
  • قم بإرفاق البرنامج النصي إلى Helicopter GameObject في نافذة Inspector.

الخطوة 6: تكوين الإدخال

  • انتقل إلى 'Edit -> Project Settings -> Input Manager'.
  • قم بإعداد محاور الإدخال للأفقي والرأسي والدوران. يمكنك استخدام المفاتيح أو محاور عصا التحكم للإدخال.

الخطوة 7: الاختبار

  • اضغط على "تشغيل" في محرر Unity لاختبار لعبة الهليكوبتر الخاصة بك.
  • استخدم مفاتيح الإدخال التي تم تكوينها للتحكم في حركة المروحية ودورانها.
  • اضبط المتغيرات 'maxSpeed'، 'maxRotationSpeed'، 'acceleration'، و 'rotationAcceleration' في البرنامج النصي لضبط سلوك المروحية.

خاتمة

لقد قمت بإنشاء لعبة طائرات الهليكوبتر الأساسية في Unity. من هنا، يمكنك توسيع اللعبة عن طريق إضافة العوائق والتضاريس والأعداء والمزيد من الميزات المتقدمة.