Menu
CoddyTech

הוספת רכיב

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

gameObject.AddComponent<T>() מוסיפה רכיב חדש מסוג T לאובייקט בזמן שהמשחק פועל, ומחזירה אותו כדי שתוכל להגדיר אותו בשורות הבאות. הוא שייך ל-GameObject, שאליו סקריפט ניגש דרך gameObject. המדורה הזאת מעניקה לעצמה אור כתום וחמים כשהמשחק מתחיל:

void Start()
{
    Light glow = gameObject.AddComponent<Light>();
    glow.color = new Color(1f, 0.5f, 0f);
    glow.intensity = 2f;
}

רכיב שנוסף בדרך הזאת נשאר כל עוד המשחק פועל. עצור את Play והאובייקט חוזר למצב שבו הוא נשמר בסצנה, בלי Light. גם הסקריפטים שלך הם רכיבים: gameObject.AddComponent<Spinner>() מוסיפה Spinner שמתחיל לפעול כמו כל סקריפט אחר.

אפשר להוסיף את רוב הרכיבים יותר מפעם אחת, אבל יש כאלה שלא: אובייקט יכול להכיל לכל היותר Rigidbody אחד, וניסיון להוסיף אחד נוסף יגרום להופעת שגיאה ב-Console. בקוד שעשוי לפעול יותר מפעם אחת, בודקים אם הרכיב כבר קיים באובייקט לפני שמוסיפים אותו.

challenge icon

אתגר

בינוני

הקוקוס תלוי בעץ הדקל. לחיצה על Space מנערת את העץ: הקוקוס מקבל Rigidbody, כך שכוח הכבידה פועל עליו והוא נופל אל החול.

  • לפני הלחיצה הראשונה על Space, הקוקוס תלוי במקומו.
  • Space מוסיף Rigidbody רק כאשר עדיין אין לקוקוס אחד, כך שלחיצות נוספות לא עושות דבר.

לחץ על Play, לחץ על Space, ואז על Check.

נסו בעצמכם

using UnityEngine;

public class CoconutDrop : MonoBehaviour
{
    void Update()
    {
        // Space: הוסף Rigidbody אם לקוקוס עדיין אין כזה
    }
}
quiz iconבחנו את עצמכם

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

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