Unity Eğitim
Dersler
Forum Sınav Merkezi Premium 💎
C# Dersleri

Unity'de ISubmitHandler ve OnSubmit() Metodu: Form Gönderimi ve Etkileşimli UI

Paylaşan: Unity Eğitim 19 September 2025 4 dakika okuma 123 görüntülenme

Unity oyun geliştirme sürecinde, kullanıcı arayüzü (UI) tasarımı ve etkileşimleri oldukça önemlidir. Kullanıcıların oyun içi formlarla etkileşim kurması, bilgilerini girmesi ve göndermesi gerektiğinde, ISubmitHandler arayüzü ve OnSubmit() metodu devreye girer. Bu makalede, ISubmitHandler'ı nasıl kullanacağınızı, OnSubmit() metodunu nasıl özelleştireceğinizi ve form gönderimlerini nasıl yöneteceğinizi adım adım açıklayacağız.

ISubmitHandler Arayüzü


ISubmitHandler, Unity'nin UI sisteminde, bir UI elemanının gönderim işlemini (örneğin, bir butona tıklanmasını) ele almak için kullanılan bir arayüzdür. Bu arayüz, yalnızca tek bir metodu tanımlar: OnSubmit().

OnSubmit() Metodu


OnSubmit() metodu, UI elemanına ait bir gönderim olayı tetiklendiğinde çağrılır. Bu olay, genellikle bir butona tıklandığında veya bir form gönderildiğinde gerçekleşir. Metot, bir BaseEventData parametresi alır, bu parametre gönderim olayı hakkında bilgi içerir. Bu bilgiyi kullanarak, gönderim işlemini özelleştirebilir ve gerekli işlemleri gerçekleştirebilirsiniz.

ISubmitHandler'ı Kullanma


ISubmitHandler'ı kullanmak için, UI elemanınıza (örneğin, bir butona) bu arayüzü eklemeniz ve OnSubmit() metodunu özelleştirmeniz gerekir. İşte basit bir örnek:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class MySubmitHandler : MonoBehaviour, ISubmitHandler
{
public void OnSubmit(BaseEventData data)
{
Debug.Log("Form gönderildi!");
// Burada form gönderim işlemlerini gerçekleştirin
}
}


Bu kodda, MySubmitHandler sınıfı ISubmitHandler arayüzünü uygular. OnSubmit() metodu, form gönderildiğinde çağrılır ve konsola "Form gönderildi!" mesajını yazdırır. Siz buraya kendi form gönderim mantığınızı ekleyebilirsiniz.

Örnek Senaryo: Oyun İçi Kayıt Formu


Bir oyun içi kayıt formu oluşturduğunuzu ve kullanıcının adını, soyadını ve e-postasını girmesini istediğinizi varsayalım. ISubmitHandler'ı kullanarak, kullanıcının girdiği bilgileri toplayabilir ve kaydedebilirsiniz.
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class KayitFormu : MonoBehaviour, ISubmitHandler
{
public InputField adInput;
public InputField soyadInput;
public InputField emailInput;

public void OnSubmit(BaseEventData data)
{
string ad = adInput.text;
string soyad = soyadInput.text;
string email = emailInput.text;

Debug.Log("Kayıt bilgileri:");
Debug.Log("Ad: " + ad);
Debug.Log("Soyad: " + soyad);
Debug.Log("E-posta: " + email);

// Burada kayıt işlemlerini gerçekleştirin (veritabanına kaydetme, dosyaya yazma vb.)
}
}


Bu örnekte, üç adet InputField'ı (ad, soyad ve e-posta için) KayitFormu sınıfına bağladık. OnSubmit() metodu, kullanıcı form gönderdiğinde bu alanlardan verileri alır ve konsola yazdırır. Gerçek bir uygulamada, bu verileri bir veritabanına kaydedebilir veya başka bir işlem yapabilirsiniz.

EventSystems ve Diğer Etkileşimler


ISubmitHandler, Unity'nin EventSystem bileşenini kullanır. EventSystem, UI etkileşimlerini yönetmek için kullanılan bir sistemdir. ISubmitHandler, bu sistem içindeki gönderim olaylarını ele alır. Diğer UI etkileşimlerini ele almak için, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler gibi diğer arayüzleri de kullanabilirsiniz.

Hata Ayıklama İpuçları


Form gönderim işlemlerinde hata ayıklama yaparken, Debug.Log() fonksiyonunu kullanarak çeşitli noktalarda verileri kontrol edebilirsiniz. Ayrıca, BaseEventData parametresini inceleyerek, gönderim olayı hakkında daha fazla bilgi edinebilirsiniz.

Sonuç


ISubmitHandler arayüzü ve OnSubmit() metodu, Unity'de kullanıcı etkileşimlerini ve form gönderimlerini yönetmek için güçlü bir araçtır. Bu makalede öğrendiklerinizi kullanarak, oyunlarınızda etkileşimli ve kullanımı kolay UI'ler oluşturabilirsiniz. Unutmayın ki, bu sadece bir başlangıç noktasıdır ve daha karmaşık senaryolar için daha gelişmiş teknikler kullanmanız gerekebilir.

🧠 Ders Sonu Değerlendirme Testi

Dersi tamamladıktan sonra bilgilerinizi test edin ve ekstra puanlar kazanın.

🔥 +50 XP Ödül
🔒

Sınava Katılmak İçin Giriş Yapın

Bu ders sonu testini çözebilmek, bilginizi test edip **+50 XP** kazanmak ve **Sınav Şampiyonu** rozetinin kilidini açmak için üye girişi yapmalısınız.

Yorumlar (0)

Yorum yazabilmek ve derslere katkıda bulunabilmek için giriş yapmalısınız.

İlk yorumu siz yapın!