Unity Input System: Eski Manager'dan Geçiş Rehberi

Unity'nin eski Input Manager yavaş yavaş geçmişe kalıyor. Yeni Input System daha hızlı, esnek ve mobil/konsol uyumlu. Geçiş korkutucu görünse de aslında basit, birkaç satırda eski kodunuzu modernleştirebilirsin.

Eski Input Manager'da tuş kontrolü şöyle yapılırdı:

1if (Input.GetKey(KeyCode.W))
2{
3transform.position += Vector3.forward * speed * Time.deltaTime;
4}
5
6if (Input.GetKeyDown(KeyCode.Space))
7{
8Jump();
9}

Yeni Input System'de aynı işi bu şekilde yaparız:

1using UnityEngine.InputSystem;
2
3public class PlayerController: MonoBehaviour
4{
5private PlayerInput playerInput;
6private InputAction moveAction;
7private InputAction jumpAction;
8public float speed = 5f;
9
10private void Awake()
11{
12playerInput = GetComponent<PlayerInput>();
13moveAction = playerInput.actions["Move"];
14jumpAction = playerInput.actions["Jump"];
15}
16
17private void Update()
18{
19Vector2 moveInput = moveAction.ReadValue<Vector2>();
20transform.position += new Vector3(moveInput.x, 0, moveInput.y) * speed * Time.deltaTime;
21
22if (jumpAction.WasPressedThisFrame())
23{
24Jump();
25}
26}
27
28private void Jump()
29{
30Debug.Log("Zıpladı!");
31}
32}

Kurulum adımları: Önce `Window > Input System > Input Actions` açıp yeni bir InputActions dosyası oluştur. İçinde "Move" ve "Jump" action'larını tanımla. Move için 2D Vector, Jump için Button seç. Tuşları (WASD, Space) eşle ve kaydet.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Sonra GameObject'e `PlayerInput` component'i ekle, oluşturduğun InputActions dosyasını ata. Hazır!

Geçişin ana farkları: Eski sistem global `Input.GetKey()` kullanırken, yeni sistem event-driven ve action-based çalışır. Bu sayede kontrol şemasını runtime'da değiştirebilir, gamepad/dokunmatik desteğini kolayca ekleyebilirsin.

Sık hata: InputActions dosyasını component'e atamayı unutmak. Eğer null reference alırsan, Inspector'da PlayerInput'un Actions alanını kontrol et.

Yeni Input System başta karmaşık görünse de, bir kez öğrendikten sonra çok daha güçlü ve temiz kod yazarsın. Özellikle multiplayer veya çok platformlu projelerde bu fark belli oluyor.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz