Unity'de Sayı Yuvarlama: Mathf.Round(), Mathf.Ceil(), Mathf.Floor()
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ırfloat 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ırfloat 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ırfloat 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.
Yorumlar (0)
İlk yorumu siz yapın!