Beispiel #1
0
    /// <summary>
    /// 创建层
    /// </summary>
    /// <param name="layer"></param>
    /// <param name="goParent"></param>
    /// <param name="depthStart"></param>
    private void CreateNewLayer(UiLayer layer, GameObject goParent, int depthStart)
    {
        GameObject go = GameObjectUtility.CreateGameObject();

        go.name = layer.ToString();
        go.AddComponent <UIPanel>().depth = depthStart;
        GameObjectUtility.AddUiChild(goParent, go);
        go.layer          = LayerMask.NameToLayer(layer.ToString());
        layerGoDic[layer] = go;
        CreateLayerCamera(layer, LayerMask.NameToLayer(layer.ToString()), go);
    }
Beispiel #2
0
 /// <summary>
 /// ui的显示事件, 通过BaseUi的显示方法调用过来的
 /// </summary>
 /// <param name="ui"></param>
 public void OnShow(BaseUi ui)
 {
     if (!GetLayerCamera(ui.layer.ToString()).transform.parent.gameObject.activeSelf)
     {
         GetLayerCamera(ui.layer.ToString()).transform.parent.gameObject.SetActive(true);
     }
     ui.gameObject.SetActive(true);
     AddBackground(ui);
     AddClickEvent(ui);
     if (layerGoDic.ContainsKey(ui.layer))
     {
         GameObjectUtility.AddUiChild(layerGoDic[ui.layer], ui.gameObject);
     }
     autoDepth.Add(autoDepth.GetUiPanel(ui), ui.layer);
 }
Beispiel #3
0
    /// <summary>
    ///  创建每一层的摄像机
    /// </summary>
    /// <param name="layer"></param>
    /// <param name="layerMask"></param>
    /// <param name="cameraParent"></param>
    private void CreateLayerCamera(UiLayer layer, int layerMask, GameObject cameraParent)
    {
        GameObject go = GameObjectUtility.CreateGameObject();

        go.name = layer + "Camera";
        Camera   camera   = go.AddComponent <Camera>();
        UICamera uiCamera = go.AddComponent <UICamera>();

        uiCamera.eventReceiverMask = (1 << layerMask);
        uiCamera.allowMultiTouch   = false;
        camera.clearFlags          = CameraClearFlags.Depth;
        camera.cullingMask         = (1 << layerMask);
        camera.orthographic        = true;
        camera.orthographicSize    = 1f;
        camera.nearClipPlane       = -10f;
        camera.farClipPlane        = 10f;
        camera.depth = (int)layer;
        GameObjectUtility.AddUiChild(cameraParent, go);
        camera.transform.localPosition = new Vector3(0, 0, -10f);
        layerCameraDic.Add(layer.ToString(), camera);
    }