קנבס וטקסט
חלק מהיחידה בניית משחקים אמיתיים במסלול ה-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 ומעלה
}
}
כל השיעורים ביחידה בניית משחקים אמיתיים
10פרויקט: משחק פלטפורמה תלת־ממדי
המסלולפלטפורמות נעותתרגלו בעצמכם: Unity אונליין