利用枚举 标注面板
方法一:方法引用
创建方法UpDataUI() 设置面板状态
用Switch语句
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
public enum Panel
{
MainPanleAni,
Main,
MapSelect
}
private Panel panel1;
[Header ("面板")]
public GameObject MainPanleAni;
public GameObject mainPanel;
public GameObject mapSelectPanel;
void Start()
{
Panel1 = Panel.MainPanleAni;
UpdateUI();
}
//方法
public void UpdateUI()
{
switch (Panel1)
{
case Panel.MainPanleAni:
MainPanleAni.SetActive(true);
mainPanel.SetActive(false);
mapSelectPanel.SetActive(false);
break;
case Panel.Main:
MainPanleAni.SetActive(false);
mainPanel.SetActive(true);
mapSelectPanel.SetActive(false);
break;
case Panel.MapSelect:
MainPanleAni.SetActive(false);
mainPanel.SetActive(false);
mapSelectPanel.SetActive(true);
break;
default:
break;
}
}
public void StartGameOnclick()
{
Panel1 = Panel.MapSelect;
UpdateUI();
}
public void ExitGameOnclick()
{
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
}
}
方法二:属性
利用 {get;set}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
public enum Panel
{
MainPanleAni,
Main,
MapSelect
}
private Panel panel1;
[Header ("面板")]
public GameObject MainPanleAni;
public GameObject mainPanel;
public GameObject mapSelectPanel;
//属性 可以引用 枚举Panel
public Panel Panel1 { get => panel1; set {
switch (Panel1)
{
case Panel.MainPanleAni:
MainPanleAni.SetActive(true);
mainPanel.SetActive(false);
mapSelectPanel.SetActive(false);
break;
case Panel.Main:
MainPanleAni.SetActive(false);
mainPanel.SetActive(true);
mapSelectPanel.SetActive(false);
break;
case Panel.MapSelect:
MainPanleAni.SetActive(false);
mainPanel.SetActive(false);
mapSelectPanel.SetActive(true);
break;
default:
break;
}
panel1 = value;
} }
void Start()
{
Panel1 = Panel.MainPanleAni;
}
public void StartGameOnclick()
{
Panel1 = Panel.MapSelect;
}
public void ExitGameOnclick()
{
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
}
}
结合
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
public enum Panel
{
MainPanleAni,
Main,
MapSelect
}
private Panel panel1;
[Header ("面板")]
public GameObject MainPanleAni;
public GameObject mainPanel;
public GameObject mapSelectPanel;
public Panel Panel1 { get => panel1; set {
panel1 = value;
UpdateUI();
} }
void Start()
{
Panel1 = Panel.MainPanleAni;
}
public void UpdateUI()
{
switch (Panel1)
{
case Panel.MainPanleAni:
MainPanleAni.SetActive(true);
mainPanel.SetActive(false);
mapSelectPanel.SetActive(false);
break;
case Panel.Main:
MainPanleAni.SetActive(false);
mainPanel.SetActive(true);
mapSelectPanel.SetActive(false);
break;
case Panel.MapSelect:
MainPanleAni.SetActive(false);
mainPanel.SetActive(false);
mapSelectPanel.SetActive(true);
break;
default:
break;
}
}
public void StartGameOnclick()
{
Panel1 = Panel.MapSelect;
}
public void ExitGameOnclick()
{
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
}
}