אם ואחרת
חלק מהיחידה יסודות הסקריפטים ב-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() יכולה לבדוק זאת בכל פריים.
אתגר
קלהחזקת מקש הרווח אמורה להרים את השער.
- מתחת לשתי ההערות ב-
Update(), כתובif (open)והוסף בתוך הסוגריים המסולסלים שלו אתtransform.position = new Vector3(0, 3, 0);. - אחריו, כתוב
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
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין