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

Unity'de EventSystem.current.currentSelectedGameObject ile Oyuncu Etkileşimini Yönetme

Paylaşan: Unity Eğitim 24 September 2025 3 dakika okuma 53 görüntülenme

Merhaba Unity geliştiricileri! Bu makalede, Unity oyun motorunda kullanıcı arayüzü (UI) ve oyun nesneleriyle etkileşimi yönetmek için son derece kullanışlı bir özellik olan EventSystem.current.currentSelectedGameObject'ü inceleyeceğiz. Bu özellik, şu anda kullanıcı tarafından seçili olan oyun nesnesini temsil eder ve oyun mantığınızı buna göre uyarlamanıza olanak tanır.

EventSystem Nedir?


Unity'deki EventSystem, kullanıcı girdilerini (fare tıklamaları, dokunmalar, klavye girişleri vb.) oyun nesnelerine yönlendiren ve olayları işleyen önemli bir bileşendir. UI öğelerinin ve diğer oyun nesnelerinin etkileşimlerini yönetmek için kullanılır. EventSystem'i etkinleştirmeden UI öğelerinizle etkileşim kuramazsınız.

EventSystem'i Etkinleştirme


Projenizde EventSystem'i etkinleştirmek için, menü çubuğundan GameObject > UI > Event System yolunu izleyin. Bu, sahnenize otomatik olarak bir EventSystem nesnesi ekleyecektir.

currentSelectedGameObject Özelliği


EventSystem.current.currentSelectedGameObject özelliği, şu anda kullanıcı tarafından seçili olan GameObject'i döndürür. Bu, oyuncunun fareyle veya dokunmatik ekranla hangi nesneyi seçtiğini belirlemenizi sağlar. Bu özellik null değerini de döndürebilir, bu da şu anda hiçbir nesnenin seçili olmadığı anlamına gelir.

currentSelectedGameObject'ün Kullanımı


Bu özelliği kullanmanın birçok yolu vardır. Örneğin, bir düğmeye tıklandığında, seçili olan nesneyi kontrol ederek farklı işlemler gerçekleştirebilirsiniz. Aşağıda birkaç örnek kullanım senaryosu ve kod örneği bulunmaktadır:

Örnek 1: Düğme Tıklama


Bir düğmeye tıklandığında, seçili nesneyi kontrol edip bir mesaj yazdıran basit bir örnek:

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class ButtonClickExample : MonoBehaviour
{
public void OnClick()
{
if (EventSystem.current.currentSelectedGameObject != null)
{
Debug.Log("Seçili Nesne: " + EventSystem.current.currentSelectedGameObject.name);
}
else
{
Debug.Log("Hiçbir nesne seçili değil.");
}
}
}


Örnek 2: UI Elemanlarına Bağlı İşlemler


Seçili nesneye bağlı olarak farklı işlemler gerçekleştirmek için switch-case yapısını kullanabilirsiniz:

public void OnSelect()
{
GameObject selectedObject = EventSystem.current.currentSelectedGameObject;
if (selectedObject != null)
{
switch (selectedObject.name)
{
case "Button1":
// Button1 için işlemler
Debug.Log("Button1 seçildi!");
break;
case "Button2":
// Button2 için işlemler
Debug.Log("Button2 seçildi!");
break;
default:
Debug.Log("Bilinmeyen nesne seçildi.");
break;
}
}
}

Örnek 3: Oyun İçinde Nesne Seçimi


Bu özelliği, oyun içindeki nesneleri seçmek ve bunlarla etkileşim kurmak için de kullanabilirsiniz. Örneğin, bir karakterin bir nesneyi seçtiğinde bir işlem yapmasını sağlayabilirsiniz. Bu, daha gelişmiş oyun mekanikleri için kullanılabilir.

Önemli Notlar


EventSystem.current.currentSelectedGameObject özelliğinin, UI öğelerinin ve oyun nesnelerinin doğru şekilde yapılandırılması ve EventSystem'in etkin olması gerektiğini unutmayın. Ayrıca, bu özelliğin, sadece bir nesne seçildiğinde çalıştığını ve seçili nesne değiştiğinde güncellendiğini göz önünde bulundurmalısınız.

Sonuç


EventSystem.current.currentSelectedGameObject, Unity'de kullanıcı etkileşimlerini yönetmek için çok yönlü bir araçtır. Bu özelliği kullanarak, oyunlarınıza etkileşimli ve dinamik özellikler ekleyebilirsiniz. Bu rehberde verilen örnekleri inceleyerek ve kendi projelerinizde uygulayarak, bu özelliğin gücünden daha iyi yararlanabilirsiniz.

 

🧠 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!