Unity'nin Yeni Giriş Sistemine Genel Bakış

Unity'teki Yeni Giriş Sistemi, oyunlardaki girişlerin yönetimine yönelik güncellenmiş, esnek ve daha sezgisel bir yaklaşım sağlar. Bu sistemle geliştiriciler, oyun kumandalarından VR telefonlarına kadar çeşitli cihazlara hitap ederek oyunu daha dinamik ve sürükleyici hale getirebilir.

1. Neden Yeni Sistem

Unity'deki geleneksel giriş sistemi'ün yetenekleri sınırlıydı ve genişletilebilir değildi. Yeni Giriş Sistemi, önceki sınırlamaları ele alan ve modern oyun geliştirme için gelişmiş özellikler sağlayan birleşik bir API sunar.

2. Kurulum

Yeni Giriş Sistemini kullanmaya başlamak için öncelikle Unity'deki Paket Yöneticisinden yüklenmesi gerekir. Bir kez eklendikten sonra eski sistemden geçiş, komut dosyalarında ve ayarlarda belirli ayarlamalar gerektirir.

3. Ana Özellikler

  • Eylemler ve Bağlantılar: Geliştiriciler, doğrudan düğmelere veya tuşlara referans vermek yerine eylemleri tanımlar ve ardından bu eylemleri belirli tuşlara veya düğmelere bağlar.
  • Cihaz Değişkenliği: Geleneksel oyun kumandalarından dokunmatik ekranlara ve VR telefonlarına kadar birden fazla cihazı kolayca destekler.
  • Oyuncu Kontrolleri: Kontrolleri yeniden bağlamak için yerleşik bir mekanizma sağlayarak oyuncuların kontrolleri tercih ettikleri gibi ayarlamalarına olanak tanır.
  • Gelişmiş Olay İşleme:Olaylar, ister yoklama tabanlı, ister geri arama tabanlı olsun, çeşitli şekillerde işlenebilir ve daha fazla kontrol sağlar.

4. Giriş Eylemi Oluşturma

Giriş Eylemi, komut dosyası yazmaya gerek kalmadan giriş davranışlarının tanımlanmasına olanak tanıyan yeni bir varlık türüdür. Bir kez oluşturulduktan sonra, oyunu doğrudan oyuncu girdilerine bağlayarak bir komut dosyasına bırakılabilir.

5. Komut Dosyasında Uygulama

  • Yeni Giriş Sistemi, Unity komut dosyası oluşturma ortamıyla sorunsuz bir şekilde bütünleşir. Eski 'Input.GetKey' veya 'Input.GetAxis' yöntemlerinin yerine bu sistem, komut dosyaları içinde çağrılabilecek 'eylemleri' kullanır. Aşağıdaki örneği kontrol edin:
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);
    }
}

Yukarıda verilen kod örneğini parçalayalım:

  • Ad alanları: 'UnityEngine.InputSystem' ad alanı, yeni işlevlerin kullanılabilmesi için gereklidir.
  • 'moveInput': Bu değişken, genellikle yatay ve dikey girişleri temsil eden giriş değerlerini saklar.
  • 'OnMove()': Genel bir işlev olarak tanımlanan 'OnMove', Unity Düzenleyicisindeki bir Giriş Eylemine doğrudan bağlanabilir. Yöntem, giriş değerlerini okumak ve bunları 'moveInput' değişkenimize atamak için 'InputAction.CallbackContext''yi kullanır.
  • 'Update()': 'Update' yönteminde kayıtlı giriş değerleri hareket yönünü belirler. Giriş, tanımlanan hız ve çerçeveden bağımsız hareket için Unity 'Time.deltaTime' dikkate alınarak karakter hareketi için bir 3D Vektöre çevrilir.

Bu betiğin çalışmasını sağlamak için 'OnMove' yöntemini Unity Düzenleyici aracılığıyla bir Giriş Eylemine bağlamak önemlidir. Bu bağlantı, bir oynatıcı girdi sağladığında (joystick'ü hareket ettirmek veya ok tuşlarına basmak gibi), karşılık gelen eylemin istenen işlev komut dosyasını tetiklemesini sağlar.

Çözüm

Unity'deki Yeni Giriş Sistemi, modern oyun geliştirmenin ihtiyaçlarına uygun, güçlü ve gerekli bir evrimdir. Çok yönlülük, hassasiyet ve kullanıcı özelleştirme olanağı sunarak oyunu etkileşimleri daha ilgi çekici ve duyarlı hale getirir.

Önerilen Makaleler
Unity için Balık Tutma Oyunu Rehberi
Unity'de Sınav Oyunu Nasıl Oluşturulur
Birlik Öğren | Oyun Alanı | URP Varlık Mağazası Paket İncelemesi
Unity'nin Animasyon Sistemine Giriş
Birlikteki Parçacık Sistemine Giriş
Unity'de Skybox Nasıl Değiştirilir
Unity'de Prosedürel Üretime Giriş