مراجعة: التبديل بين أنظمة الإدخال
جزء من قسم بناء ألعاب حقيقية في رحلة Unity على Coddy. الدرس 47 من 56.
التحدي
متوسطكُتبت عصا الفقاعات هذه للفئة القديمة Input. تعمل في مشروع مضبوط على Both، لكن إعداد هذا المشروع يشبه إعداد مشروع Unity 6 جديد (Active Input Handling: Input System Package): اضغط Play وستؤدي أول استدعاءة لـ Input إلى طرح InvalidOperationException. انقلها إلى Input System مع الحفاظ على كل ما تفعله:
- تحرّك الأسهم أو WASD العصا عبر العشب بسرعة
speedوحدة في الثانية، من دون أن تصبح أسرع عند الحركة قطريًا. - يؤدي الضغط على Jump إلى نفخ فقاعة على ارتفاع 1.5 وحدة فوق العصا. ما دام Jump مضغوطًا، تكبر الفقاعة بمقدار
growRateفي الثانية، حتىmaxSize. عند ترك الزر، يُسجَّل حجمها، مثلBubble: 0.8. - تنفجر كل الفقاعات عند النقر بالزر الأيسر، ويُسجَّل عددها، مثل
Popped 3.
استخدم الإجراءين Move وJump الخاصين بالمشروع وMouse.current، ولا تترك أي استدعاء لـ Input. في النص البرمجي. اضغط Play وجرّب، ثم اضغط Check.
جرّب بنفسك
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);
}
}
}
جميع دروس بناء ألعاب حقيقية
4المشاهد والمستويات
تحميل مشهدإعادة تشغيل المستوىالمستوى التاليالاحتفاظ بالبيانات بين المشاهدمراجعة: اختيار المستوى10مشروع: لعبة منصات ثلاثية الأبعاد
المسارالمنصات المتحركة2الأزرار والشاشات
الأزرار وonClickالتعبيرات Lambdaالربط في Inspectorتشغيل اللوحات وإيقافهاأشرطة الصحةمراجعة: متجر الترقيات5الحفظ باستخدام PlayerPrefs
حفظ رقمالتحميل بقيمة افتراضيةأعلى نتيجةحفظ الإعداداتمراجعة: العملات في البنك6مشروع: عدّاء بلا نهاية
ثلاثة مساراتعوائق أمامك9نظام الإدخال الجديد
نظاما الإدخاللوحة المفاتيح والفأرةتم الضغط عليه في هذا الإطارإجراءات الإدخالمراجعة: التبديل بين أنظمة الإدخال