Menu
CoddyTech

כפתורים בעלי שם

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

מלבד מקשים, ל-Unity יש גם כפתורים: שמות שמופיעים ב-Input Manager (Edit, Project Settings, Input Manager), וכל אחד מהם מקושר למקש אחד או יותר. Input.GetButtonDown("Fire1") בודקת את השם, ולא מקש מסוים. בפרויקט חדש יש את אלה:

  • "Jump": מקש הרווח
  • "Fire1": Ctrl שמאלי או לחצן העכבר השמאלי
  • "Fire2": Alt שמאלי או לחצן העכבר הימני
  • "Submit" ו-"Cancel": Enter ו-Escape

כפתורי בקר המשחק מקושרים לאותם שמות, ואפשר לשנות את המקשים ב-Input Manager בלי לגעת בקוד. GetButton, GetButtonDown ו-GetButtonUp פועלות כמו GetKey, GetKeyDown ו-GetKeyUp. blaster זה מתעד ירייה בכל לחיצה על Ctrl או לחיצה בעכבר:

void Update()
{
    if (Input.GetButtonDown("Fire1"))
    {
        Debug.Log("Shot!");
    }
}

השם הוא מחרוזת, ולכן שם שגוי עדיין מתקמפל. Unity מחפשת אותו כשהשורה רצה, וכשאין כפתור בשם הזה היא זורקת שגיאה בכל פריים: ArgumentException: Input Button Fier1 is not setup. כשמופיעה ההודעה הזאת, השוו את השם בקוד שלכם לרשימה שב-Input Manager.

challenge icon

אתגר

קל

הצפרדע מנתרת כל עוד כפתור הקפיצה לחוץ: לחיצה על Jump מעלה אותה ב־hop יחידות פעם אחת, ושחרור Jump מחזיר אותה למטה באותו המרחק. קוד ההתחלה כבר מעלה אותה, אבל הוא גורם לשגיאה ברגע שהמשחק מופעל.

לחצו על Play וקראו את השגיאה במסוף. תקנו אותה, הוסיפו נחיתה בעת השחרור, ואז לחצו על Check.

נסו בעצמכם

using UnityEngine;

public class Hopper : MonoBehaviour
{
    public float hop = 1.5f;

    void Update()
    {
        if (Input.GetButtonDown("Jumpp"))
        {
            transform.position += new Vector3(0, hop, 0);
        }
    }
}
quiz iconבחנו את עצמכם

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

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