Unity C#で一定間隔でメソッドを何度も呼び出させる方法/InvokeRepeating関数の使い方

water IT

InvokeRepeating関数を使うと、シンプルな記述で指定したメソッドを定期的に呼び出すことが可能です。
Fixed Updateなどでも代用できますが、メソッド呼び出しとセットで記述する場合などに便利です。

スポンサーリンク

前準備

2Dで適当なスプライトとテキストを用意します。スプライトにはコライダーを設定し、
//Unity C#
using UnityEngine.UI;

public class saveTest : MonoBehaviour
{
public Text text;
public int number;

void OnMouseDown()
{
//メソッド呼び出し
PlusNumber();
}

void PlusNumber();
{
//現在の数字に+1
number = int.Parse(text.text) + 1;
//数字をテキストに表示
text.text = number.ToString();
}
}
クリックするとPlusNumberメソッドが呼び出されるようにします。PlusNumberメソッドは、実行するたびにテキストの数字を増やします。
スクリプトをアタッチし、テキストはインスペクターでセットしておきます。
クリックすると数が増える(ちゃんと動く)ことを確認します。

InvokeRepeating関数の使い方

//Unity C#
//Unity C#
void Start()
{
//OnMouseDownから移動
PlusNumber();
}
動作確認が済んだPlusNumber呼び出しの命令をStartメソッド内に持ってきます。
このままだと最初に一回数字を増やすだけですが、
//Unity C#
//Unity C#
void Start()
{
//軌道から0秒で一度実行、その後1秒ごとに呼び出し
InvokeRepeating("PlusNumber",0,1);
}
こういう形に式を修正すると、「PlusNumberメソッド」を「開始0秒で1回呼び出し」「その後1秒ごとに呼び出し」という意味の式になります。
メソッドを繰り返し呼び出し
InvokeRepeating(“メソッド名”,開始秒数,リピート秒数);
実行するとこんな感じになります。
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。

コメント

モバイルバージョンを終了