既然有了博客,就要写一个。即使我很菜
using UnityEngine;
using System.Collections;
public class UI_Manager : MonoBehaviour {
Transform UImanager;
// Use this for initialization
void Start ()
{
UImanager = GameObject.Find("UI_Manager").transform;
}
// Update is called once per frame
/// <summary>
/// 定义选择窗口 通过名字判定 类型打开和关闭
/// </summary>
/// <param name="name"></param>
/// <param name="type"></param>
public void SelectWindow(string name,string type)
{
for (int i = 0; i < transform.childCount; i++)
{
if (type == "OpenWindow")
{
OpenWindow(name);
}
if (type == "CloseWindow")
{
CloseWindow(name);
}
}
}
/// <summary>
/// 定义统一的关闭窗口
/// </summary>
/// <param name="ID"></param>
public void CloseWindow(string ID)
{
for (int i = 0; i < UImanager.childCount; i++)
{
if (UImanager.GetChild(i).name == ID)
{
UImanager.GetChild(i).gameObject.SetActive(false);
}
}
}
/// <summary>
/// 定义统一的打开窗口
/// </summary>
/// <param name="ID"></param>
public void OpenWindow(string ID)
{
for (int i = 0; i < UImanager.childCount; i++)
{
if (UImanager.GetChild(i).name == ID)
{
UImanager.GetChild(i).gameObject.SetActive(true);
}
}
}
}
通过 用另个一个调用
using UnityEngine;
using System.Collections;
public class Btn_Manager : MonoBehaviour {
UI_Manager manager; // 定义 UI_Manager组件
Transform UIManager; //
// Use this for initialization
void Start ()
{
UIManager = GameObject.Find("UI_Manager").transform;
manager=GameObject.Find("UI_Manager").GetComponent<UI_Manager>();
}
// Update is called once per frame
void OnClick()
{
switch (transform.name)
{
// 点击跳转
case "BtnName":
manager.SelectWindow("WindowName", "OpenWindow");
manager.SelectWindow("WindowName","CloseWindow");
break;
好了写完了,人生第一个。