Unity Swerve Input Yapımı
Unity Swerve Input Yapımı
Herkese merhaba arkadaşlar bu yazımda sizlere Unity de Swerve mekaniği için nasıl bir kod yazılması gerektiğini göstereceğim.
Kodları aşağıya bırakıyorum ve içerisinde açıklama satırları ile nerede ne yaptığımızı açıklayacağım.
using UnityEngine; // ReSharper disable once CheckNamespace namespace UrhobA.Inputs.Swerve { public class Mouse : MonoBehaviour { private Vector2 _startedPos, // hareketin başladığı konum _delta; // hareketin devam ettiği konum private Vector2 _value; // hareket sonucunda yansıtılan değer public Vector2 GetValue() // Bu fonksiyonumuz karakter hareketini yazdığımız scriptten çağırılacak ve hareket koduna dahil edilecek. { return _value; } public float maxDistance = 100f; // kullanıcının hareketinin maksimum ne kadar olacağı #region System Functions private void Update() { if (Input.GetMouseButtonDown(0)) _startedPos = (Vector2) Input.mousePosition; // başlangıç konumunu alıyoruz if (Input.GetMouseButtonUp(0)) { // Değerleri sıfırlıyoruz hareket bittiği zaman _delta = Vector2.zero; _startedPos = Vector2.zero; _value = Vector2.zero; } if (!Input.GetMouseButton(0)) return; // hareket ediyorsa hesaplamaları yapıyoruz _delta = (Vector2) Input.mousePosition - _startedPos; _delta.x = Mathf.Clamp(_delta.x, -maxDistance, maxDistance); _delta.y = Mathf.Clamp(_delta.y, -maxDistance, maxDistance); _value = _delta / maxDistance; _startedPos = (Vector2) Input.mousePosition; } #endregion } }
Projenin kaynak kodlarına aşağıdaki GitHub bağlantısından bakabilirsiniz.
Yorum Gönder