הורים וילדים
חלק מהיחידה יסודות התכנות ב-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 זהים.
אתגר
בינוניהדגל הוא ילד של הספינה, והספינה אינה במרכז העולם. משמעות 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
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות התכנות ב-Unity
1הסקריפט הראשון שלך
שלום, Unityהצב את הקובייהזוז בכל פרייםהסתובב בכל שנייהנווט בעזרת המקשיםסיכום: נהג בקובייה4וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן10מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: מתעד מחזור החיים