Menu
CoddyTech

הורים וילדים

חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 31 מתוך 85.

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

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

אתגר

בינוני

הצב את הדגל בבסיס התורן, במיקום שנמדד ביחס לאונייה שלו.

  1. ב־Start(), המספרים (0.6, 1, 0) נמדדים ביחס לאונייה, ההורה של הדגל.
  2. בשורה הזאת, שנה את transform.position ל־transform.localPosition.

לחץ על "שחק": הדגל נמצא בבסיס התורן, על האונייה. ואז לחץ על "בדיקה".

נסו בעצמכם

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
    }
}

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

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