#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を変更していきます。