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

Unity'de Sayı Yuvarlama: Mathf.Round(), Mathf.Ceil(), Mathf.Floor()

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

Unity oyun motorunda matematiksel işlemler oldukça yaygındır. Oyun mekaniği, animasyonlar, fiziksel hesaplamalar gibi birçok alanda sayıları manipüle etmemiz gerekir. Bu noktada Unity'nin sağladığı Mathf sınıfı, çeşitli matematiksel fonksiyonlara erişim sağlar. Bu yazıda, sayı yuvarlama işlemlerinde sıklıkla kullanılan üç fonksiyona, Mathf.Round(), Mathf.Ceil() ve Mathf.Floor() fonksiyonlarına detaylı olarak bakacağız.

Mathf.Round() Fonksiyonu


Mathf.Round() fonksiyonu, bir sayıyı en yakın tam sayıya yuvarlar. Eğer sayının ondalık kısmı 0.5'ten küçükse aşağıya, 0.5'ten büyük veya eşitse yukarıya yuvarlama yapar.
float sayi1 = 2.4f;     // 2'ye yuvarlanır
float sayi2 = 2.5f; // 3'e yuvarlanır
float sayi3 = 2.6f; // 3'e yuvarlanır

float yuvarlanmisSayi1 = Mathf.Round(sayi1);
float yuvarlanmisSayi2 = Mathf.Round(sayi2);
float yuvarlanmisSayi3 = Mathf.Round(sayi3);

Debug.Log("2.4 yuvarlanmış hali: " + yuvarlanmisSayi1); // Çıktı: 2
Debug.Log("2.5 yuvarlanmış hali: " + yuvarlanmisSayi2); // Çıktı: 3
Debug.Log("2.6 yuvarlanmış hali: " + yuvarlanmisSayi3); // Çıktı: 3


Mathf.Ceil() Fonksiyonu


Mathf.Ceil() fonksiyonu, bir sayıyı kendisinden büyük veya eşit olan en küçük tam sayıya yuvarlar. Ondalıklı bir sayı varsa, her zaman yukarıya yuvarlar.
float sayi1 = 2.1f;     // 3'e yuvarlanır
float sayi2 = 2.5f; // 3'e yuvarlanır
float sayi3 = 2.9f; // 3'e yuvarlanır
float sayi4 = 2f; // 2'ye yuvarlanır

float tavanYuvarlama1 = Mathf.Ceil(sayi1);
float tavanYuvarlama2 = Mathf.Ceil(sayi2);
float tavanYuvarlama3 = Mathf.Ceil(sayi3);
float tavanYuvarlama4 = Mathf.Ceil(sayi4);

Debug.Log("2.1 tavan yuvarlama: " + tavanYuvarlama1); // Çıktı: 3
Debug.Log("2.5 tavan yuvarlama: " + tavanYuvarlama2); // Çıktı: 3
Debug.Log("2.9 tavan yuvarlama: " + tavanYuvarlama3); // Çıktı: 3
Debug.Log("2 tavan yuvarlama: " + tavanYuvarlama4); // Çıktı: 2


Mathf.Floor() Fonksiyonu


Mathf.Floor() fonksiyonu, bir sayıyı kendisinden küçük veya eşit olan en büyük tam sayıya yuvarlar. Ondalıklı bir sayı varsa, her zaman aşağıya yuvarlar.
float sayi1 = 2.1f;     // 2'ye yuvarlanır
float sayi2 = 2.5f; // 2'ye yuvarlanır
float sayi3 = 2.9f; // 2'ye yuvarlanır
float sayi4 = 2f; // 2'ye yuvarlanır

float tabanYuvarlama1 = Mathf.Floor(sayi1);
float tabanYuvarlama2 = Mathf.Floor(sayi2);
float tabanYuvarlama3 = Mathf.Floor(sayi3);
float tabanYuvarlama4 = Mathf.Floor(sayi4);

Debug.Log("2.1 taban yuvarlama: " + tabanYuvarlama1); // Çıktı: 2
Debug.Log("2.5 taban yuvarlama: " + tabanYuvarlama2); // Çıktı: 2
Debug.Log("2.9 taban yuvarlama: " + tabanYuvarlama3); // Çıktı: 2
Debug.Log("2 taban yuvarlama: " + tabanYuvarlama4); // Çıktı: 2


Kullanım Örnekleri


Örnek 1: Envanter Sistemi


Bir envanter sisteminde, oyuncunun taşıyabileceği eşya sayısı tam sayı olmalıdır. Oyuncu 2.7 adet elma toplayabilirse, Mathf.Floor() fonksiyonu kullanarak toplam elma sayısını 2 olarak kaydedebiliriz.

Örnek 2: Platform Oyunları


Platform oyunlarında, karakterin konumunu tam sayılarla belirlemek daha temiz bir görünüm sağlar. Karakterin yatay konumunu Mathf.Round() ile yuvarlayarak piksel mükemmel bir hizalama sağlayabiliriz.

Örnek 3: Sınırlı Kaynak Yönetimi


Bir oyunda sınırlı bir kaynak varsa (örneğin, mana), Mathf.Ceil() kullanarak kaynak miktarını her zaman yukarı yuvarlayarak daha zorlu bir oyun deneyimi yaratabiliriz.

Sonuç


Mathf.Round(), Mathf.Ceil() ve Mathf.Floor() fonksiyonları, Unity oyun geliştirmede sayı yuvarlama işlemleri için oldukça faydalıdır. Her fonksiyonun farklı kullanım alanları ve özellikleri vardır. Doğru fonksiyonu seçmek, kodunuzun performansını ve okunabilirliğini artıracaktır. Bu fonksiyonları oyun mekaniklerinizde ve hesaplamalarınızda doğru şekilde kullanarak daha stabil ve optimize edilmiş oyunlar geliştirebilirsiniz.

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