הוספת רכיב
חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 46 מתוך 85.
gameObject.AddComponent<T>() מוסיפה לאובייקט רכיב חדש מסוג T בזמן שהמשחק פועל, ומחזירה אותו כדי שתוכל להגדיר אותו בשורות הבאות. הרכיב שייך ל-GameObject, שאליו סקריפט ניגש דרך gameObject. המדורה הזאת מעניקה לעצמה אור כתום וחמים כשהמשחק מתחיל:
void Start()
{
Light glow = gameObject.AddComponent<Light>();
glow.color = new Color(1f, 0.5f, 0f);
glow.intensity = 2f;
}רכיב שנוסף בדרך הזאת נשאר כל עוד המשחק פועל. עצור את "שחק", והאובייקט יחזור למה שנשמר בסצנה, בלי Light. גם הסקריפטים שלך הם רכיבים: gameObject.AddComponent<Spinner>() מוסיפה Spinner שמתחיל לפעול כמו כל סקריפט אחר.
אפשר להוסיף את רוב הרכיבים יותר מפעם אחת, אבל לא את כולם: אובייקט יכול להכיל לכל היותר Rigidbody אחד, ובקשה להוסיף אחד נוסף תציג אזהרה ב-Console במקום זאת, Can't add component 'Rigidbody'. קוד שעשוי לרוץ יותר מפעם אחת בודק אם הרכיב כבר קיים באובייקט לפני שהוא מוסיף אותו.
אתגר
בינונילחיצה על מקש הרווח מנערת את עץ הדקל, והקוקוס נופל.
- ב־
Update(), בעתInput.GetKeyDown(KeyCode.Space), הוסף Rigidbody באמצעותgameObject.AddComponent<Rigidbody>(). - הוסף אותו רק אם עדיין אין לקוקוס אחד:
!TryGetComponent(out Rigidbody rb). לחיצה שנייה על מקש הרווח לא תוסיף Rigidbody שני.
לחץ על "שחק" ולחץ על מקש הרווח: הקוקוס נופל אל החול. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class CoconutDrop : MonoBehaviour
{
void Update()
{
// Space: הוסף Rigidbody אם לקוקוס עדיין אין כזה
}
}
כל השיעורים ביחידה יסודות הסקריפטים ב-Unity
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין