【ハルシオンブログ】MathfのRepeat関数を使ってみたよ!意外と便利よね~
こんにちは!坂内っす。
色々あってブログ遅れた!そしてネタがないので、さくっと簡単ネタ。
Mathfの話。
色々Mathfって関数ありますよね。
その中で最近使って、「これ楽だわー」って思ったやつを紹介。
【Mathf.Repeat】
リピート関数です。
float Repeat(float a, float length)
aを0からlengthまで繰り返す。
こんな感じの事を書くと、X座標が1.7まで行き、そのあと0に戻ります。

1点注意が必要です。
floatの場合は「lengthまで」ですが、intの場合は「length - 1まで」となります。
Mathf.Repeat(0,5) ⇒ 0
Mathf.Repeat(1,5) ⇒ 1
Mathf.Repeat(2,5) ⇒ 2
Mathf.Repeat(3,5) ⇒ 3
Mathf.Repeat(4,5) ⇒ 4
Mathf.Repeat(5,5) ⇒ 0
Mathf.Repeat(-1,5) ⇒ 4
Mathf.Repeat(-2,5) ⇒ 3
Mathf.Repeat(10,5) ⇒ 0
こんな感じになるのかな。
また、Repeatを使うとページャ(一覧画面とかで、何ページ目みたいなやつ)が簡単に作れますね!
【たとえば.cs】
書いてませんが、ViewCurrentPage関数で色々と指定ページの情報を画面に出す処理をする。
前のページボタンを押すと、OnClickPrev()が、
次のページボタンを押すと、OnClickNext()が呼ばれるようにします。
これで簡単にページャができそうですね。
いや、別に「currentPage = maxPage % currentPage」とかでもいいんですけどね~
ということで、簡単ではありますが、Mathf.Repeatの使い方でした!
ではあでゅ~ノシ
色々あってブログ遅れた!そしてネタがないので、さくっと簡単ネタ。
Mathfの話。
色々Mathfって関数ありますよね。
その中で最近使って、「これ楽だわー」って思ったやつを紹介。
【Mathf.Repeat】
リピート関数です。
float Repeat(float a, float length)
aを0からlengthまで繰り返す。
using UnityEngine;
public class RepeatTest : MonoBehaviour {
[SerializeField]
Transform cardTran;
float timer;
void Update () {
timer += Time.deltaTime;
float posiX = Mathf.Repeat(timer, 1.7f);
cardTran.localPosition = new Vector3(posiX,0,0);
}
}
こんな感じの事を書くと、X座標が1.7まで行き、そのあと0に戻ります。

1点注意が必要です。
floatの場合は「lengthまで」ですが、intの場合は「length - 1まで」となります。
Mathf.Repeat(0,5) ⇒ 0
Mathf.Repeat(1,5) ⇒ 1
Mathf.Repeat(2,5) ⇒ 2
Mathf.Repeat(3,5) ⇒ 3
Mathf.Repeat(4,5) ⇒ 4
Mathf.Repeat(5,5) ⇒ 0
Mathf.Repeat(-1,5) ⇒ 4
Mathf.Repeat(-2,5) ⇒ 3
Mathf.Repeat(10,5) ⇒ 0
こんな感じになるのかな。
また、Repeatを使うとページャ(一覧画面とかで、何ページ目みたいなやつ)が簡単に作れますね!
【たとえば.cs】
using UnityEngine;
public class RepeatTest : MonoBehaviour {
int currentPage = 0;
int maxPage = 10;
public void OnClickPrev() {
--currentPage;
Paging();
}
public void OnClickNext() {
++currentPage;
Paging();
}
void Paging() {
currentPage = (int)Mathf.Repeat(currentPage,maxPage);
// currentPageのページ情報を作成&表示
ViewCurrentPage();
}
}
書いてませんが、ViewCurrentPage関数で色々と指定ページの情報を画面に出す処理をする。
前のページボタンを押すと、OnClickPrev()が、
次のページボタンを押すと、OnClickNext()が呼ばれるようにします。
これで簡単にページャができそうですね。
いや、別に「currentPage = maxPage % currentPage」とかでもいいんですけどね~
ということで、簡単ではありますが、Mathf.Repeatの使い方でした!
ではあでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】スクリプトを非アクティブで開始してもAwakeって動くんすね。 | 【ハルシオンブログ】C#の関数を知らないで無駄なことを書くことが多い。 »
コメント
| h o m e |