いつも、上限値を含むのかとか、マイナスになるとどうなるっけとか、忘れてしまうので。
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