「毎日Unity」の技術ブログ

開発で役立つ情報を発信する

【UnityC#】〇秒毎に〇を実行する方法

Unityでゲーム開発をしている時に〇秒毎に〇を実行したくなることがあると思います。今回はその方法をまとめてみました。

[ Invokeを使う方法 ]

Invokeは指定した関数を指定した秒数後に呼び出すことができます。
下記は3秒毎にコンソールに「3秒毎に呼び出されるよ!」と出力するスクリプトです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScriptTest : MonoBehaviour
{
    void Start()
    {
        //FunctionTestを3秒後に呼び出します。
        Invoke("FunctionTest", 3f);
    }

    void FunctionTest()
    {
        Debug.Log("3秒毎に呼び出されるよ!");

        //FunctionTestを3秒後に呼び出します。
        Invoke("FunctionTest", 3f);
    }
}

[ InvokeRepeatingを使う方法 ]

InvokeRepeatingは指定した関数を指定した秒数毎に呼び出すことができます。
下記は3秒毎にコンソールに「3秒毎に呼び出されるよ!」と出力するスクリプトです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScriptTest : MonoBehaviour
{
    void Start()
    {
        //FunctionTestを3秒毎に呼び出します。
        InvokeRepeating("FunctionTest", 0f, 3f);
    }

    void FunctionTest()
    {
        Debug.Log("3秒毎に呼び出されるよ!");
    }
}