EventSystem Ayrıntılı Anlatımı

EventSystem, Unity’de kullanıcı etkileşimlerini ve UI (Kullanıcı Arayüzü) elemanlarıyla olan tüm etkileşimleri yönetir. Yani, EventSystem sayesinde butonlara tıklama, sürükleme, kaydırma gibi işlemleri tanımlayabiliriz. EventSystem bileşeni, UI ile yapılan her türlü etkileşimi algılayarak kullanıcı deneyimini önemli ölçüde geliştirir.

1. EventSystem Menüsüne Nasıl Ulaşılır?

Unity’de EventSystem bileşeni genellikle bir UI (Kullanıcı Arayüzü) elemanı eklendiğinde otomatik olarak oluşturulur. Ancak manuel olarak da eklemek mümkündür:

  1. Hierarchy Panelinden Ekleme: Unity’nin Hierarchy panelinde sağ tıklayın ve UI > EventSystem seçeneğini tıklayın. Bu, sahnenize bir EventSystem ekleyecektir.
  2. Otomatik Oluşturma: UI elemanlarından herhangi birini (örneğin Button, Image) eklediğinizde, Unity otomatik olarak bir EventSystem bileşeni oluşturur.
  3. Inspector Panelinde Özellikleri Görüntüleme: EventSystem nesnesini seçtiğinizde, sağ tarafta yer alan Inspector panelinde tüm ayarları görebilir ve düzenleyebilirsiniz.

2. EventSystem Çeşitleri

EventSystem bileşeninde temel olarak tek bir yapı vardır, ancak farklı girdi modları ve ayarlarla özelleştirilebilir:

  • Standalone Input Module: Bu mod, masaüstü ve mobil platformlarda dokunmatik veya fare girişiyle etkileşim sağlamak için kullanılır. Varsayılan olarak eklenen moddur ve çoğu projede Standalone Input Module kullanılır.
  • Touch Input Module: Bu mod, yalnızca dokunmatik cihazlar için optimize edilmiştir. Özellikle mobil platformlarda dokunmatik girişleri algılamak ve işlemek için tercih edilir.
  • Keyboard Input Module: Klavye girişleriyle etkileşimi sağlamak için kullanılır. PC oyunları için özellikle menülerde veya formlarda klavye ile gezinti yapılması gereken durumlarda tercih edilir.

3. EventSystem Özellikleri ve Ayrıntılı Açıklamaları

Aşağıda, EventSystem bileşeninin temel özelliklerini, ne işe yaradıklarını ve nasıl kullanıldıklarını ayrıntılı olarak tabloda açıklıyorum:

ÖzellikAçıklamaKullanım DurumlarıProgramatik Erişim
First Selectedİlk seçilen UI elemanını belirler. Oyuncu oyuna başladığında veya menüye girdiğinde varsayılan olarak hangi nesnenin seçili olacağını ayarlar.Menü açıldığında otomatik olarak bir butona odaklanmak için.eventSystem.firstSelectedGameObject = myButton;
Send Navigation EventsKlavye veya gamepad gibi cihazlarla menüde gezinti yapılmasını sağlar.Klavye veya gamepad ile menüdeki butonları seçmek veya değiştirmek için.eventSystem.sendNavigationEvents = true;
Drag ThresholdSürükleme eyleminin ne kadar duyarlı olacağını belirler. Piksel cinsinden bir değer alır.Sürükleme eylemlerini sınırlandırmak veya duyarlılığı ayarlamak için.eventSystem.pixelDragThreshold = 5;
Current Selected GameObjectŞu anda seçili olan UI nesnesini gösterir.Dinamik olarak kullanıcı etkileşimlerini izlemek için.eventSystem.currentSelectedGameObject

Standalone Input Module

Bu mod, fare, klavye ve dokunmatik girişleri destekler. Aşağıdaki tabloda Standalone Input Module’un önemli özelliklerini açıklayacağım:

ÖzellikAçıklamaKullanım DurumlarıProgramatik Erişim
Horizontal AxisKlavye veya gamepad ile yatay eksendeki gezinti için kullanılan tuşları belirler.Menüde yatay hareketi sağlamak için.inputModule.horizontalAxis = "Horizontal";
Vertical AxisKlavye veya gamepad ile dikey eksendeki gezinti için kullanılan tuşları belirler.Menüde dikey hareketi sağlamak için.inputModule.verticalAxis = "Vertical";
Submit ButtonOnaylama eylemini gerçekleştirmek için kullanılan tuşu tanımlar.Menüde veya oyunda seçim yapmak için.inputModule.submitButton = "Submit";
Cancel ButtonMenüden çıkmak veya geri dönmek için kullanılan tuşu belirler.Menüden çıkmak veya geri dönmek için.inputModule.cancelButton = "Cancel";
Input Actions Per SecondKlavye veya gamepad ile saniyede kaç kez giriş yapılabileceğini ayarlar.Menüde hızlı bir şekilde gezinme ihtiyacı olduğunda.inputModule.inputActionsPerSecond = 10;
Repeat DelayKlavye veya gamepad tuşuna basıldıktan sonra girişlerin tekrarlanması için gereken süreyi belirler.Menüde hızlı seçim yapılmasını sınırlandırmak için.inputModule.repeatDelay = 0.5f;

4. EventSystem Özelliklerinin Değer Aralıkları ve Kullanım Durumları

Aşağıdaki tabloda EventSystem özelliklerinin alabileceği değer aralıklarını ve önerilen değerleri detaylandırdım:

ÖzellikDeğer AralığıÖnerilen DeğerlerKullanım Durumları
First SelectedUI Elemanı SeçimiBaşlangıç butonu veya menüdeki ilk seçenekMenüye girildiğinde otomatik olarak bir butona odaklanılması gerektiğinde.
Send Navigation Eventstrue / falsetrueKlavye veya gamepad ile menüde gezinme gerekiyorsa true yapılmalı.
Drag Threshold0 – ∞ (Piksel)5 – 20 pikselYüksek değerlerde daha az duyarlı, düşük değerlerde daha hassas sürükleme yapılır.
Horizontal AxisString (Ekseni tanımlayan tuşlar)HorizontalMenüde yatay hareket için standart olarak Horizontal ekseni kullanılır.
Vertical AxisString (Ekseni tanımlayan tuşlar)VerticalMenüde dikey hareket için Vertical ekseni kullanılır.
Submit ButtonString (Buton Adı)SubmitOnaylama veya seçme işlemi için Submit kullanılabilir.
Cancel ButtonString (Buton Adı)CancelMenüden çıkmak veya geri dönmek için Cancel kullanılır.
Input Actions Per Second0 – ∞ (Saniyede işlem sayısı)5 – 10Menüde hızlı hareket için yüksek, daha yavaş gezinti için düşük değerler tercih edilir.
Repeat Delay0 – ∞ (Saniye cinsinden süre)0.5 – 1Tekrarlayan girişlerin süresini ayarlamak için.

5. EventSystem Kullanım Alanları ve Dikkat Edilecekler

  1. Kullanım Alanları:
    • UI Etkileşimleri: EventSystem, oyun içi menülerde veya kullanıcı arayüzlerinde butonlara tıklama, seçim yapma, geri dönüş yapma gibi işlemleri yönetir.
    • Klavye ve Gamepad Etkileşimi: Menüde gezinmek için klavye ve gamepad kullanımı için gereklidir.
    • Mobil Dokunmatik Etkileşimler: Mobil platformlarda dokunma ve kaydırma hareketlerini algılar.
  2. Dikkat Edilmesi Gerekenler:
    • Doğru Input Module Seçimi: PC, konsol veya mobil platformda oynanacaksa uygun Input Module seçilmelidir. Örneğin, dokunmatik cihazlarda Touch Input Module, klavye veya gamepad kullanımı için Standalone Input Module tercih edilmelidir.
    • Drag Threshold Değeri: Çok düşük değerler, yanlışlıkla yapılan sürükleme hareketlerine yol açabilirken, çok yüksek değerler kullanıcı deneyimini olumsuz etkileyebilir. Uygun bir drag threshold ayarı yaparak sürükleme hareketini hassas hale getirmek önemlidir.
    • First Selected Elemanı: Başlangıçta seçilen elemanın doğru ayarlanması kullanıcı deneyimi açısından önemlidir. Menü açıldığında otomatik olarak odaklanılan bir seçenek kullanıcıyı yönlendirir.
  3. Uygulanmaması Gereken Nesneler:
    • Statik Nesneler veya Hareket Gerektirmeyen Nesneler: Etkileşim veya seçme işlemi gerektirmeyen nesnelerde EventSystem kullanılmaz.
    • Arka Planda Gösterilen Grafikler: EventSystem, sadece kullanıcı etkileşimi gerektiren nesnelerde işlevseldir. Arka plan görselleri veya sabit grafiklerde gereksizdir.

Özet

Önerilen Ayarlar: Menülerde doğru butonların odaklanması, hızlı seçim için doğru input ayarları yapılması kullanıcı deneyimini artırır.

EventSystem Ekleme: UI > EventSystem yoluyla eklenir ve UI ile yapılan her türlü etkileşimi yönetir.

Çeşitleri: Standalone Input Module, Touch Input Module ve Keyboard Input Module olmak üzere farklı giriş modları vardır.

Özellikler ve Kullanımı: First Selected, Send Navigation Events, Drag Threshold gibi özellikleri bulunur.

Kullanım Alanları: UI menüleri, klavye ve gamepad ile gezinme, dokunmatik etkileşimler için kullanılır.

Dikkat Edilmesi Gerekenler: Doğru input module seçimi, drag threshold ayarları ve kullanıcı dostu bir başlangıç seçimi yapılmalıdır.

1

Bir cevap yazın