Menu
CoddyTech

הורים וילדים

חלק מהיחידה יסודות התכנות ב-Unity במסלול ה-Unity של Coddy. שיעור 24 מתוך 67.

בHierarchy, אובייקט שנגרר אל אובייקט אחר הופך לילד שלו ומוצג בהזחה מתחת להורה שלו. ילד זז, מסתובב ומשתנה בקנה המידה יחד עם ההורה שלו: הזיזו את ההורה, וכל ילדיו יבואו איתו, בלי צורך בקוד עבור הילדים.

Unity שומרת את המיקום של ילד ביחס להורה שלו. transform.localPosition הוא ההיסט הזה, שנמדד מההורה; transform.position הוא המיקום בעולם. הרוכב הזה הוא ילד של סוס, והסקריפט שלו מושיב אותו יחידה אחת מעל מרכז הסוס וחצי יחידה מאחוריו, בכל מקום שבו הסוס נמצא:

void Start()
{
    transform.localPosition = new Vector3(0, 1, -0.5f);
}

כשהסוס נמצא ב-(4, 0.5, 2), ה-position של הרוכב הוא (4, 1.5, 1.5), בעוד שה-localPosition שלו נשאר (0, 1, -0.5). כשהסוס ממשיך ללכת, position משתנה ו-localPosition לא. ההיסט נמדד לאורך הצירים של ההורה עצמו, כך שכאשר ההורה מסתובב או משתנה בקנה המידה, ההיסט מסתובב ומשתנה בקנה המידה יחד איתו. עבור אובייקט ללא הורה, localPosition ו-position זהים.

challenge icon

אתגר

בינוני

הדגל הוא ילד של הספינה, והספינה אינה במרכז העולם. משמעות Start() של הדגל היא להציב אותו בתחתית התורן, 0.6 ימינה ו-1 למעלה ביחס לספינה, אבל הוא כותב את המספרים האלה אל position, ולכן הדגל נוחת הרחק מהספינה.

  • תקן את Start() כך שהדגל יתחיל בתחתית התורן.
  • כל עוד מקש החץ למעלה לחוץ, הנף את הדגל: הוא מטפס בקצב של climb יחידות לשנייה עד שהגובה שלו ביחס לספינה מגיע ל-4, לראש התורן, ואז נעצר שם.

לחץ על הפעלה, החזק את מקש החץ למעלה ואז לחץ על בדיקה.

נסו בעצמכם

using UnityEngine;

public class Hoist : MonoBehaviour
{
    public float climb = 1f;

    void Start()
    {
        // בסיס התורן: 0.6 ימינה ו-1 למעלה, ביחס ל-Ship
        transform.position = new Vector3(0.6f, 1, 0);
    }

    void Update()
    {
        // כל עוד מקש החץ למעלה לחוץ, טפס עד שהגובה ביחס ל-Ship יהיה 4
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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