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

أشرطة الصحة

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

يُظهر شريط فوق كل عدو مقدار الصحة المتبقية لديه. في العنصر الجاهز للعدو، يتكوّن الشريط من مكعبين رفيعين: خلفية داكنة وملء أخضر أمامها. عرض الملء يساوي الصحة المتبقية مقسومة على الصحة الكاملة، أي عددًا من 0 إلى 1، وضرب المقياس على المحور x لهذا العدد يجعله أقصر. لكن المكعب يتمدّد حول مركزه، لذا سيتقلّص الملء نحو الوسط من الطرفين. يقع الملء تحت كائن pivot فارغ عند الحافة اليسرى للشريط، ويغيّر البرنامج النصي مقياس هذا المحور بدلًا من ذلك: كل ما تحته يتقلّص باتجاه تلك الحافة، ويفرغ الشريط من اليمين.

يجب حساب الكسر باستخدام أعداد عشرية. تقسم health / data.maxHealth عددين صحيحين، وتحذف C# الجزء الكسري من قسمة الأعداد الصحيحة: ‏6 / 9 تساوي 0، لذا سيظهر الشريط فارغًا بعد الضربة الأولى. تحويل أحد الطرفين أولًا إلى عدد عشري، (float)health / data.maxHealth، يعطي 0.67. خزان ماء يرتفع مستواه إلى الأعلى انطلاقًا من محوره عند القاع:

float level = (float)water / capacity;
waterPivot.localScale = new Vector3(1f, level, 1f);

لا يخبر الشريط الممتلئ اللاعب بأي شيء، لذا يبدأ الشريط مخفيًا: يكون غير نشط في العنصر الجاهز، وتفعّله الضربة الأولى. لا يُستدعى Update للكائن غير النشط، لكن لا يزال من الممكن استدعاء أساليبه. كل عدو نسخة مستقلة من العنصر الجاهز، وله شريطه الخاص.

challenge icon

التحدي

صعب
  1. في HealthBar، أضف Transform مُسلسَلًا fill (يُعيّن Inspector الخاصية FillPivot للشريط) وpublic void Show(float fraction)، التي تُفعّل GameObject الخاص بالشريط وتُغيّر مقياس fill بمقدار fraction على المحور x.
  2. في Enemy، أضف حقلًا مُسلسَلًا healthBar (من نوع HealthBar). في كل مرة تُنقص فيها TakeDamage الصحة، اعرض الصحة المتبقية كنسبة من maxHealth.

لكل prefab عدو شريطه الخاص: يكون غير نشط، ويحمل سكربت HealthBar، ويكون عنصر fill أسفل محور عند الحافة اليسرى. اضغط Play وراقب الأشرطة بينما تطلق الأبراج النار، ثم اضغط Check.

جرّب بنفسك

using UnityEngine;

// سيأتي لاحقًا: الشريط فوق العدو الذي يُظهر مقدار الصحة المتبقية لديه.
public class HealthBar : MonoBehaviour
{
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

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