מציאה לפי שם
חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 56 מתוך 85.
GameObject.Find("Player") מחפש בסצנה אובייקט פעיל בשם הזה בדיוק ומחזיר אותו, או את null אם אין כזה. כך נחסך הצורך לחבר שדה ב-Inspector, אבל יש לכך מחיר: החיפוש עובר על כל האובייקטים בסצנה. לכן כדאי לקרוא לו פעם אחת, ב-Start(), ולשמור את התוצאה בשדה. מצלמת האבטחה הזאת מוצאת את Player כשהמשחק מתחיל ועוקבת אחריו בכל פריים:
private Transform player;
void Start()
{
player = GameObject.Find("Player").transform;
}
void Update()
{
transform.LookAt(player);
}השם חייב להתאים בדיוק, כולל אותיות גדולות ורווחים: "player" או "Player " לא ימצאו דבר. Find גם מדלג על אובייקטים לא פעילים (מוסתרים). חיפוש שנכשל מחזיר בשקט את null, והשגיאה מופיעה בשורה הבאה שמשתמשת בתוצאה: במקרה הזה, .transform גורם ל-NullReferenceException. נתיב כגון "Car/Wheel" מוצא את Wheel שהוא צאצא של Car.
אתגר
בינוניהרובר מדווח מה המרחק בינו לבין היעד שלו.
- ב־
Start(), הגדר אתgoal = GameObject.Find("Goal").transform;. - ב־
Update(), בעתInput.GetKeyDown(KeyCode.Space), רשום ביומן את"Distance to goal: " + Vector3.Distance(transform.position, goal.position).
לחץ על "שחק" ולחץ על מקש הרווח: המסוף מציג Distance to goal: 5. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class Beacon : MonoBehaviour
{
private Transform goal;
void Start()
{
// מצא את האובייקט ששמו Goal ושמור את ה-Transform שלו ב-goal.
}
void Update()
{
// Space: רשום ביומן את המרחק אל המטרה.
}
}
כל השיעורים ביחידה יסודות הסקריפטים ב-Unity
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות10מציאת דברים
מציאה לפי שםתגיותמציאה לפי סוגהפניות עדיפות על חיפושה־Null של Unityסיכום: המטבע הקרוב ביותר5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין