Oyun Geliştirme
C# generated class
Otomatik üretilen C# sınıfı ile eylem okumayı öğrenirsin.
Generate C# Class seçeneği
Input Action asset'in Inspector'ında Generate C# Class kutusunu işaretlersen Unity, asset ile aynı adlı bir C# sınıfı üretir. Üretilen sınıf eylemleri özellik olarak sunar; örneğin inputActions.Player.Jump bir InputAction nesnesidir.
PlayerInputActions inputActions = new PlayerInputActions();
inputActions.Player.Enable();
Debug.Log("Eylemler aktif");
Bu nesnenin performed olayına += ile metot bağlayarak derleme zamanında kontrol edilen bir sarmalayıcı kullanırsın.
started, performed ve canceled
Bir eylemin üç olayı vardır: started giriş başlarken, performed eylem gerçekten gerçekleşirken, canceled giriş bırakıldığında çalışır. Aboneliği OnEnable içinde kurar, OnDisable içinde geri alırsın; böylece nesne devre dışı kaldığında bağlantılar temizlenir.
void OnEnable()
{
inputActions.Player.Jump.performed += OnJump;
}
void OnDisable()
{
inputActions.Player.Jump.performed -= OnJump;
}
Olay metodu bir InputAction.CallbackContext alır.
Uygulama Abonelik kurulumu
OyuncuKontrol adında bir MonoBehaviour yaz. inputActions adında bir PlayerInputActions alanı ekle ve Awake içinde new PlayerInputActions() ile oluştur. OnEnable içinde inputActions.Player.Jump.performed olayına OnJump metodunu ekle; OnDisable içinde aynı bağlantıyı geri al. OnJump metodu bir InputAction.CallbackContext ctx alır ve Debug.Log("Zipla!") çağırır. Start içinde inputActions.Player.Enable() çağır ve Debug.Log("Eylemler aktif") yazdır.
Örnek çözümü göster
using UnityEngine;
using UnityEngine.InputSystem;
public class OyuncuKontrol : MonoBehaviour
{
PlayerInputActions inputActions;
void Awake()
{
inputActions = new PlayerInputActions();
}
void OnEnable()
{
inputActions.Player.Jump.performed += OnJump;
}
void OnDisable()
{
inputActions.Player.Jump.performed -= OnJump;
}
void OnJump(InputAction.CallbackContext ctx)
{
Debug.Log("Zipla!");
}
void Start()
{
inputActions.Player.Enable();
Debug.Log("Eylemler aktif");
}
}
Kendini test et
-
Üretilen sınıfta bir eylemin olayına nasıl abone olunur?
- inputActions.Player.Jump.performed += OnJumpMetodu
- InputAction.actionFound += OnJumpMetodu
- Jump.OnPress += OnJumpMetodu
- playerInput.OnJump += OnJumpMetodu
Cevabı göster
inputActions.Player.Jump.performed += OnJumpMetodu — Üretilen sınıfta her eylem bir InputAction'dır; performed, started ve canceled olaylarına += ile metot bağlanır.
-
Aboneliği geri al
inputActions.Player.Jump.performed ____;
Cevabı göster
inputActions.Player.Jump.performed -= OnJump;
-
Generated class kavramları
- Generate C# Class
- Asset icin C# sinifi ureten secenek
- Wrapper
- Eylemleri ozellik olarak sunan sinif
- performed
- Eylemin gerceklestigi an
- CallbackContext
- Olay metodunun aldigi bilgi
Sıradaki ders: Gamepad desteği