Menu
CoddyTech

إطلاق النار

الدرس 9 من 25 في دورة لعبة Unity: الدفاع عن الأبراج على Coddy.

يطلق البرج Projectile نحو هدفه. تتحرك الطلقة نحوه باستخدام MoveTowards، وتتبع الهدف أثناء سيره، وتصيبه عند وصولها. لا تحتاج إلى معرفة أنها أصابت Enemy؛ بل تبحث عن IDamageable، وهي الواجهة التي تتيح لأي شيء تلقي الضرر، لذا يمكن إطلاق النار على أي شيء يطبّقها.

قد يموت الهدف بينما تكون الطلقة في الهواء. يُقارن كائن Unity المُدمَّر بأنه يساوي null، لذا تتحقق الطلقة أولًا مما إذا كان target == null، ثم تُدمّر نفسها.

في الوقت الحالي، يطلق البرج طلقة واحدة كل ثانية. ويحتفظ بوقت إطلاق الطلقة التالية:

if (Time.time >= nextShot)
{
    Fire();
    nextShot = Time.time + 1f;
}
challenge icon

التحدي

متوسط

تُطلق الأبراج الأسهم مرة كل ثانية.

  1. تطبّق Enemy الواجهة IDamageable: تُنقص TakeDamage(int amount) قيمة health، وتدمّر العدو عندما تصبح 0 أو أقل.
  2. Projectile: تحتفظ Launch(Transform target, int damage) بالقيمتين؛ وتتجه Update نحو الهدف بسرعة speed، وتستدعي TakeDamage(damage) عند الوصول ثم تدمّر نفسها، وكذلك عندما يختفي الهدف.
  3. Tower: أضف public int damage = 2; و[SerializeField] private Projectile projectilePrefab;؛ وأطلق النار كما سبق من transform.position + Vector3.up.

اضغط «العب»: تنطلق الأسهم ويسقط جنود Grunt. ثم اضغط «تحقق».

جرّب بنفسك

using UnityEngine;

// سيأتي لاحقًا: مقذوف ينطلق من برج نحو هدفه.
public class Projectile : MonoBehaviour
{
}

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

تدرّب بنفسك: Playground لـ Unity