Menu
CoddyTech

הפניות ב-Inspector

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

שדה יכול להכיל אובייקט אחר. תנו לו טיפוס כמו Transform או GameObject, והחלון Inspector יציג משבצת ריקה שתמלאו על ידי גרירת אובייקט מהחלון Hierarchy אליה. סקריפט המצלמה הזה עוקב אחרי כל אובייקט שנגרר אל player, ונשאר במרחק 3 יחידות מעליו ו-6 יחידות מאחוריו:

public Transform player;

void Update()
{
    transform.position = player.position + new Vector3(0, 3, -6);
}

משבצת שנותרה ריקה מציגה את None, והשורה הראשונה שמשתמשת בה זורקת בכל פריים: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. השורה הבאה בהודעה אומרת מה לעשות: You probably need to assign the player variable of the CameraFollow script in the inspector. היא מציינת את השדה ואת הסקריפט, כך שתדעו איזו משבצת למלא.

יש סקריפטים שאמורים לעבוד גם כשהמשבצת ריקה. Unity משווה משבצת ריקה ל-null, ולכן סקריפט כזה בודק לפני השימוש בה. אם עוטפים את השורה שב-Update() ב-if (player != null), מצלמה ללא שחקן נשארת במקומה במקום לזרוק שגיאה.

challenge icon

אתגר

בינוני

כל שומר הולך אל העמדה שלו. בסצנה, ה-Inspector של Guard1 מציב את האובייקט Post1 בשדה בשם post. העמדה של Guard2 עדיין לא נבנתה, ולכן המשבצת post שלו ריקה.

  • הוסף לסקריפט Guard שדה מסוג Transform בשם post.
  • שומר הולך אל מיקום העמדה שלו במהירות של speed יחידות לשנייה ועוצר בה, גם אם מזיזים את העמדה מאוחר יותר.
  • שומר שהמשבצת post שלו ריקה נשאר במקומו, ללא שגיאה.

לחץ על Play, בחר כל שומר ב-Hierarchy כדי לראות את המשבצת Post שלו, ואז לחץ על Check.

נסו בעצמכם

using UnityEngine;

public class Guard : MonoBehaviour
{
    // post: ה-Transform שאליו השומר הזה הולך, כפי שהוגדר ב-Inspector
    public float speed = 2f;

    void Update()
    {
        // לך אל post במהירות speed. שומר ששדה post שלו ריק נשאר במקומו.
    }
}
quiz iconבחנו את עצמכם

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

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