קבלת רכיב
חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 44 מתוך 85.
GameObject הוא מכל של רכיבים: רכיב Transform, רכיב MeshRenderer שמצייר אותו, מתנגש והסקריפטים שלך. GetComponent<Renderer>() מחזירה את הרכיב מהסוג הזה שנמצא על אותו אובייקט, ודרכו הסקריפט שלך משנה את פעולת הרכיב. transform הוא קיצור מוכן לשימוש עבור Transform; את כל שאר הרכיבים צריך לאחזר בעצמך.
הקובייה הזאת הופכת לאדומה כשלוחצים על Space. היא מאחזרת את Renderer פעם אחת, בתוך Start(), ושומרת אותו בשדה: GetComponent מחפשת ברכיבי האובייקט בכל פעם שקוראים לה, והתשובה אינה משתנה.
Renderer rend;
void Start()
{
rend = GetComponent<Renderer>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rend.material.color = Color.red;
}
}rend.material מעניק לאובייקט הזה עותק משלו של החומר בפעם הראשונה שמשתמשים בו, כך שאובייקטים אחרים שחלקו את החומר שומרים על הצבע שלהם. Unity נותנת שמות לכמה צבעים, למשל Color.red, Color.green, Color.blue, Color.yellow ו-Color.gray; new Color(r, g, b) יוצרת כל צבע אחר, כשכל רכיב הוא בין 0 ל-1.
אתגר
בינוניבכל לחיצה, צבע הרמזור מתחלף לאדום, לצהוב, לירוק ואז שוב לאדום.
- הוסף שדה
Renderer rend;והגדר אותו בתוךStart()באמצעותGetComponent<Renderer>(). - בעת
Input.GetMouseButtonDown(0), הוסף 1 לשדהint stepוהחזר אותו ל־0 כשהוא מגיע ל־3. - הגדר את
rend.material.colorל־Color.red, ל־Color.yellowאו ל־Color.greenעבור הערכים 0, 1 או 2 של step.
לחץ על ״שחק״ ולחץ במשחק: צבע האור משתנה. לאחר מכן לחץ על ״בדיקה״.
נסו בעצמכם
using UnityEngine;
public class SignalLight : MonoBehaviour
{
void Start()
{
}
void Update()
{
// בכל לחיצה: אדום, אחר כך צהוב, אחר כך ירוק, ואז שוב אדום
}
}
כל השיעורים ביחידה יסודות הסקריפטים ב-Unity
1יסודות C# ב-Unity
שלום, Unityמשתניםמספרים עשרוניים צריכים fטקסט ב-Consoleמשתנים ששומרים ערכיםאם ואחרתהשוואת מספריםחזרה: אוסף המטבעות5וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן8אובייקטי משחק ורכיבים
הפניות ב-Inspectorקבלת רכיברכיבים חסריםהוספת רכיבRequireComponentהצגה והסתרהחזרה: מתג תאורה6טרנספורמציות והיררכיה
הורים וילדיםלהניף את הדגלקנה מידהלהסתכל על דבריםלנוע לעבר נקודהסיכום: הירח המקיף12מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: יומן מחזור החייםתרגלו בעצמכם: Unity אונליין