【Unity入門】Invokeを使って数秒後に関数を呼び出す

2021年11月28日

Invokeとは

Invokeとは数秒後に関数を呼び出すためのものです。

Invokeは

Invoke(“関数名”, 秒数);

と記述します。

実際に使ってみる

準備

それでは、実際にInvokeを使ってみましょう。

まずは、以前作成した、『Unity Basics』というプロジェクトを開いてください。

『Unity Basics』を開いたら、Invokeを使うシーンを作っていきましょう。

Scenesフォルダの中に作成します。

ProjectウィンドウでScenesフォルダを選択しましょう。

選択した状態で『+』ボタンを押しましょう。

色々と出てくるので、『Scene』をクリックしましょう。

すると、Scenesフォルダの中に新しくSceneが作成されます。

Sceneの名前を『Invoke』に変更しておきましょう。

今回はInvokeの中でやっていきたいので、Sceneを移動します。

Invokeをダブルクリックしましょう。

すると、Sceceを移動することができます。

Hierarchyウィンドウを見ると、現在のSceneが『Invoke』に変わっていますね。

次に、Invokeを作るためのスクリプトを作成しましょう。

ProjectウィンドウでScriptsフォルダを選択してください。

選択した状態で『+』ボタンを押しましょう。

色々と出てくるので、『C# Script』を押します。

すると、新しくスクリプトが作成されます。

名前が確定する前に『InvokeScript』と変更しましょう。

スクリプトを作成したら、適当なオブジェクトに追加します。

今回は、InvokeScriptをMain Cameraにドラッグ&ドロップしましょう。

すると、Main CameraにInvokeScriptが追加されます。

Invokeを使ってみる

それでは、Invokeを使ってみましょう。

InvokeScriptをダブルクリックしてください。

すると、スクリプトを編集できるようになります。

今回はゲームがスタートして、3秒経過したら、『こんにちは』とコンソールに出力されるようにしていきましょう。

まずはInvokeで呼び出すための関数を作りましょう。

Update関数の下に

void Hello(){
    Debug.Log(“こんにちは”);}

と記述しましょう。

このコードは、呼び出されると『こんにちは』とコンソールに出力する

Helloという名前の関数を定義しています。

次に、この関数をゲームスタートから三秒後に呼び出されるようにしてみましょう。

Start関数の中に

Invoke(“Hello”, 3);

と記述しましょう。

コードについて説明しておきます。

まず、Invokeというのは、

第一引数で指定した関数を数秒後に呼び出す関数です。

関数を指定するときは、関数の名前を『” ”』で囲って文字列で指定します。

今回はHelloという関数を呼び出したいので、『”Hello”』と記述しました。

何秒後に呼び出すかは第二引数が決めます。

今回は三秒後にHelloを呼び出したいので、『3』と記述しました。

この状態で再生すると、ゲームスタートから三秒後にコンソールに『こんにちは』と表示されるはずです。

実際にそのようになるのか、再生して確かめてみましょう。

スクリプトを保存して、Unityエディタに戻り、再生ボタンを押しましょう。

すると、予想通りゲームスタートから三秒後に、コンソールに『こんにちは』と表示されますね。

このように、Invokeを使えば、数秒後に関数を呼び出すことができます。

Invoke

Posted by mogi0506