102 lines
2.2 KiB
Plaintext
102 lines
2.2 KiB
Plaintext
using UnityEngine;
|
||
using System.Collections;
|
||
using UnityEngine.UI;
|
||
using System;
|
||
using System.IO;
|
||
using System.Collections.Generic;
|
||
|
||
|
||
public class UIRoot : MonoSingletion<UIRoot>
|
||
{
|
||
public Transform root;
|
||
public Transform popUpRoot;
|
||
public Transform normalRoot;
|
||
|
||
|
||
|
||
|
||
Canvas rootCanvas;
|
||
|
||
public Canvas RootCanvas
|
||
{
|
||
get { return rootCanvas; }
|
||
}
|
||
public Camera UICamera
|
||
{
|
||
get { return rootCanvas.worldCamera; }
|
||
}
|
||
public void Tmp()
|
||
{
|
||
|
||
}
|
||
|
||
protected override void Awake()
|
||
{
|
||
base.Awake();
|
||
/******************GC优化******************/
|
||
useGUILayout = false;//不关闭每帧有GC
|
||
|
||
/************************************/
|
||
|
||
if (root == null)
|
||
root = this.transform;
|
||
rootCanvas = root.GetComponent<Canvas>();
|
||
|
||
if (popUpRoot == null)
|
||
{
|
||
GameObject go = CreateSubCanvas(root, 500);
|
||
go.name = "PopUpUICanvas";
|
||
popUpRoot = go.transform;
|
||
}
|
||
if (normalRoot == null)
|
||
{
|
||
GameObject go = CreateSubCanvas(root, 0);
|
||
go.name = "NormalUICanvas";
|
||
normalRoot = go.transform;
|
||
}
|
||
|
||
|
||
}
|
||
public void StartCoroutines(IEnumerator ie)
|
||
{
|
||
StartCoroutine(ie);
|
||
}
|
||
void Start()
|
||
{
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
public void StartLogin() {
|
||
UIMgr.ShowUI(UIPath.Login);
|
||
}
|
||
|
||
GameObject CreateSubCanvas(Transform root, int sortOrder)
|
||
{
|
||
GameObject go = new GameObject("NewCanvas");
|
||
go.transform.SetParent(root, false);
|
||
go.layer = root.gameObject.layer;
|
||
|
||
Canvas canvas = go.AddComponent<Canvas>();
|
||
canvas.overrideSorting = true;
|
||
canvas.sortingOrder = sortOrder;
|
||
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
|
||
|
||
RectTransform rect = go.GetComponent<RectTransform>();
|
||
rect.anchorMin = Vector2.zero;
|
||
rect.anchorMax = Vector2.one;
|
||
rect.sizeDelta = Vector2.zero;
|
||
rect.localScale = Vector3.one;
|
||
|
||
//负责检测UI射线检测,否则界面点击没有反应
|
||
go.AddComponent<GraphicRaycaster>();
|
||
|
||
return go;
|
||
}
|
||
|
||
|
||
}
|