סיכום: החלפת קלט
חלק מהיחידה בניית משחקים אמיתיים במסלול ה-Unity של Coddy. שיעור 48 מתוך 60.
בפרק הזה קראת קלט מהמקלדת, מהעכבר ומהפעולות של הפרויקט באמצעות Input System. שרביט הבועות עדיין משתמש במחלקה הישנה Input: העבר אותו קריאה אחר קריאה.
אתגר
בינוניהעבירו את שרביט הבועות למערכת הקלט; המחלקה הישנה Input גורמת לשגיאה כאן.
- הוסיפו
using UnityEngine.InputSystem;ושדותInputActionבשםmoveActionו־jumpAction, והגדירו אותם ב־Start()באמצעותInputSystem.actions.FindAction. - נועו באמצעות
moveAction.ReadValue<Vector2>(), כשהערך y שלה הוא לאורך ציר z. - החליפו את בדיקות הקפיצה ב־
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);
}
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה בניית משחקים אמיתיים
10פרויקט: משחק פלטפורמה תלת־ממדי
המסלולפלטפורמות נעות2כפתורים ומסכים
כפתורים ו-onClickביטויי למבדהחיבור ב-Inspectorהפעלה וכיבוי של פאנליםפסי בריאותסיכום: חנות שדרוגיםתרגלו בעצמכם: Unity אונליין