FC2ブログ
    02 «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.31.» 04

    ハルシオンシステムの気まま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.jp/tb.php/531-05bed670
    この記事にトラックバックする(FC2ブログユーザー)