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 עונה על שאלות באמצעות ערכי bool. הערך 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);.

לחץ על "שחק", לחץ על המשחק והחזק את מקש Space: השער עולה וצונח כשמרפים. לאחר מכן לחץ על "בדיקה".

נסו בעצמכם

using UnityEngine;

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

        // אם open הוא true, הזז את השער אל (0, 3, 0).
        // אחרת, הזז אותו אל (0, 1, 0).
    }
}

כל השיעורים ביחידה יסודות הסקריפטים ב-Unity

תרגלו בעצמכם: Unity אונליין