Menu
CoddyTech

קנה מידה

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

transform.localScale מכפיל את גודלו של אובייקט לאורך כל אחד מהצירים שלו. אורכו של קובייה כברירת מחדל הוא יחידה אחת בכל צד, לכן קובייה עם localScale (4, 1, 0.5) תהיה ברוחב 4 יחידות, בגובה יחידה אחת ובעומק חצי יחידה. כדי לקבל גודל אחיד, הכפל ב-Vector3.one, שהוא (1, 1, 1). בועת הסבון הזאת גדלה ב-0.3 לשנייה עד שרוחבה מגיע ל-3 יחידות:

public float size = 1f;

void Update()
{
    size = Mathf.Min(size + 0.3f * Time.deltaTime, 3f);
    transform.localScale = Vector3.one * size;
}

Mathf.Min(a, b) מחזירה את הקטן מבין שני המספרים, לכן size גדל עד שהוא מגיע ל-3 ואז נשאר על 3.

הקנה מידה משתנה סביב נקודת הציר של האובייקט, שבצורות המובנות של Unity נמצאת במרכז. לקובייה שאורך צלעה יחידה והיא מונחת על הקרקע, המרכז נמצא בגובה y = 0.5. הגדילו אותה לגובה 3 יחידות, והיא תגיע 1.5 למעלה ו-1.5 למטה מהנקודה הזאת, כך שחצי ממנה ישקע בקרקע. כדי שתעמוד על הקרקע, המרכז שלה צריך להיות בגובה מחצית הגובה שלה: y = 1.5.

גודלו של ילד מוכפל בגודל של ההורה שלו: ילד עם localScale (1, 1, 1) תחת הורה שהוגדל פי 2 יוצג בגודל כפול. transform.lossyScale קורא את הגודל הסופי הזה בעולם, והוא לקריאה בלבד; את localScale מגדירים.

challenge icon

אתגר

בינוני

קוביית הקרח נמסה. מתחילת המשחק היא מתכווצת בכל ציר בקצב של melt (0.2) לשנייה, מגודל של 1 עד לגודל 0.4, ואז נשארת בגודל הזה.

התכווצות סביב המרכז שלה תגרום לה לרחף, לכן שמור על התחתית שלה על הקרקע (ב־y = 0) במשך כל הזמן. ערכי x ו־z שלה אינם משתנים.

לחץ על Play כדי לצפות בה נמסה, ואז על Check.

נסו בעצמכם

using UnityEngine;

public class Melt : MonoBehaviour
{
    public float melt = 0.2f;

    void Update()
    {
        // כווץ בקצב של melt לשנייה, עד ל-0.4, כשהחלק התחתון נוגע בקרקע
    }
}
quiz iconבחנו את עצמכם

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

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