נלחץ, מוחזק, שוחרר
חלק מהיחידה יסודות התכנות ב-Unity במסלול ה-Unity של Coddy. שיעור 12 מתוך 67.
Unity יכולה לספר לך שלושה דברים שונים על מקש, וכל אחד מהם נבדק בתוך Update():
Input.GetKeyDown(KeyCode.Space): האם נלחץ Space בפריים הזה? הערך הוא true בפריים אחד בכל לחיצה.Input.GetKey(KeyCode.Space): האם Space לחוץ כרגע? הערך הוא true בכל פריים כל עוד Space מוחזק.Input.GetKeyUp(KeyCode.Space): האם שוחרר Space בפריים הזה? הערך הוא true בפריים אחד, כשהמקש משתחרר.
אם מחזיקים את Space במשך חצי שנייה בקצב של 60 פריימים בשנייה, GetKey יהיה true ב־30 פריימים, GetKeyDown בראשון מהם, ו־GetKeyUp בפריים שאחרי האחרון. תותח שיורה פעם אחת בכל לחיצה בודק את GetKeyDown; עם GetKey, לחיצה אחת תגרום לירי של 30 יריות:
public int shots = 0;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
shots++;
Debug.Log("Shots fired: " + shots);
}
}GetKeyUp מתאים לפעולה שמתרחשת כשהשחקן משחרר את המקש, כמו סיום של ריצה מהירה. שלושתם מספקים תשובה רק עבור הפריים הנוכחי, ולכן מקומם בתוך Update(): היא רצה בכל פריים, בעוד Start() רצה פעם אחת והייתה מפספסת כמעט כל לחיצה.
אתגר
קלהקלע נטען כל עוד מקש Space לחוץ: הערך של charge גדל ב-1 על כל שנייה שבה מקש Space לחוץ, ואינו גדל כשהוא לא לחוץ. כשמשחררים את מקש Space, יש להציג ביומן את Charge: ואחריו את הערך של charge (לדוגמה Charge: 1.5), ואז להחזיר את charge ל-0 לקראת הירייה הבאה.
לחצו על הפעלה, החזיקו את מקש Space לחוץ ושחררו אותו, וצפו במסוף. לאחר מכן לחצו על בדיקה.
נסו בעצמכם
using UnityEngine;
public class Slingshot : MonoBehaviour
{
float charge = 0f;
void Update()
{
// כל עוד Space לחוץ: charge גדל ב-1 בכל שנייה.
// כאשר משחררים את Space: רשמו את charge ביומן, ואז אפסו אותו ל-0.
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות התכנות ב-Unity
1הסקריפט הראשון שלך
שלום, Unityהצב את הקובייהזוז בכל פרייםהסתובב בכל שנייהנווט בעזרת המקשיםסיכום: נהג בקובייה4וקטורים
חיבור וקטוריםכיווניםמרחב מקומי ומרחב עולמימהירות אלכסוניתהמרחק בין עצמיםVector3 הוא מבנה נתוניםסיכום: הטסת רחפן10מחזור החיים של הסקריפט
Awake ו-StartUpdate ו-LateUpdateOnEnable ו-OnDisableסדר מחזור החייםסיכום: מתעד מחזור החיים