نظرًا لكونها رائدة في بعض ألعاب الفيديو الأولى في العالم ، فإن الصحة هي آلية شائعة لا تزال موجودة في العديد من الألعاب الأكثر شهرة اليوم. تجعل الصحة من الممكن استخدام آليات قتال معقدة وإنشاء تقدم للاعب وجعل لعبتك أكثر سهولة. لكن كيف تضيف نظامًا صحيًا إلى ألعابك الخاصة؟
تجعل Unity3D من السهل إضافة عناصر واجهة مستخدم ثنائية الأبعاد إلى الألعاب ثلاثية الأبعاد ، لذا فهي مكان رائع لبدء استكشاف أشرطة الصحة لأول مرة.
ماذا ستتعلم
ظاهريًا ، قد لا يبدو هذا المشروع معقدًا. على الرغم من ذلك ، ستحتاج إلى فهم العديد من مفاهيم ترميز Unity3D الرئيسية لإنشاء شريط صحة عامل. هذا يعني أن هناك الكثير لتتعلمه أثناء تقدمك في هذا المشروع ، بما في ذلك:
- كيفية إنشاء عناصر / نقوش متحركة ثنائية الأبعاد في Unity3D.
- كيفية تحرير مكونات كائن اللعبة بالكود.
- كيفية مشاركة المتغيرات بين البرامج النصية في Unity3D.
الخطوة 1: قم بإعداد المشهد الخاص بك
قبل أن تتمكن من بدء ترميز شريط الصحة الخاص بك ، فأنت بحاجة إلى مشهد مع نموذج مشغل لتطبيقه عليه. للبدء ، يمكنك متابعة
دليل تحكم الطابع Unity3D القائم على الفيزياء لإنشاء نموذج لاعب مع عناصر تحكم أساسية.مع وجود مشهد ونموذج لاعب في مكانه الصحيح ، فقد حان الوقت لإضافة عنصر واجهة المستخدم. انقر بزر الماوس الأيمن داخل نافذة التسلسل الهرمي وحدد واجهة المستخدم > صورة. سيؤدي ذلك إلى إنشاء عنصرين جديدين في التسلسل الهرمي الخاص بك: كائن رئيسي Canvas وكائن صورة فرعي. قم بتغيير اسم الكائن الفرعي إلى Healthbar. اختر عرضًا وارتفاعًا وموضعًا لشريط صحتك باستخدام المفتش.
يمكنك إضافة صورة واجهة مستخدم أكبر قليلاً مع ضبط لونها على الأسود لتعمل كخلفية / حد لشريط الصحة. فقط تأكد من أنه أعلى شريط الصحة في التسلسل الهرمي بحيث يظهر خلفه.
يعمل عنصر واجهة المستخدم هذا كأساس لشريط الصحة الخاص بك ، ولكنك تحتاج أيضًا إلى رمز متحرك في مكانه لتحريكه. انتقل إلى جزء المشروع ، وانقر بزر الماوس الأيمن ، وحدد يخلق > 2 د > العفاريت > مربع.
حدد Healthbar من التسلسل الهرمي واسحب الكائن الذي أنشأته للتو إلى مربع تحديد صورة المصدر داخل العارض. يمكنك أيضا التغيير نوع الصورة لملء ، طريقة التعبئة إلى أفقي و أصل التعبئة إلى اليسار. الآن إذا قمت بتشغيل لعبتك واستخدمت ملء المبلغ يجب أن ترى شريط الصحة الخاص بك يتقلص وينمو.
إذا لم تتمكن من رؤية قائمة مكونات واجهة المستخدم ، فانتقل إلى نافذة> مدير الحزم، وتأكد من تثبيت الحزمة ثنائية الأبعاد.
الخطوة 2: أضف متغير صحي
لن يكون هناك فائدة كبيرة في إنشاء شريط صحة بدون وجود متغير صحة في مكانه لإملاء حالته. يجب أن تكون البرامج النصية الأخرى قادرة على الوصول إلى هذا المتغير ، ومن المنطقي وضعها في مكان مركزي. قم بإضافته إلى البرنامج النصي للتحكم في الأحرف على هيئة عائم عام:
عاميطفو playerHealth = 1.0f;
يعني استخدام عدد عشري لهذا المتغير أنه يمكنك بسهولة تمثيل أي نسبة مئوية من 0 إلى 100 ، لمطابقة متغير حجم صورة واجهة المستخدم لشريط الصحة. على سبيل المثال ، تبلغ صحة playerHealth 0.5f نسبة 50٪ من عرض شريط الصحة.
الخطوة 3: مشاركة المتغيرات بين النصوص في الوحدة
عادة ما تعمل المتغيرات ضمن وظائفها ونصوصها. هذا يجعل الوصول إليها غير ممكن من الوظائف والبرامج النصية الأخرى ما لم تتخذ خطوات لإخبار الكود بمكان العثور على المتغيرات التي تريد العمل معها.
ابدأ بإنشاء ملف نصي جديد يسمى Health لإيواء الكود. يمكنك سحب هذا البرنامج النصي وإفلاته في عنصر واجهة مستخدم Healthbar الذي تم إنشاؤه في الخطوة الأولى. يدخل الكود التالي في وظيفة void Update ().
تبدأ هذه العملية بإيجاد كائن اللعبة الذي يمتلك المتغير. في هذه الحالة ، إنه كائن Character_Model:
GameObject Character_Model = GameObject. يجد("نموذج_الأحرف");
بعد ذلك ، حان الوقت للعثور على مكون النص البرمجي الذي يحتوي على المتغير الذي تريد العمل معه.
Character_Control character_Control = Character_Model. GetComponent () ،
وأخيرًا ، يمكنك استخراج المتغير المحدد الذي تبحث عنه. في هذه الحالة ، يكون هذا هو متغير صحة اللاعب الذي أضفته إلى وحدة التحكم في شخصيتك. قم بتعيين هذا إلى متغير عائم داخل البرنامج النصي الحالي يسمى currentHealth.
CurrentHealth = character_Control.playerHealth ؛
لا يتطلب الأمر سوى بضعة أسطر من التعليمات البرمجية للحصول على المتغير الذي تحتاجه ، ويمكنك تطبيق هذه الطريقة متى احتجت للوصول إلى صحة لاعبك. يجب أن تبدو شفرتك هكذا بمجرد الانتهاء:
استخدام نظام. مجموعات
استخدام نظام. المجموعات. نوعي؛
استخدام محرك الوحدة
استخدام محرك الوحدة. واجهة المستخدم ؛عامفصلصحة: سلوك أحادي
{
عاميطفو الصحة الحاليةفارغيبدأ()
{
}
فارغتحديث()
{
GameObject Character_Model = GameObject. يجد("نموذج_الأحرف");
Character_Control character_Control = Character_Model. GetComponent () ،
CurrentHealth = character_Control.playerHealth ؛
}
}
الخطوة 4: برمجة كائن لعبة UI Health Bar
الآن بعد أن أنشأت عنصر واجهة مستخدم لشريط الصحة ولديك حق الوصول إلى متغير صحة اللاعب ، فقد حان الوقت لجعلهما يعملان معًا. للبدء ، أضف متغيرًا ثابتًا خاصًا يحتوي على مكون الصورة لشريط الصحة الخاص بك:
خاصثابتة صورة Healthbar ؛
يمكنك بعد ذلك تعيين مكون الصورة لهذا المتغير داخل وظيفة Start () الفارغة ، والتي تعمل مرة واحدة فقط.
Healthbar = GetComponent () ،
الآن بعد أن أصبحت لديك جميع المتغيرات الخاصة بك في مكانها الصحيح ، يمكنك استخدام الكود من الخطوة السابقة لتعيين عرض التعبئة لكائن واجهة مستخدم شريط الصحة. لست بحاجة إلى إجراء أي تحويل هنا ؛ كلا من صحة اللاعب ومقدار تعبئة شريط الصحة عبارة عن متغيرات عائمة.
Healthbar.fillAmount = currentHealth ؛
مع وضع هذا الرمز في مكانه ، سيملأ شريط الصحة الخاص بك لأعلى ولأسفل بناءً على متغير الصحة الموجود في كود Character_Control. هذا ممل بعض الشيء ، ويمكن أن يفعل بالتأكيد مع بعض الألوان.
ابدأ بإضافة لون جديد لجعل شريط الصحة لونًا أخضر فاتحًا عندما يتمتع اللاعب بصحة جيدة.
اللون greenHealth = جديد لون(0.6f, 1, 0.6f, 1);
بعد ذلك ، أضف عبارة if للتحقق مما إذا كانت صحة اللاعب أعلى من 0.3f ، أي 30٪ أو أكثر. إذا كان أعلى من 0.3f ، فاضبط شريط الصحة ليطابق اللون الذي أضفته للتو. إذا كان أقل من 0.3f ، فحول شريط الصحة إلى اللون الأحمر.
لو (currentHealth> = 0.3f) {
Healthbar.color = greenHealth ؛
} آخر {
Healthbar.color = Color.red ؛
}
الخطوة الخامسة: اختبار الكود
كما ترى من الكود الكامل أدناه ، يكون هذا المشروع بسيطًا جدًا عندما يكون جميعًا معًا. بالطبع ، رغم ذلك ، فأنت بحاجة إلى طريقة لاختبار الكود الخاص بك.
استخدام نظام. مجموعات
استخدام نظام. المجموعات. نوعي؛
استخدام محرك الوحدة
استخدام محرك الوحدة. واجهة المستخدم ؛عامفصلصحة: سلوك أحادي
{
خاصثابتة صورة Healthbar ؛
عاميطفو الصحة الحاليةفارغيبدأ()
{
Healthbar = GetComponent () ،
}فارغتحديث()
{
GameObject Character_Model = GameObject. يجد("نموذج_الأحرف");
Character_Control character_Control = Character_Model. GetComponent () ،
CurrentHealth = character_Control.playerHealth ؛
Healthbar.fillAmount = currentHealth ؛اللون greenHealth = جديد لون(0.6f, 1, 0.6f, 1);
لو (currentHealth> = 0.3f) {
Healthbar.color = greenHealth ؛
} آخر {
Healthbar.color = Color.red ؛
}
}
}
يمكنك إضافة سطر واحد من التعليمات البرمجية إلى البرنامج النصي Character_Control لجعل الاختبار ممكنًا. عندما يضغط اللاعب على مفتاح W للتحرك للأمام ، قم بإزالة مقدار ضئيل من الصحة. يمكنك إضافة نفس الرمز إلى أي نص برمجي مع إمكانية الوصول إلى متغير playerHealth لنفس النتائج:
playerHealth - = 0.001f;
يمكنك أيضًا التفكير في إضافة أصول فريدة إلى مشروع الوحدة الخاص بك. أنت تستطيع العثور على أصول الوحدة المجانية عبر الويب ، مما يمنحك الفرصة لإضفاء الحيوية على مشروعك دون الحاجة إلى إنفاق أي أموال.
بناء القضبان الصحية في Unity3D
بدأت لعبتك في التبلور الآن بعد أن أصبح لديك شريط صحي في مكانه لشخصيتك. لا يزال هناك الكثير من العمل الذي يتعين عليك القيام به ، ولكن يجب أن يكون لديك الآن بعض المهارات الأساسية التي تحتاجها لبدء تحقيق تقدم حقيقي. بالطبع ، على الرغم من ذلك ، لا يضر قراءة المزيد من الأدلة.