קנבס וטקסט
חלק מהיחידה בונים משחקים אמיתיים במסלול ה-Unity של Coddy. שיעור 1 מתוך 56.
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 בטקסט חדש.
אתגר
קלהחוקר הולך באי באמצעות החצים שמאלה וימינה, כפי ש־Explorer.cs כבר עושה. הציגו את המיקום שלו ב־ZoneText בראש המסך, שעדיין מציג טקסט חדש:
- הוסיפו
using TMPro;ושדה ציבורי מסוגTMP_TextבשםzoneText. הסצנה מקשרת את ZoneText לשדה בשם המדויק הזה. - בכל פריים, הטקסט מציג
Zone: Beachכשה־x של החוקר קטן מ־2, ו־Zone: Jungleמ־2 ומעלה.
לחצו על הפעלה, לכו אל הדשא וחזרה, ואז לחצו על בדיקה.
נסו בעצמכם
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: אזור: חוף כאשר x קטן מ-2, אזור: ג'ונגל מ-2 ומעלה
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה בונים משחקים אמיתיים
10פרויקט: משחק פלטפורמה תלת־ממדי
המסלולפלטפורמות נעות