🔘

Unityでシーンを変えてから3秒後にボタンを表示する

2021/05/15に公開

備考

Windows10
Unity 2020.3.5f1
日本語化してます。
なお、今回は詳細な解説は省きます。

目次

  1. プロジェクト作成
  2. シーンを作る
  3. シーンを登録する
  4. シーン遷移のプログラムを書く
  5. 2つ目のシーン用のプログラムを書く
  6. 完成

さて...

1. プロジェクト作成

まずはプロジェクトの作成をします。今回は「テスト」にしました。

2. シーンを作る

下の「プロジェクト」ウィンドウで右クリック -> 作成 -> シーン を選択し、2つ作ります。名前は適当で構いませんが、今回は「1」と「2」にしました。

また、両シーンに「scene」という名前で空のゲームオブジェクトを作っておいてください

3. シーンを登録する

続いてシーンを登録します。これをしないとシーンを操作できません。
左上のファイル -> ビルド設定 をクリック。

シーンを追加をクリックして画像と同じになったら閉じます。

これで完了です。

4. シーン遷移のプログラムを書く

Assetで「scripts」フォルダを作り

「scripts」フォルダで右クリック -> 作成 -> C#スクリプト でスクリプトを作成します。


名前は「s1to2」にしました。
ダブルクリックで開き、このように入力してください。

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

public class s1to2 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetKey(KeyCode.Space)) {
            SceneManager.LoadScene("2");
        } 
    }
}

そしてこれをシーン1の「scene」へドラッグ&ドロップします。
これでスペースを押したときにシーン2へ遷移できます。

5. 2つ目のシーン用のプログラムを書く

先ほどと同じようにプロジェクトを作成します。名前はs2にしました。

これを開いて、下のものを入力してください。

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

public class s2 : MonoBehaviour
{
    float count = 0;
    GameObject btn;
    // Start is called before the first frame update
    void Start()
    {
        btn = GameObject.Find("Button");
        btn.SetActive(false);
    }

    // Update is called once per frame
    void Update()
    {
        count += Time.deltaTime;
        if (count >= 3.0f) {
            btn.SetActive(true);
        }
    }
}

これをシーン2の「scene」にドラッグ&ドロップすれば完成です。

ご覧いただきありがとうございました。

Discussion