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

مراجعة: برج دفاعي معياري

جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 5 من 50.

challenge icon

التحدي

سهل

أنشئ برجَي ميدان الاختبار من الأجزاء. يتولى TurretControl.cs بالفعل تدوير كل برج باستخدام السهمين الأيمن والأيسر، ويطير Shell.cs بالقذيفة إلى الأمام. يمنح المشهد Turret1 مكوّن Cannon ومكوّن Ammo يحتوي على 4 قذائف، ويمنح Turret2 مكوّن TwinCannon ومكوّن Ammo يحتوي على 3 قذائف. اكتب الأجزاء:

  • Ammo: متغير int عام shells وطريقة عامة bool Take(). إذا بقيت قذيفة، فإنه يستخدم واحدة ويعيد true. وإذا لم تبقَ أي قذيفة، فإنه يسجل اسم الكائن وis empty، مثل Turret2 is empty، ويعيد false.
  • Weapon: مكوّن مجرّد يأتي دائمًا مع مكوّن Ammo، وله shellPrefab عام (من نوع GameObject)، ومتغير float عام cooldown (يضبطه Inspector على 1)، وطريقة عامة Pull(). الضغط أثناء فترة التهدئة لا يفعل شيئًا ولا يستهلك قذيفة. وإلا، إذا أعادت Take() قذيفة، تبدأ فترة التهدئة وتُشغَّل Fire()، وهي طريقة مجرّدة تكتبها لكل سلاح.
  • يطلق Cannon قذيفة واحدة من نقطة تبعد وحدة واحدة أمام البرج. ويطلق TwinCannon قذيفتين مقابل قذيفة واحدة من الذخيرة، من نقطتين تبعد إحداهما 0.4 إلى اليسار والأخرى 0.4 إلى اليمين عن تلك النقطة. تبدأ القذيفة عند transform.position + transform.rotation * offset، وباتجاه دوران البرج (transform.rotation)، حيث تشير offset إلى موضع كما يُرى من البرج، مثل new Vector3(0f, 0f, 1f).
  • في TurretControl، يضغط مفتاح المسافة على زناد أي Weapon مركّب على البرج.

اضغط Play، ودوّر وأطلق النار حتى يفرغ البرجان، ثم اضغط Check.

جرّب بنفسك

using UnityEngine;

// ما تشترك فيه جميع أسلحة الأبراج.
public class Weapon : MonoBehaviour
{
}

جميع دروس هندسة الألعاب في Unity