הצגת הניקוד
חלק מהיחידה בניית משחקים אמיתיים במסלול ה-Unity של Coddy. שיעור 2 מתוך 60.
ה־text של טקסט הוא מחרוזת, לכן מספר חייב להפוך לטקסט לפני שמציגים אותו. שרשור שלו למחרוזת באמצעות + עושה זאת: "Wood: " + wood הוא Wood: 12 כאשר wood הוא 12, ו־wood.ToString() הוא 12. ה־int לבדו אינו מתאים: woodText.text = wood; נכשל עם CS0029, Cannot implicitly convert type 'int' to 'string'.
המספר נשמר בשדה מסוג int, והטקסט רק מציג אותו. מתודה אחת מעדכנת את הטקסט מתוך השדה; כל שינוי במספר קורא לה, וכך גם Start(), כך שהפריים הראשון מציג את הערך האמיתי במקום את מה שהוקלד ב־Inspector. כאן מקש הרווח חותך 3 בולי עץ:
public TMP_Text woodText;
private int wood;
void Start()
{
ShowWood();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
wood += 3;
ShowWood();
}
}
void ShowWood()
{
woodText.text = "Wood: " + wood;
}הטקסט משתנה רק כאשר wood משתנה. עדכון שלו בכל Update() ייראה אותו דבר, אבל ייצור מחרוזת חדשה 60 פעמים בשנייה ללא סיבה. לסדר יש חשיבות: קריאה ל־ShowWood() לפני wood += 3 תציג את הספירה הישנה, כלומר תהיה בפיגור של לחיצה אחת.
אתגר
קלהציגו על המסך את הזרעים והעצים של הגנן.
- ב־
Gardener.cs, כתבוvoid ShowCounts()שמגדירה אתseedsText.textל־"Seeds: " + seedsואתtreesText.textל־"Trees: " + trees. - קראו לה בתוך
Start()חדשה, ובתוך ה־ifשל השתילה אחריtrees++;.
לחצו על "שחק": הטקסטים מציגים Seeds: 5 ו־Trees: 0, ומשתנים עם כל שתיל. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
using UnityEngine;
using TMPro;
public class Gardener : MonoBehaviour
{
public float speed = 4f;
public int seeds = 10;
public GameObject saplingPrefab;
public TMP_Text seedsText;
public TMP_Text treesText;
private int trees;
void Update()
{
float move = Input.GetAxisRaw("Horizontal");
transform.Translate(move * speed * Time.deltaTime, 0f, 0f);
if (Input.GetKeyDown(KeyCode.Space) && seeds > 0)
{
Vector3 spot = new Vector3(transform.position.x, 0.5f, 1.5f);
Instantiate(saplingPrefab, spot, Quaternion.identity);
seeds--;
trees++;
}
}
// הצג את Seeds: ואת Trees: בשני שדות הטקסט, החל מהפריים הראשון
}
כל השיעורים ביחידה בניית משחקים אמיתיים
10פרויקט: משחק פלטפורמה תלת־ממדי
המסלולפלטפורמות נעותתרגלו בעצמכם: Unity אונליין