FC2ブログ
10 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 12

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】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)

tb 0 : cm 0   

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://halcyonsystemblog.blog.fc2.com/tb.php/531-05bed670
この記事にトラックバックする(FC2ブログユーザー)