Menu
CoddyTech

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

חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 21 מתוך 85.

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

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

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

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

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

challenge icon

אתגר

קל

תקן את הקפיצה של הצפרדע וגרום לה לנחות שוב.

  1. לחץ על "שחק": ה־Console מציג שגיאה לגבי הכפתור "Jumpp". שנה אותו ל־"Jump".
  2. הוסף if שני עבור Input.GetButtonUp("Jump"), שמחסיר את new Vector3(0, hop, 0) מ־transform.position.

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

נסו בעצמכם

using UnityEngine;

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

    void Update()
    {
        if (Input.GetButtonDown("Jumpp"))
        {
            transform.position += new Vector3(0, hop, 0);
        }
    }
}

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

תרגלו בעצמכם: Unity אונליין