Unity 時間差でSceneを遷移する方法

本日はScene遷移の方法を、時間差で実行します。
対戦型ゲームを作っていて、勝敗がついた後に、Sceneを遷移したいけれども時間を置いてから遷移したいとき等に活用できると思います。

(1):Scene遷移の方法を簡単に紹介
(2):遷移方法に時間差を付ける処理を追加

(1):Scene遷移の方法を簡単に紹介

a:Sceneを追加
b:空のGameObjectを追加
 → C#スクリプト(toFinish classを作成) をAdd component
c:scriptを編集
d:遷移したいタイミングでSceneManager.LoadScene()を含んだ処理を呼び出す

#classに継承しておく。SceneManagerを使えるようにする
using UnityEngine.SceneManagement;

#関数内で処理を実行する宣言をしておく
public class toFinish : MonoBehaviour
{ 
   public void OnfinishGame()
   {
   SceneManager.LoadScene("Sceneの名称");
   }
}

(2):遷移方法に時間差を付ける処理を追加

一番簡単に時間差を作れる、Invokeを呼び出して見ましょう。
遷移したいタイミングの関数をfinish()とした際に

private void finish ()
{
        //3秒後にCall関数を実行する
        Invoke("Call", 3f);
 }
}

void Call()
{
  #遷移する処理を呼び出し
    OnfinishGame();
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です