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}56if (Input.GetKeyDown(KeyCode.Space))7{8Jump();9}Yeni Input System'de aynı işi bu şekilde yaparız:
1using UnityEngine.InputSystem;23public class PlayerController: MonoBehaviour4{5private PlayerInput playerInput;6private InputAction moveAction;7private InputAction jumpAction;8public float speed = 5f;910private void Awake()11{12playerInput = GetComponent<PlayerInput>();13moveAction = playerInput.actions["Move"];14jumpAction = playerInput.actions["Jump"];15}1617private void Update()18{19Vector2 moveInput = moveAction.ReadValue<Vector2>();20transform.position += new Vector3(moveInput.x, 0, moveInput.y) * speed * Time.deltaTime;2122if (jumpAction.WasPressedThisFrame())23{24Jump();25}26}2728private 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.
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.
0 yorum