إنشاء لعبة Canon في Unity باستخدام C#

في هذا البرنامج التعليمي، سنقوم بإنشاء لعبة Canon بسيطة باستخدام Unity وC#. ستتعلم أساسيات إعداد مشروع Unity وإنشاء كائنات اللعبة والتعامل مع إدخالات المستخدم وتنفيذ آليات اللعبة.

المتطلبات الأساسية

للمتابعة، تأكد من أن لديك:

  • Unity المثبتة على جهاز الكمبيوتر الخاص بك (الإصدار 20xx.x أو الأحدث)
  • الفهم الأساسي لواجهة Unity وإعداد المشهد
  • التعرف على لغة البرمجة C#

إعداد المشروع

لنبدأ بإعداد مشروع Unity جديد:

  1. افتح Unity Hub وانقر على New لإنشاء مشروع جديد.
  2. اختر قالبًا (ثلاثي الأبعاد أو ثنائي الأبعاد) وقم بتسمية مشروعك (على سبيل المثال، CanonGame).
  3. انقر فوق إنشاء لإنشاء المشروع.

إنشاء GameObject Canon

بعد ذلك، سنقوم بإنشاء كائن Canon في مشهدنا:

  1. في لوحة Hierarchy، انقر بزر الماوس الأيمن واختر Create Empty لإنشاء GameObject جديد.
  2. قم بإعادة تسمية GameObject إلى "Canon".
  3. انقر بزر الماوس الأيمن على "Canon" في التسلسل الهرمي واختر 3D Object -> Cylinder لإنشاء شكل أسطواني لشريعتنا.
  4. قم بوضع الأسطوانة وحجمها لتشبه المدفع.

كتابة نص رسمي بلغة C#

الآن، دعونا نكتب البرنامج النصي للتحكم في الشريعة:

  1. في لوحة المشروع، قم بإنشاء مجلد جديد باسم "Scripts".
  2. انقر بزر الماوس الأيمن على المجلد "Scripts" واختر Create -> C# Script.
  3. اسم البرنامج النصي "CanonController".
  4. انقر نقرًا مزدوجًا فوق البرنامج النصي لفتحه في محرر الكود المفضل لديك.
using UnityEngine;

public class CanonController : MonoBehaviour
{
    // Variables for canon rotation and firing logic

    void Start()
    {
        // Initialization code
    }

    void Update()
    {
        // Update code (e.g., check for user input)
    }
}

إضافة وظائف إلى Canon

دعونا نضيف وظيفة لتدوير وإطلاق النار:

  1. في البرنامج النصي CanonController، قم بإعلان المتغيرات للتحكم في دوران المدفع وإطلاقه.
  2. في طريقة Update، قم بمعالجة إدخال المستخدم لتدوير المدفع إلى اليسار واليمين.
  3. أضف طريقة للتعامل مع إطلاق المدفع (على سبيل المثال، إنشاء مثيل لقذيفة مدفع).
using UnityEngine;

public class CanonController : MonoBehaviour
{
    // Define variables for canon rotation speed
    public float rotationSpeed = 5f;

    // Define variables for cannonball prefab and firing position
    public GameObject cannonballPrefab;  // Assign in Unity Editor
    public Transform firePoint;  // Assign fire point transform in Unity Editor

    void Update()
    {
        // Handle canon rotation based on user input
        float horizontalInput = Input.GetAxis("Horizontal");
        transform.Rotate(Vector3.up, horizontalInput * rotationSpeed * Time.deltaTime);

        // Handle canon firing when spacebar is pressed
        if (Input.GetKeyDown(KeyCode.Space))
        {
            FireCanon();
        }
    }

    void FireCanon()
    {
        // Check if cannonball prefab and fire point are assigned
        if (cannonballPrefab != null && firePoint != null)
        {
            // Instantiate a cannonball at the fire point position and rotation
            GameObject cannonball = Instantiate(cannonballPrefab, firePoint.position, firePoint.rotation);
            
            // Add force to the cannonball (example: forward direction with speed)
            float cannonballSpeed = 10f;
            cannonball.GetComponent<Rigidbody>().velocity = firePoint.forward * cannonballSpeed;
        }
        else
        {
            Debug.LogError("Cannonball prefab or fire point is not assigned.");
        }
    }
}

اختبار ولعب اللعبة

الآن، دعونا نختبر ونلعب لعبة Canon الخاصة بنا:

  1. احفظ البرنامج النصي وارجع إلى Unity.
  2. قم بإرفاق البرنامج النصي CanonController بـ "Canon" GameObject عن طريق سحبه إلى لوحة Inspector الخاصة بـ "Canon" GameObject.
  3. اضغط على زر التشغيل في Unity لتشغيل اللعبة.
  4. استخدم مفاتيح الأسهم أو مفاتيح A/D لتدوير الشريعة.
  5. اضغط على مفتاح المسافة لإطلاق النار (تنفيذ هذه الوظيفة اختياري بناءً على البرنامج النصي الخاص بك).

خاتمة

تهانينا! لقد قمت بإنشاء لعبة Canon بسيطة في Unity باستخدام C#. لقد تعلمت كيفية إعداد مشروع Unity وإنشاء GameObjects وكتابة البرامج النصية في C# وتنفيذ ميكانيكا اللعبة الأساسية. من هنا، يمكنك توسيع وتحسين لعبتك بشكل أكبر.