Canvas والنص
جزء من قسم إنشاء ألعاب حقيقية في رحلة Unity على Coddy. الدرس 1 من 60.
يرسم Unity النصوص والأزرار والأشرطة على الشاشة باستخدام نظام واجهة المستخدم الخاص به. في Unity 6، يضيف GameObject > UI > Text - TextMeshPro عنصرًا نصيًا باسم Text (TMP)؛ وفي المرة الأولى، يطلب Unity استيراد TMP Essentials، التي يحتاج إليها النص لخطه. إذا لم يكن في المشهد Canvas بعد، ينشئ Unity واحدًا ويضع النص بداخله، بالإضافة إلى EventSystem الذي تمر عبره نقرات واجهة المستخدم. يرسم Canvas العناصر التابعة له فوق صورة الكاميرا، في موضع ثابت على الشاشة أينما نظرت الكاميرا. اضبط Canvas Scaler على Scale With Screen Size، و1920 x 1080، وMatch 0.5، كما هو الحال في كل مشهد في هذه الدورة، وسيحافظ التخطيط على تناسبه مع أي حجم للشاشة.
مكوّن النص هو TextMeshPro - Text (UI). تحتفظ به البرامج النصية في حقل من نوعه الأساسي TMP_Text، من مساحة الأسماء TMPro، وتغيّر ما يعرضه عبر خاصية text، وهي سلسلة نصية. يسمّي هذا البرنامج النصي المستوى عند بدء تشغيله:
using UnityEngine;
using TMPro;
public class LevelIntro : MonoBehaviour
{
public TMP_Text titleText;
void Start()
{
titleText.text = "World 2: Ice Caves";
}
}اسحب عنصر Text (TMP) من Hierarchy إلى خانة Title Text في Inspector، وسيضع Unity مكوّن النص الخاص به في الحقل. من دون using TMPro; يكون الاسم TMP_Text غير معروف، ولا يُترجم البرنامج النصي (CS0246). إذا تركت الخانة فارغة، فسيؤدي أول استخدام لـ titleText.text إلى طرح UnassignedReferenceException. يستبدل ما يكتبه البرنامج النصي النص المُدخل في Text Input في Inspector، والذي يكون New Text في النص الجديد.
التحدي
سهلاعرض المنطقة التي يوجد فيها المستكشف في ZoneText بالأعلى.
- في
Explorer.cs، أضفusing TMPro;والحقلpublic TMP_Text zoneText;. يربط المشهد ZoneText بهذا الاسم. - في
Update()، أسفل التعليق، اجعلzoneText.textيساويZone: Beachعندما تكون قيمةtransform.position.xأقل من2، واجعله يساويZone: Jungleفيما عدا ذلك.
اضغط على «العب» وامشِ إلى اليمين حتى تصل إلى العشب: سيتحول النص إلى Jungle. ثم اضغط على «تحقق».
جرّب بنفسك
using UnityEngine;
public class Explorer : MonoBehaviour
{
public float speed = 4f;
void Update()
{
float move = Input.GetAxisRaw("Horizontal");
transform.Translate(move * speed * Time.deltaTime, 0f, 0f);
// أظهر المنطقة في ZoneText: Zone: Beach عندما تكون x أقل من 2، وZone: Jungle بدءًا من 2
}
}
جميع دروس إنشاء ألعاب حقيقية
4المشاهد والمستويات
تحميل مشهدإعادة تشغيل المستوىالمستوى التاليالاحتفاظ بالبيانات بين المشاهدمراجعة: اختيار المستوى10مشروع: لعبة منصات ثلاثية الأبعاد
المسارمنصات متحركة2الأزرار والشاشات
الأزرار وonClickالتعبيرات Lambdaالربط في Inspectorتشغيل اللوحات وإيقافهاأشرطة الصحةمراجعة: متجر الترقيات5الحفظ باستخدام PlayerPrefs
حفظ رقمالتحميل بقيمة افتراضيةأعلى نتيجةحفظ الإعداداتمراجعة: العملات في البنك6مشروع: عدّاء لا نهاية له
ثلاثة مساراتعقبات أمامكتدرّب بنفسك: Playground لـ Unity