tanaka's Programming Memo

プログラミングについてのメモ。

Mathf.Clamp()とMathf.Repeat()

いつも、上限値を含むのかとか、マイナスになるとどうなるっけとか、忘れてしまうので。

Mathf.Repeat()

  • 上限値は含まない
    • Mathf.Repeat(3,3);は、0
  • -1で最大値になる
    • Mathf.Repeat(-1,3);は、2

Mathf.Clamp()

  • 上限値を含む(Mathf.Clamp(3,0,3);は、3

テストプログラム

   void Start () {
        for (float i=-5f; i<6f; i+=1f)
        {
            Debug.Log("Repeat("+i+", 4)="+Mathf.Repeat(i, 4f));
        }
        for (float i = -2f; i < 6f; i += 1f)
        {
            Debug.Log("Clamp(" + i + ", 0, 4)=" + Mathf.Clamp(i, 0f, 4f));
        }
    }

結果

Repeat(-5, 4)=3
Repeat(-4, 4)=0
Repeat(-3, 4)=1
Repeat(-2, 4)=2
Repeat(-1, 4)=3
Repeat( 0, 4)=0
Repeat( 1, 4)=1
Repeat( 2, 4)=2
Repeat( 3, 4)=3
Repeat( 4, 4)=0
Repeat( 5, 4)=1

Clamp(-2, 0, 4)=0
Clamp(-1, 0, 4)=0
Clamp(0, 0, 4)=0
Clamp(1, 0, 4)=1
Clamp(2, 0, 4)=2
Clamp(3, 0, 4)=3
Clamp(4, 0, 4)=4
Clamp(5, 0, 4)=4