סקירה כללית של מערכת הקלט החדשה של Unity

מערכת הקלט החדשה ב-Unity מספקת גישה מעודכנת, גמישה ואינטואיטיבית יותר לטיפול בתשומות במשחקים. עם מערכת זו, מפתחים יכולים לספק שירות למגוון מכשירים, מבקרי משחק ועד מכשירי VR, מה שהופך את המשחק לדינמי וסוחף יותר.

1. למה המערכת החדשה

מערכת הקלט המסורתית ב-Unity הייתה מוגבלת ביכולותיה ולא ניתנת להרחבה. מערכת הקלט החדשה מציעה API מאוחד, הנותנת מענה למגבלות קודמות ומספקת תכונות מתקדמות לפיתוח משחקים מודרניים.

2. מגדיר

כדי להתחיל להשתמש במערכת הקלט החדשה, תחילה יש להתקין אותה ממנהל החבילות ב-Unity. לאחר הוספה, המעבר מהמערכת הישנה דורש התאמות מסוימות בסקריפטים ובהגדרות.

3. תכונות עיקריות

  • פעולות וכריכות: במקום להפנות ישירות לחצנים או מקשים, מפתחים מגדירים פעולות, ולאחר מכן קושרים את הפעולות הללו למקשים או לחצנים ספציפיים.
  • שינויים במכשיר: תומך בקלות במספר מכשירים, ממשטחי משחק מסורתיים ועד למסכי מגע ומכשירי VR.
  • בקרות נגן: מספק מנגנון מובנה לבקרה מחדש, המאפשר לשחקנים להגדיר פקדים לפי העדפה.
  • טיפול מתקדם באירועים:אירועים ניתן לעבד בדרכים שונות, בין אם מבוסס סקרים ובין אם מבוססי התקשרות חוזרת, מה שמעניק יותר שליטה.

4. יצירת פעולת קלט

פעולת קלט היא סוג נכס חדש המאפשר הגדרה של התנהגויות קלט ללא צורך בכתיבת סקריפטים. לאחר יצירתו, ניתן להכניס אותו לתסריט, ולחבר את המשחק ישירות לכניסות השחקנים.

5. יישום בסקריפט

  • מערכת הקלט החדשה משתלבת בצורה חלקה עם סביבת הסקריפט Unity. במקום השיטות הישנות יותר 'Input.GetKey' או 'Input.GetAxis', מערכת זו משתמשת ב'פעולות' שניתן לקרוא בתוך סקריפטים. בדוק את הדוגמה למטה:
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerMovement : MonoBehaviour
{
    public float speed = 5.0f;
    private Vector2 moveInput;

    public void OnMove(InputAction.CallbackContext context)
    {
        moveInput = context.ReadValue<Vector2>();
    }

    void Update()
    {
        Vector3 move = new Vector3(moveInput.x, 0, moveInput.y) * speed * Time.deltaTime;
        transform.Translate(move);
    }
}

בואו נפרק את דוגמה הקוד שסופקה למעלה:

  • מרחבי שמות: מרחב השמות 'UnityEngine.InputSystem' חיוני על מנת להשתמש בפונקציות החדשות.
  • 'moveInput': משתנה זה מאחסן את ערכי הקלט, המייצגים בדרך כלל קלט אופקי ואנכי.
  • 'OnMove()': מוגדר כפונקציה ציבורית, ניתן לקשר 'OnMove' ישירות לפעולת קלט בעורך Unity. השיטה משתמשת ב-'InputAction.CallbackContext' כדי לקרוא את ערכי הקלט ולהקצות אותם למשתנה 'moveInput' שלנו.
  • 'Update()': בשיטת 'Update', ערכי הקלט המאוחסנים קובעים את כיוון התנועה. הקלט מתורגם לוקטור תלת מימדי לתנועת אופי, תוך התחשבות במהירות המוגדרת וה-Unity 'Time.deltaTime' לתנועה בלתי תלויה בפריים.

כדי לגרום לסקריפט זה לעבוד, חשוב לקשר את שיטת 'OnMove' לפעולת קלט באמצעות עורך Unity. חיבור זה מבטיח שכאשר שחקן מספק קלט (כמו הזזת ג'ויסטיק או לחיצה על מקשי החצים), הפעולה המתאימה מפעילה את הסקריפט הרצוי פונקציה.

סיכום

מערכת הקלט החדשה ב-Unity היא אבולוציה עוצמתית והכרחית, המתיישרת עם הצרכים של פיתוח משחקים מודרניים. הוא מציע צדדיות, דיוק והתאמה אישית למשתמש, מה שהופך את המשחק אינטראקציות למושך יותר ומגיב יותר.