Mathf.Clamp

Deklarasyon

public static float Clamp(float value, float min, float max);


Parametreler

valueMinimum ve maksimum değerlerle tanımlanan aralık içinde sınırlanacak kayan nokta değeri.
minKarşılaştırılacak minimum kayan nokta değeri.
maxKarşılaştırılacak maksimum kayan nokta değeri.

Dönüş Değeri

float Minimum ve maksimum değerler arasındaki float sonucu.

Açıklama

Verilen değeri, belirtilen minimum ve maksimum kayan nokta değerleri arasında sınırlar. Verilen değer, minimum ve maksimum aralık içindeyse, verilen değeri döndürür.

Verilen float değeri minimumdan küçükse minimum değeri döndürür. Verilen değer maksimumdan büyükse maksimum değeri döndürür. Clamp'i, bir değeri minimum ve maksimum değerlerle tanımlanan bir aralıkta sınırlamak için kullanın.
Minimum değerin maksimum değerden büyük olması durumunda tanımsız bir değer döndürür.

using UnityEngine;

// Mathf.Clamp örneği.
//
// Bir küpü sinüs dalgası kullanarak x ekseni boyunca hareket ettirin.
// x eksenindeki minimum ve maksimum pozisyonların değişmesine izin verin.
// Küp, minimum ve maksimum değerler içinde görünür olacaktır.

public class ExampleScript : MonoBehaviour
{
    private float xMin = -0.5f, xMax = 0.5f;
    private float timeValue = 0.0f;

    void Update()
    {
        // Sinüs pozisyonunu hesaplayın.
        float xValue = Mathf.Sin(timeValue * 5.0f);

        // Şimdi Clamp değerini hesaplayın.
        float xPos = Mathf.Clamp(xValue, xMin, xMax);

        // Küpün pozisyonunu güncelleyin.
        transform.position = new Vector3(xPos, 0.0f, 0.0f);

        // Animasyon zamanını artırın.
        timeValue = timeValue + Time.deltaTime;

        // Planlanan zamanı aşarsa animasyon zamanını sıfırlayın.
        if (xValue > Mathf.PI * 2.0f)
            timeValue = 0.0f;
    }

    void OnGUI()
    {
        // Minimum ve maksimum değerlerin değişmesine izin verin.
        xMin = GUI.HorizontalSlider(new Rect(25, 25, 100, 30), xMin, -1.0f, 1.0f);
        xMax = GUI.HorizontalSlider(new Rect(25, 60, 100, 30), xMax, -1.0f, 1.0f);

        // xMin, xMax'ten küçük veya eşit tutulur.
        if (xMin > xMax)
        {
            xMin = xMax;
        }

        // xMin ve xMax değerini daha iyi boyut etiketleriyle gösterin.
        GUIStyle fontSize = new GUIStyle(GUI.skin.GetStyle("label"));
        fontSize.fontSize = 24;

        GUI.Label(new Rect(135, 10, 150, 30), "xMin: " + xMin.ToString("f2"), fontSize);
        GUI.Label(new Rect(135, 45, 150, 30), "xMax: " + xMax.ToString("f2"), fontSize);
    }
}



Deklarasyon

public static int Clamp(int value, int min, int max);


Parametreler

valueMin ve max aralığında sınırlanacak tamsayı değeri.
min Karşılaştırılacak minimum tamsayı değeri.
max Karşılaştırılacak maksimum tamsayı değeri.

Dönüş Değeri

int Min ve max değerler arasındaki int sonucu.

Açıklama

Verilen değeri, belirtilen minimum tamsayı ve maksimum tamsayı değerleri arasında sınırlar. Verilen değer, min ve max arasında ise verilen değeri döndürür.

Verilen değer min değerinden küçükse min değerini döndürür. Verilen değer max değerinden büyükse max değerini döndürür. Min ve max parametreleri kapsayıcıdır.
Örneğin, Clamp(10, 0, 5) maksimum argüman olarak 5 döndürecektir, 4 değil.

using UnityEngine;

// Mathf.Clamp tamsayı örneği.
//
// Sağlık değerlerinden değer ekleyin veya çıkarın.
// Sağlığı 1 ile 100 arasında tutun. 17'den başlayın.

public class ExampleScript : MonoBehaviour
{
    public int health = 17;
    private int[] healthUp = new int[] {25, 10, 5, 1};
    private int[] healthDown = new int[] {-10, -5, -2, -1};

    // Butonların genişliği ve yüksekliği.
    private int xButton = 75;
    private int yButton = 50;

    // Sol üst butonun yeri.
    private int xPos1 = 50, yPos1 = 100;
    private int xPos2 = 125, yPos2 = 100;

    void OnGUI()
    {
        GUI.skin.label.fontSize = 20;
        GUI.skin.button.fontSize = 20;

        // Pozitif butonları oluştur ve göster.
        for (int i = 0; i < healthUp.Length; i++)
        {
            if (GUI.Button(new Rect(xPos1, yPos1 + i * yButton, xButton, yButton), healthUp[i].ToString()))
            {
                health += healthUp[i];
            }
        }

        // Negatif butonları oluştur ve göster.
        for (int i = 0; i < healthDown.Length; i++)
        {
            if (GUI.Button(new Rect(xPos2, yPos2 + i * yButton, xButton, yButton), healthDown[i].ToString()))
            {
                health += healthDown[i];
            }
        }

        // Sağlığı 1 ile 100 arasında göster.
        health = Mathf.Clamp(health, 1, 100);
        GUI.Label(new Rect(xPos1, xPos1, 2 * xButton, yButton), "Health: " + health.ToString("D3"));
    }
}


Bu blog Unity Docs'un Türkçeye çevrilmiş halidir.

Yorumlar

Bu blogdaki popüler yayınlar

Important Classes - Vectors

RequireComponent

Important Classes - GameObject