Пример #1
0
 private void OnDestroy()
 {
     m_Instance = null;
 }
Пример #2
0
    private static void InitNGUIRoot()
    {
        GameObject go = new GameObject("UIRoot");

        go.layer           = LayerMask.NameToLayer("UI");
        m_Instance         = go.GetOrAddComponent <CustomUIRoot>();
        m_Instance.mUIRoot = go.transform;

        UIRoot root = go.AddComponent <UIRoot>();

        root.scalingStyle = UIRoot.Scaling.Constrained;
        root.manualWidth  = AppConst.AppContentWidth;
        root.manualHeight = AppConst.AppContentHeight;
        root.fitHeight    = true;
        root.fitWidth     = false;

        //go.AddComponent<UIPanel>();

        //Rigidbody rigidbody = go.AddComponent<Rigidbody>();
        //rigidbody.useGravity = false;
        //rigidbody.isKinematic = true;

        GameObject camGo = new GameObject("Camera");

        camGo.layer                   = LayerMask.NameToLayer("UI");
        camGo.transform.parent        = go.transform;
        camGo.transform.localPosition = Vector3.zero;

        Camera cam = camGo.AddComponent <Camera>();

        cam.clearFlags       = CameraClearFlags.Depth;
        cam.depth            = 2;
        cam.cullingMask      = 5 << 5;
        cam.orthographic     = true;
        cam.orthographicSize = 1;
        cam.farClipPlane     = 200f;
        m_Instance.mUICamera = cam;
        cam.nearClipPlane    = -10f;
        cam.farClipPlane     = 10f;

        camGo.AddComponent <UICamera>();

        GameObject subRoot = CreateGameObject(go.transform);

        subRoot.name          = "FixedRoot";
        m_Instance.mFixedRoot = subRoot.transform;

        subRoot                = CreateGameObject(go.transform);
        subRoot.name           = "NormalRoot";
        m_Instance.mNormalRoot = subRoot.transform;

        subRoot               = CreateGameObject(go.transform);
        subRoot.name          = "PopupRoot";
        m_Instance.mPopupRoot = subRoot.transform;

        subRoot                = CreateGameObject(go.transform);
        subRoot.name           = "TopBarRoot";
        m_Instance.mTopBarRoot = subRoot.transform;

        subRoot                = CreateGameObject(go.transform);
        subRoot.name           = "GameUIRoot";
        m_Instance.mGameUIRoot = subRoot.transform;
    }
Пример #3
0
    private static void InitUGUIRoot()
    {
        GameObject go = new GameObject("UIRoot");

        go.layer   = LayerMask.NameToLayer("UI");
        m_Instance = go.AddComponent <CustomUIRoot>();
        go.AddComponent <RectTransform>();
        m_Instance.mUIRoot = go.transform;

        Canvas can = go.AddComponent <Canvas>();

        can.renderMode   = RenderMode.ScreenSpaceCamera;
        can.pixelPerfect = true;
        GameObject camObj = new GameObject("UICamera");

        camObj.layer                   = LayerMask.NameToLayer("UI");
        camObj.transform.parent        = go.transform;
        camObj.transform.localPosition = new Vector3(0, 0, -100f);
        Camera cam = camObj.AddComponent <Camera>();

        cam.clearFlags       = CameraClearFlags.Depth;
        cam.orthographic     = true;
        cam.farClipPlane     = 200f;
        can.worldCamera      = cam;
        m_Instance.mUICamera = cam;
        cam.cullingMask      = 1 << 5;
        cam.nearClipPlane    = -50f;
        cam.farClipPlane     = 50f;

        //add audio listener
        camObj.AddComponent <AudioListener>();
        camObj.AddComponent <GUILayer>();

        CanvasScaler cs = go.AddComponent <CanvasScaler>();

        cs.uiScaleMode         = CanvasScaler.ScaleMode.ScaleWithScreenSize;
        cs.referenceResolution = new Vector2(1136f, 640f);
        cs.screenMatchMode     = CanvasScaler.ScreenMatchMode.Expand;

        GameObject subRoot = CreateSubCanvasForRoot(go.transform, 250);

        subRoot.name          = "FixedRoot";
        m_Instance.mFixedRoot = subRoot.transform;

        subRoot                = CreateSubCanvasForRoot(go.transform, 0);
        subRoot.name           = "NormalRoot";
        m_Instance.mNormalRoot = subRoot.transform;

        subRoot               = CreateSubCanvasForRoot(go.transform, 500);
        subRoot.name          = "PopupRoot";
        m_Instance.mPopupRoot = subRoot.transform;

        //add Event System
        GameObject esObj = GameObject.Find("EventSystem");

        if (esObj != null)
        {
            GameObject.DestroyImmediate(esObj);
        }

        GameObject eventObj = new GameObject("EventSystem");

        eventObj.layer = LayerMask.NameToLayer("UI");
        eventObj.transform.SetParent(go.transform);
        eventObj.AddComponent <EventSystem>();
        eventObj.AddComponent <UnityEngine.EventSystems.StandaloneInputModule>();
    }