Menu
CoddyTech

Ondalıklı Sayılar ve Mathf

Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 16 / 85.

Desimallerin f’ye ihtiyacı var bölümünde f ile tanıştın: C#, 0.5 değerini double olarak okur ve Unity sayımları float ile yapar. Aynı şey matematik işlemlerinde de olur. System.Math double değerlerle çalışır, bu yüzden float s = Math.Sin(x); ifadesi CS0266: Cannot implicitly convert type 'double' to 'float' hatası verir.

Unity’nin bunun float sürümü vardır: Mathf: Mathf.Sin, Mathf.Abs, Mathf.Sqrt, Mathf.PI. Bu sallanan şamandıra her iki hatayı da verdi; aşağıdaki değişiklikten sonra derlenir:

// önce: float y = 1 + Math.Sin(Time.time * 2) * 0.5;
float y = 1 + Mathf.Sin(Time.time * 2) * 0.5f;
transform.position = new Vector3(0, y, 0);

1 ve 2 gibi tam sayılar için son ek gerekmez: bir int, hiçbir değer kaybı olmadan float’a dönüşür.

challenge icon

Görev

Kolay

Kalbin betiğinin derlenmesini sağla, böylece yeniden nabız gibi atsın.

  1. size satırında Math.Abs ve Math.Sin ifadelerini Mathf.Abs ve Mathf.Sin olarak değiştir.
  2. 0.5 değerini 0.5f olarak değiştir ve formülün geri kalanını koru.

“Oyna” düğmesine bas: kalp 1'den 1.5'e büyüyüp tekrar küçülür; bu yaklaşık saniyede bir gerçekleşir. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using System;
using UnityEngine;

public class Pulse : MonoBehaviour
{
    void Update()
    {
        float size = 1 + Math.Abs(Math.Sin(Time.time * 3)) * 0.5;
        transform.localScale = new Vector3(size, size, size);
    }
}

Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground