Menu
CoddyTech

إذا وإلا

جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 6 من 85.

يحتوي bool على إحدى قيمتين: true أو false. هل الباب مفتوح؟ هل اللاعب على الأرض؟ هل انتهت اللعبة؟

bool gameOver = false;

ينفّذ if الأسطر التابعة له فقط عندما يكون شرطه صحيحًا، وينفّذ else أسطره عندما لا يكون كذلك. تحتوي الأقواس { } على الأسطر التابعة لكل جزء:

if (gameOver)
{
    transform.position = new Vector3(0, -2, 0);
}
else
{
    transform.position = new Vector3(0, 2, 0);
}

يُخفي هذا كائنًا بإغراقه بعيدًا عن الأنظار عند انتهاء اللعبة، ويبقيه في الأعلى ما دامت اللعبة مستمرة. يوضع كود كهذا داخل دالة، مثل Update()، ولا يوضع أبدًا بعد آخر } في الصنف.

تجيب Unity عن الأسئلة باستخدام القيم المنطقية أيضًا. تكون Input.GetKey(KeyCode.Space) قيمتها true بينما يضغط اللاعب على مفتاح المسافة، وتكون false في بقية الوقت، لذا يمكن لـ Update() الاستفسار عنها في كل إطار.

challenge icon

التحدي

سهل

يجب أن يؤدي الضغط على مفتاح المسافة إلى رفع البوابة.

  1. أسفل التعليقين في Update()، اكتب if (open) وضع transform.position = new Vector3(0, 3, 0); بين القوسين المعقوفين.
  2. بعده، اكتب else وضع transform.position = new Vector3(0, 1, 0); بين القوسين المعقوفين.

اضغط على «العب»، وانقر على اللعبة واضغط باستمرار على مفتاح المسافة: سترتفع البوابة، وتهبط عند إفلات المفتاح. ثم اضغط على «تحقق».

جرّب بنفسك

using UnityEngine;

public class Gate : MonoBehaviour
{
    void Update()
    {
        bool open = Input.GetKey(KeyCode.Space);

        // إذا كانت open تساوي true، فانقل البوابة إلى (0, 3, 0).
        // وإلا، فانقلها إلى (0, 1, 0).
    }
}

جميع دروس أساسيات البرمجة النصية في Unity

تدرّب بنفسك: Playground لـ Unity