/// <summary>
    /// 打开区域
    /// </summary>
    /// <param name="onComplete"></param>
    public override void OpenDep(Action onComplete = null, bool isFocusT = true)
    {
        ShowFactory();
        DisSelectLastDep();
        if (isFocusT)
        {
            IsFocus = true;
            FocusOn(onComplete);
        }
        else
        {
            if (onComplete != null)
            {
                onComplete();
            }
        }
        foreach (var building in ChildNodes)
        {
            building.HighlightOn(false);
        }
        //DepNode lastDep = FactoryDepManager.currentDep;
        //FactoryDepManager.currentDep = this;
        //SceneEvents.OnDepNodeChanged(lastDep, FactoryDepManager.currentDep);

        SceneEvents.OnDepNodeChanged(this);
    }
    /// <summary>
    /// 打开区域
    /// </summary>
    /// <param name="onComplete"></param>
    public override void OpenDep(Action onComplete = null, bool isFocusT = true)
    {
        HideFacotry();
        BuildingController building = ParentNode.ParentNode as BuildingController;

        if (building != null)
        {
            building.LoadRoom(ParentNode, true, floor =>
            {
                OnDevCreateComplete = onComplete;
                //DepNode lastDep = FactoryDepManager.currentDep;
                //FactoryDepManager.currentDep = this;
                //SceneEvents.OnDepNodeChanged(lastDep, this);

                SceneEvents.OnDepNodeChanged(this);
                //Todo:摄像头聚焦
                if (isFocusT)
                {
                    FocusOn(() =>
                    {
                        AfterRoomFocus(true);
                    });
                }
                else
                {
                    AfterRoomFocus(true);
                }
            });
        }
    }
    public static void SetCurrentDepNode(DepNode node)
    {
        //DepNode last = currentDep;
        //currentDep = node;
        //SceneEvents.OnDepNodeChanged(last, currentDep);

        SceneEvents.OnDepNodeChanged(node);
    }
 /// <summary>
 /// 返回园区
 /// </summary>
 private void BackToFactory()
 {
     IsFocus = false;
     HideDep();
     CameraSceneManager.Instance.ReturnToDefaultAlign();
     FactoryDepManager.currentDep = FactoryDepManager.Instance;
     SceneEvents.OnDepNodeChanged(this, FactoryDepManager.currentDep);
     SceneBackButton.Instance.Hide();
 }
    /// <summary>
    /// 加载机房
    /// </summary>
    /// <param name="depNode"></param>
    /// <param name="isFocusRoom"></param>
    /// <param name="OnComplete"></param>
    private void RoomCreate(DepNode depNode, bool isFocusRoom, Action <FloorController> OnComplete = null)
    {
        int roomId = depNode.NodeID;

        Log.Info(string.Format("RoomCreate2 DepNode:{0},{1}", depNode, depNode.TopoNode != null));
        GameObject roomObject = GetRoomObject(roomId);

        FloorController controller = roomObject.GetComponent <FloorController>();

        controller.RecordPosInBuilding(depNode);  //记录在大楼中的位置信息
        controller.SetColliderState(false);

        DisplayFloor(controller);//单独展示楼层

        controller.ShowFloorDev();
        if (controller.TopoNode == null)
        {
            controller.SetTopoNode(depNode.TopoNode);                               //设置TopoNode
        }
        currentRoom = controller;
        if (!isFocusRoom)
        {
            SceneEvents.OnDepNodeChanged(currentRoom);
            if (!LocationManager.Instance.IsFocus)
            {
                //摄像头对焦完成后,开始加载设备
                FocusCamera(roomObject, () =>
                {
                    controller.CreateFloorDev(() =>
                    {
                        if (OnComplete != null)
                        {
                            OnComplete(currentRoom);
                        }
                    });
                });
            }
            else
            {
                controller.CreateFloorDev(() =>
                {
                    if (OnComplete != null)
                    {
                        OnComplete(currentRoom);
                    }
                });
            }
        }
        else
        {
            if (OnComplete != null)
            {
                OnComplete(currentRoom);
            }
        }
    }
Example #6
0
    //private void InitDevContainer()
    //{
    //    if (_roomDevContainer != null) return;
    //    _roomDevContainer = new GameObject("RoomDevContainer");
    //    _roomDevContainer.transform.parent = transform;
    //    FloorController floor = ParentNode as FloorController;
    //    if (floor)
    //    {
    //        if (monitorRangeObject != null)
    //        {
    //            transform.position = monitorRangeObject.transform.position;
    //        }
    //        Transform parentCotainer = floor.RoomDevContainer.transform;
    //        _roomDevContainer.transform.position = parentCotainer.position;
    //        _roomDevContainer.transform.eulerAngles = parentCotainer.eulerAngles;
    //        _roomDevContainer.transform.localScale = parentCotainer.lossyScale;
    //    }
    //}
    ///// <summary>
    ///// 隐藏机房设备
    ///// </summary>
    //public void HideRoomDev()
    //{
    //    RoomDevContainer.SetActive(false);
    //}
    ///// <summary>
    ///// 显示机房设备
    ///// </summary>
    //public void ShowRoomDev()
    //{
    //    RoomDevContainer.SetActive(true);
    //}

    public override void FocusOn(Action onDevCreateFinish = null)
    {
        IsFocus = true;
        //OnDevCreateComplete = onDevCreateFinish;
        //DepNode lastDep = FactoryDepManager.currentDep;
        //FactoryDepManager.currentDep = this;
        //SceneEvents.OnDepNodeChanged(lastDep, this);

        SceneEvents.OnDepNodeChanged(this);
        //Todo:摄像头聚焦
        AlignTarget alignTargetTemp;

        alignTargetTemp = monitorRangeObject != null?GetTargetInfo(monitorRangeObject.gameObject) : GetTargetInfo(gameObject);

        CameraSceneManager camera = CameraSceneManager.Instance;

        //FlashingRoom();
        camera.FocusTargetWithTranslate(alignTargetTemp, AreaSize, AfterRoomFocus);
    }
    /// <summary>
    /// 打开区域
    /// </summary>
    /// <param name="onComplete"></param>
    public override void OpenDep(Action onComplete = null, bool isFocusT = true)
    {
        ShowFactory();
        if (NodeObject == null)
        {
            if (onComplete != null)
            {
                onComplete();
            }
            Debug.Log("DepObject is null...");
            return;
        }
        else
        {
            ShowBuildingDev(true);
            FactoryDepManager.Instance.HideOtherBuilding(this);
            if (isFocusT)
            {
                FocusOn(onComplete);
            }
            else
            {
                if (onComplete != null)
                {
                    onComplete();
                }
            }
            //DepNode lastDep = FactoryDepManager.currentDep;
            //lastDep.IsFocus = false;
            //FactoryDepManager.currentDep = this;
            //SceneEvents.OnDepNodeChanged(lastDep, FactoryDepManager.currentDep);

            FactoryDepManager.currentDep.IsFocus = false;
            SceneEvents.OnDepNodeChanged(this);
        }
    }