【Unity初心者向け】数秒遅れて関数を実行する方法Invoke()
おはようございます。おーみんです。
現在Unityでゲームを制作中です。
今回の記事では「数秒遅れてから関数を実行する方法」を解説していこうと思います。
数秒遅れてから関数を実行する方法と言われてもピンと来ない方もいると思うので以下の動画をどうぞ。
手前で動いているのが僕の操作している戦闘機なんですが、この戦闘機が撃ち落とされた際に「あなたのレベルは〇〇です」というUIを出します。
Today, I made UI when I"ll be destroyed.
— 超おーみん2@Unity民族 (@Ooooooomin_365) 2019年3月16日
this UI is related to "Point".
Hmm...next, I"ll make stage real!#unity #unity3d #gamedev #IndieGameDev pic.twitter.com/u4DCCyZF56
このとき、ただ単純にUIを出すのではなく、僕の操作している戦闘機が撃ち落とされて少し時間が経ってから「あなたは〇〇レベルです」とUIを出すというタイムラグを発生させたいのです。
普通に自分の戦闘機が撃ち落とされて消える(Destroy()関数)と同様のスレッド内にUIが表れてしまうプログラムを書いてしまうと戦闘機が撃ち落とされた瞬間にUIが出てしまいますからね...。
さて、困りました。
しかし実はこれを凄く簡単に出来る関数があるのです。
その名もInvoke関数!
使い方は「Invoke("実行したい関数名", 何秒後に実行するか)」となります。
僕自身も結構重宝しており、使う機会も多いのでしっかり覚えておきましょう!