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

يمكن أن يكون إنشاء لعبة هليكوبتر في 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. من هنا، يمكنك توسيع اللعبة عن طريق إضافة العوائق والتضاريس والأعداء والمزيد من الميزات المتقدمة.

المقالات المقترحة
وحدة تحكم السيارة للوحدة
وحدة تحكم الطائرة للوحدة
وحدة تحكم الأحرف ثنائية الأبعاد للوحدة
البرنامج التعليمي لوحدة تحكم المشغل من أعلى إلى أسفل للوحدة
البرنامج التعليمي للاعب القفز على الحائط ثلاثي الأبعاد وثنائي الأبعاد للوحدة
برنامج تعليمي للتحكم الدودي ثلاثي الأبعاد للوحدة
تحكم سفينة الفضاء في الوحدة