إنشاء لعبة Canon في Unity باستخدام C#
في هذا البرنامج التعليمي، سنقوم بإنشاء لعبة Canon بسيطة باستخدام Unity وC#. ستتعلم أساسيات إعداد مشروع Unity وإنشاء كائنات اللعبة والتعامل مع إدخالات المستخدم وتنفيذ آليات اللعبة.
المتطلبات الأساسية
للمتابعة، تأكد من أن لديك:
- Unity المثبتة على جهاز الكمبيوتر الخاص بك (الإصدار 20xx.x أو الأحدث)
- الفهم الأساسي لواجهة Unity وإعداد المشهد
- التعرف على لغة البرمجة C#
إعداد المشروع
لنبدأ بإعداد مشروع Unity جديد:
- افتح Unity Hub وانقر على New لإنشاء مشروع جديد.
- اختر قالبًا (ثلاثي الأبعاد أو ثنائي الأبعاد) وقم بتسمية مشروعك (على سبيل المثال، CanonGame).
- انقر فوق إنشاء لإنشاء المشروع.
إنشاء GameObject Canon
بعد ذلك، سنقوم بإنشاء كائن Canon في مشهدنا:
- في لوحة Hierarchy، انقر بزر الماوس الأيمن واختر Create Empty لإنشاء GameObject جديد.
- قم بإعادة تسمية GameObject إلى "Canon".
- انقر بزر الماوس الأيمن على "Canon" في التسلسل الهرمي واختر 3D Object -> Cylinder لإنشاء شكل أسطواني لشريعتنا.
- قم بوضع الأسطوانة وحجمها لتشبه المدفع.
كتابة نص رسمي بلغة C#
الآن، دعونا نكتب البرنامج النصي للتحكم في الشريعة:
- في لوحة المشروع، قم بإنشاء مجلد جديد باسم "Scripts".
- انقر بزر الماوس الأيمن على المجلد "Scripts" واختر Create -> C# Script.
- اسم البرنامج النصي "CanonController".
- انقر نقرًا مزدوجًا فوق البرنامج النصي لفتحه في محرر الكود المفضل لديك.
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
دعونا نضيف وظيفة لتدوير وإطلاق النار:
- في البرنامج النصي
CanonController
، قم بإعلان المتغيرات للتحكم في دوران المدفع وإطلاقه. - في طريقة
Update
، قم بمعالجة إدخال المستخدم لتدوير المدفع إلى اليسار واليمين. - أضف طريقة للتعامل مع إطلاق المدفع (على سبيل المثال، إنشاء مثيل لقذيفة مدفع).
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 الخاصة بنا:
- احفظ البرنامج النصي وارجع إلى Unity.
- قم بإرفاق البرنامج النصي
CanonController
بـ "Canon" GameObject عن طريق سحبه إلى لوحة Inspector الخاصة بـ "Canon" GameObject. - اضغط على زر التشغيل في Unity لتشغيل اللعبة.
- استخدم مفاتيح الأسهم أو مفاتيح A/D لتدوير الشريعة.
- اضغط على مفتاح المسافة لإطلاق النار (تنفيذ هذه الوظيفة اختياري بناءً على البرنامج النصي الخاص بك).
خاتمة
تهانينا! لقد قمت بإنشاء لعبة Canon بسيطة في Unity باستخدام C#. لقد تعلمت كيفية إعداد مشروع Unity وإنشاء GameObjects وكتابة البرامج النصية في C# وتنفيذ ميكانيكا اللعبة الأساسية. من هنا، يمكنك توسيع وتحسين لعبتك بشكل أكبر.