Update ו-LateUpdate
חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 71 מתוך 85.
בכל פריים Unity קוראת ל־Update() בכל סקריפט, ורק אחרי שכולם מסיימים היא קוראת ל־LateUpdate() בכל סקריפט. הסדר שבו נקראת Update() של כל אובייקט אינו נתון לבחירתך.
הדבר חשוב לכל מה שתלוי במשהו אחר. מצלמה שמעתיקה את המיקום של השחקן ב־Update() עשויה לפעול לפני שה־Update() של השחקן עצמו הזיז אותו, ואז היא מעתיקה את המקום שבו השחקן היה לפני פריים אחד: המצלמה משתרכת צעד מאחור, והשאלה אם זה יקרה עשויה להשתנות כשמוסיפים אובייקטים או טוענים מחדש את הסצנה. ב־LateUpdate() ההעתקה מתבצעת תמיד אחרי שהשחקן זז:
public Transform player;
public Vector3 offset = new Vector3(0, 3, -6);
void LateUpdate()
{
transform.position = player.position + offset;
}הכלל: מזיזים דברים ב־Update(), וממקמים קוד שמגיב למיקום שאליו דברים הגיעו, כגון מצלמות, תוויות וכיוון, ב־LateUpdate(). שניהם רצים פעם אחת בכל פריים, ו־Time.deltaTime פירושו אותו הדבר בשניהם.
אתגר
בינונימקם את תג השם בדיוק מעל השחקן בכל פריים.
- הוסף
void LateUpdate(), שפועלת אחריUpdate()של כל סקריפט. - העבר את החלק
if (target != null)לתוכה, והשאר ב־Update()רק את תנועת החצים, תחתif (target == null).
לחץ על "שחק" והחזק מקש חץ: התג נשאר בדיוק מעל השחקן. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class Mover : MonoBehaviour
{
public Transform target;
public Vector3 offset;
public float speed = 4f;
void Update()
{
if (target != null)
{
transform.position = target.position + offset;
}
else
{
if (Input.GetKey(KeyCode.RightArrow))
{
transform.position += new Vector3(speed * Time.deltaTime, 0, 0);
}
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.position -= new Vector3(speed * Time.deltaTime, 0, 0);
}
}
}
}
כל השיעורים ביחידה יסודות הסקריפטים ב-Unity
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין