0
0

More than 1 year has passed since last update.

UI変更は必ずSceneを変えなきゃ行けないのか?

unityでゲームを作成する際、特に3Dで、ゲームのステージを変えるときにSceneを変えることで対応する場合は多いと思いますが、2DゲームではSceneを変えなくてもPanelを変更することでUIを変更することができます。
本日はそんなお話です。

2Dゲームで2つのUI変更方法

UIを変えるには以下の2つの方法が考えられます。
① Sceneを変える
② Panelを変える

②の場合は、目の前にある紙芝居の紙をめくっていくようなイメージであり、①の場合は、紙芝居そのものを変更するイメージです。(伝わりますか?ww)

Sceneを変えるScript

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

public class TitleSceneManager : MonoBehaviour
{
    public void GameStart()
    {
        SceneManager.LoadScene("GameScene");
    }
}

必ず最初にUnityEngine.SceneManagementを呼び出さないといけません。

Panelを変えるScript

GameManager.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GameManager : MonoBehaviour
{
    public GameObject panelA;
    public GameObject panelB;
    public GameObject panelC;

    void Start()
    {
        panelA.SetActive(ture);
        panelB.SetActive(false);
        panelC.SetActive(false); 
    }

    public void AtoB()
    {
        panelA.SetActive(false);
        panelB.SetActive(true);
    }

    public void AtoC()
    {
        panelA.SetActive(false);
        panelC.SetActive(true);
    }

    public void BtoA()
    {
        panelB.SetActive(false);
        panelA.SetActive(true);
    }

    public void BtoC()
    {
        panelB.SetActive(false);
        panelC.SetActive(true);
    }

    public void CtoB()
    {
        panelC.SetActive(false);
        panelB.SetActive(true);
    }

    public void CtoA()
    {
        panelC.SetActive(false);
        panelA.SetActive(true);
    }
}

紙芝居のページがPanel Objectに相当します。
必要な枚数のPanelを用意し、それぞれをアタッチして、1枚目のみ表示、その他は非表示とし、その後Panelの表示を切り替えることでUIを変更していきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0