はらけんログ

unity触ったりバイクに乗ったり

【Unity】値をループさせたいときはMathf.Repeat

こんな便利なAPIがあったなんて。。。

docs.unity3d.com

 

Mathf.Repeatは第1引数が、0を下回る場合は第2引数を、第2引数を上回る場合は0を返してくれます。

 

値をループさせたいときに特に重宝します。

 

値を0~10でループさせたい場合、単純に書くと下記のようになると思います。

float currentValue;

 

void Update{

    if(currentValue > targetValue ){

        currentValue= 0f;

    }

    if(currentValue < 0f){

        currentValue = 10f;

    }

}

 

 

それを下記のようにできます。

float currentValue;

 

void Update{

    currentValue = Mathf.Repeat(currentTime,10f)

 

}

 すごいすっきりしましたね。

 

注意すべき点は、負の数を第2引数に設定できないことです。

 

それでも使える場面は多々あると思うので参考までに。