Unity C# - Collider Atadığımız bir Objeye Tıkladığında Tanıma (Raycast)

Unity 24 Haziran 2025 0 Yorum 1 dakika, 22 saniye 14 Gösterim
Unity C# - Collider Atadığımız bir Objeye Tıkladığında Tanıma (Raycast)

Oyun esnasında nesnelere tıklayıp patlatma, nesneleri tutup sürükleme gibi eylemleri gerçekleştirebilmek için nesneyi tanımamız gerekir. Nesneyi tanımak içinde Mouse yada touch ile etkileşime geçmesi gerekir. Bu işlemi Raycast ile gerçekleştiriyoruz. Boş bir sahneye bir adet 2D küp oluşturdum ve 2D Collider atamasını gerçekleştirdim. Şimdi hemen kodlarımı yazıyorum.

RaycastHit2D nesne = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);

Bu kod, oyun ekranında mouse imlecinin ucunda bir nesne görürse onu nesne isimli değişkene atayacaktır. Şimdi isterse bunu görme olarak değilde, tıkladığımız zaman algılasın.

if(Input.GetMouseButtonDown(0))
{
RaycastHit2D nesne = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
}

Burada mouse basıldığında, mousenin imleci bir nesnenin üzerindeyse, onu nesne isimli değişkene atadık. İşi bir adım daha taşıyalım ve nesne varsa ismini log ekranına yazdıralım, yoksa bir nesne yok yazdıralım.

if(Input.GetMouseButtonDown(0))
{
RaycastHit2D nesne = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);

if(nesne.collider != null)
{
Debug.Log("Nesnenin Adı:" + nesne.transform.name);
}
else{
Debug.Log("Bir Nesneye rastlanmadı");
}
}

Unutmayın, nesnemizi collidera göre tanıyoruz. O nedenle nesneye bu anlatıda 2D anlattım, 2D collider eklemeyi unutmuyoruz. 3D içinse;

if(Input.GetMouseButtonDown(0))
{
RaycastHit nesne;

var ray = Camera.main.ScreenPointToRay(Input.mousePosition);

if(Physics.Raycast(rayi out nesne))
{
if(nesne.rigidbody != null)
{
Debug.Log(nesne.transform.name);
}

}
}

şeklinde örneklendirebilirz. 3D olarak kullanacağınızda Rigidbody eklemeyi unutmayın.

Yazar Hakkında

Kazım Uslu

Css, html5, c#, php, mysql konusunda bilgili, 15 yıldır internet ile çalışan, oyun oynamayı seven biriyim. Kişisel kütüphanemde bu konular hakkında içerikler bulabilirsiniz. Sosyal medya hesaplarımdan bana ulaşabilirsiniz.

Sitemizde yer alan oyun görselleri, oyunu üreten firmaya aittir. Görseller, tanıtım ve bilgilendirme amacıyla yazıya eklenmiştir. Hak ihlali olduğunu düşünüyorsanız lütfen iletişim sayfamız üzerinden iletişime geçiniz.

Unity kategorisinden Yazılar

Yorum Yapılmamış

Bu yazıya henüz bir yorum yapılmamış, hemen bir tane yapmak ister misin ?

Yorum Yapın

TosaComTR Misafir olarak Yorum yapabilirsiniz.