عرض النتيجة
جزء من قسم إنشاء ألعاب حقيقية في رحلة Unity على Coddy. الدرس 2 من 60.
إن الخاصية text للنص هي سلسلة نصية، لذا يجب تحويل الرقم إلى نص قبل عرضه. يؤدي ضمّه إلى سلسلة نصية باستخدام + إلى ذلك: تصبح "Wood: " + wood هي Wood: 12 عندما تكون قيمة wood هي 12، وتكون wood.ToString() هي 12. أما قيمة int وحدها فلا تصلح: يفشل woodText.text = wood; بالخطأ CS0029: لا يمكن تحويل النوع 'int' ضمنيًا إلى النوع 'string'.
يُخزَّن الرقم في حقل من النوع int، والنص يعرضه فقط. هناك دالة واحدة تعيد كتابة النص انطلاقًا من الحقل؛ وكل تغيير في الرقم يستدعيها، وكذلك Start()، لذا يعرض الإطار الأول القيمة الفعلية بدلًا مما أُدخِل في نافذة Inspector. هنا، يقطع الضغط على Space ثلاثة جذوع:
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: في النصين منذ الإطار الأول
}
جميع دروس إنشاء ألعاب حقيقية
4المشاهد والمستويات
تحميل مشهدإعادة تشغيل المستوىالمستوى التاليالاحتفاظ بالبيانات بين المشاهدمراجعة: اختيار المستوى10مشروع: لعبة منصات ثلاثية الأبعاد
المسارمنصات متحركة2الأزرار والشاشات
الأزرار وonClickالتعبيرات Lambdaالربط في Inspectorتشغيل اللوحات وإيقافهاأشرطة الصحةمراجعة: متجر الترقيات5الحفظ باستخدام PlayerPrefs
حفظ رقمالتحميل بقيمة افتراضيةأعلى نتيجةحفظ الإعداداتمراجعة: العملات في البنك6مشروع: عدّاء لا نهاية له
ثلاثة مساراتعقبات أمامكتدرّب بنفسك: Playground لـ Unity