Menu
CoddyTech

סיכום: החלפת קלט

חלק מהיחידה בניית משחקים אמיתיים במסלול ה-Unity של Coddy. שיעור 48 מתוך 60.

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

challenge icon

אתגר

בינוני

העבירו את שרביט הבועות למערכת הקלט; המחלקה הישנה Input גורמת לשגיאה כאן.

  1. הוסיפו using UnityEngine.InputSystem; ושדות InputAction בשם moveAction ו־jumpAction, והגדירו אותם ב־Start() באמצעות InputSystem.actions.FindAction.
  2. נועו באמצעות moveAction.ReadValue<Vector2>(), כשהערך y שלה הוא לאורך ציר z.
  3. החליפו את בדיקות הקפיצה ב־WasPressedThisFrame(), ב־IsPressed() וב־WasReleasedThisFrame(), ואת בדיקת הלחיצה ב־Mouse.current.leftButton.wasPressedThisFrame.

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

נסו בעצמכם

using UnityEngine;

public class Wand : MonoBehaviour
{
    public float speed = 4f;
    public float growRate = 1f;
    public float maxSize = 1.5f;
    public GameObject bubblePrefab;

    private Transform bubble;

    void Update()
    {
        Vector3 move = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical"));
        transform.position += move.normalized * speed * Time.deltaTime;

        if (Input.GetButtonDown("Jump"))
        {
            bubble = Instantiate(bubblePrefab, transform.position + Vector3.up * 1.5f, Quaternion.identity).transform;
        }
        if (Input.GetButton("Jump") && bubble != null)
        {
            float size = Mathf.Min(bubble.localScale.x + growRate * Time.deltaTime, maxSize);
            bubble.localScale = Vector3.one * size;
        }
        if (Input.GetButtonUp("Jump") && bubble != null)
        {
            Debug.Log("Bubble: " + bubble.localScale.x.ToString("F1"));
            bubble = null;
        }

        if (Input.GetMouseButtonDown(0))
        {
            GameObject[] bubbles = GameObject.FindGameObjectsWithTag("Bubble");
            foreach (GameObject b in bubbles) Destroy(b);
            Debug.Log("Popped " + bubbles.Length);
        }
    }
}
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה בניית משחקים אמיתיים

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