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

Unity'de Input.mousePosition ile Fare Konumunu Algılama

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

Merhaba Unity geliştiricileri! Bu yazıda, Unity oyun motorunda fare konumunu tespit etmek için kullanılan Input.mousePosition fonksiyonunu detaylı bir şekilde inceleyeceğiz. Bu fonksiyon, oyunlarınızda fare etkileşimli birçok mekaniği hayata geçirmenize olanak tanır. Örneğin, tıklamaya bağlı olaylar, sürükle-bırak mekanikleri ve hatta fare imlecinin konumuna göre nesneleri hareket ettirme gibi işlemler Input.mousePosition ile kolayca gerçekleştirilebilir.

Input.mousePosition Nedir?


Input.mousePosition, Unity'de fare imlecini ekran koordinatları cinsinden temsil eden bir Vector3 değeridir. Bu koordinat sistemi, ekranın sol alt köşesini (0, 0) olarak kabul eder. X değeri yatay, Y değeri dikey konumu ve Z değeri ise her zaman 0'dır.

Koordinat Sistemi


Unutmamak önemlidir ki, Input.mousePosition ekran koordinatlarını döndürür, dünya koordinatlarını değil. Bu, fare imlecini oyun dünyanızdaki bir nesneye bağlamak istediğinizde, ekran koordinatlarını dünya koordinatlarına dönüştürmeniz gerektiği anlamına gelir. Bu dönüşüm, Camera.main.ScreenToWorldPoint() fonksiyonu ile gerçekleştirilebilir.

Input.mousePosition Kullanımı


Input.mousePosition'ı kullanmanın en basit yolu, her karede fare konumunu konsola yazdırmaktır. Aşağıdaki kod, bunu nasıl yapacağınızı gösterir:
using UnityEngine;

public class MousePositionExample : MonoBehaviour
{
void Update()
{
Debug.Log("Mouse Position: " + Input.mousePosition);
}
}


Bu kod, her karede fare konumunu Unity editörünün konsoluna yazdıracaktır. Ancak, genellikle bu bilgiyi oyun mekaniklerinizde kullanmanız gerekecektir.

Örnek: Fare Tıklamasıyla Nesne Oluşturma


Şimdi, fare tıklamasıyla bir nesne oluşturan bir örnek oluşturalım. Bu örnek, Input.GetMouseButtonDown(0) fonksiyonunu kullanarak sol fare tıklamasını algılar ve tıklama konumuna bir küp yerleştirir.
using UnityEngine;

public class CreateCubeOnClick : MonoBehaviour
{
public GameObject cubePrefab;

void Update()
{
if (Input.GetMouseButtonDown(0))
{
Vector3 mousePos = Input.mousePosition;
mousePos.z = 10; // Kameranın önüne yerleştirmek için z değerini ayarla
Vector3 worldPos = Camera.main.ScreenToWorldPoint(mousePos);
Instantiate(cubePrefab, worldPos, Quaternion.identity);
}
}
}


Bu kodda, öncelikle Input.GetMouseButtonDown(0) ile sol tıklama kontrol edilir. Eğer tıklama gerçekleşmişse, Input.mousePosition değeri alınır. mousePos.z = 10; satırı, küpün kameranın önüne yerleştirilmesini sağlar. Daha sonra, Camera.main.ScreenToWorldPoint() fonksiyonu ile ekran koordinatları dünya koordinatlarına dönüştürülür ve Instantiate() fonksiyonu ile küp bu konuma yerleştirilir.

Örnek: Sürükle ve Bırak Mekaniği


Input.mousePosition'ı kullanarak sürükle ve bırak mekanikleri de oluşturabilirsiniz. Bu, oyun nesnelerini fare ile sürüklemeyi ve bırakmayı içerir. Bu işlemi gerçekleştirmek için, fare düğmesinin basılı olup olmadığını ve fare konumunun değişimini izlemek gerekir.

Bu örnek biraz daha karmaşıktır ve detaylı bir şekilde ele alınması gerekir. Ancak, temel prensip, fare düğmesi basılıyken nesnenin konumunu Input.mousePosition'a göre güncellemektir. Bu güncelleme, yine Camera.main.ScreenToWorldPoint() fonksiyonu ile dünya koordinatlarına çevrilerek yapılır.


https://www.youtube.com/watch?v=0jTPKz3ga4w

 

Bu video, Input.mousePosition'ın kullanımını daha görsel bir şekilde anlamanıza yardımcı olacaktır.

Sonuç


Input.mousePosition, Unity'de fare etkileşimli oyun mekanikleri oluşturmak için çok güçlü bir araçtır. Bu yazıda ele aldığımız örnekler, bu fonksiyonun kullanımını anlamanıza yardımcı olacaktır. Kendi oyunlarınızda Input.mousePosition'ı kullanarak yaratıcılığınızı sergileyebilirsiniz!

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