private void FocusCamera(GameObject room, Action onCameraAlignEnd = null)
    {
        AlignTarget        alignTargetTemp = GetFloorTargetInfo(room);
        CameraSceneManager cameraT         = CameraSceneManager.Instance;

        cameraT.FocusTargetWithTranslate(alignTargetTemp, AreaSize, onCameraAlignEnd, () =>
        {
            if (RoomFactory.Instance)
            {
                RoomFactory.Instance.SetDepFoucusingState(false);
            }
        });
    }
    /// <summary>
    /// 获取主相机
    /// </summary>
    /// <returns></returns>
    private Camera GetMainCamera()
    {
        CameraSceneManager manager = CameraSceneManager.Instance;

        if (manager && manager.MainCamera != null)
        {
            return(manager.MainCamera);
        }
        else
        {
            Debug.LogError("CameraSceneManager.MainCamera is null!");
            return(null);
        }
    }
 // Use this for initialization
 void Awake()
 {
     Instance = this;
     if (alignCamera == null)
     {
         alignCamera = GameObject.FindObjectOfType <AroundAlignCamera>();
     }
     RecordDefaultAlign();
     if (alignCamera != null)
     {
         alignCamera.OnAlignEnd   += OnCameraAlignEnd;
         alignCamera.OnAlignStart += AlignCamera_OnAlignStart;
     }
 }
    /// <summary>
    /// 聚焦区域
    /// </summary>
    public override void FocusOn(Action onFocusComplete = null)
    {
        IsFocus = true;
        AlignTarget        alignTargetTemp = GetTargetInfo(gameObject);
        CameraSceneManager cameraT         = CameraSceneManager.Instance;

        cameraT.FocusTargetWithTranslate(alignTargetTemp, AreaSize, onFocusComplete, () =>
        {
            if (RoomFactory.Instance)
            {
                RoomFactory.Instance.SetDepFoucusingState(false);
            }
        });
    }
Esempio n. 5
0
 /// <summary>
 /// 取消聚焦
 /// </summary>
 /// <param name="isCameraBack">摄像机是否返回区域视角</param>
 public void FocusOff(bool isCameraBack = true)
 {
     IsFocus         = false;
     CurrentFocusDev = null;
     HighLightOff();
     ChangeBackButtonState(false);
     if (isCameraBack)
     {
         CameraSceneManager manager    = CameraSceneManager.Instance;
         DepNode            currnetDep = FactoryDepManager.currentDep;
         if (manager && currnetDep != null)
         {
             currnetDep.FocusOn();
         }
     }
 }
    /// <summary>
    /// 聚焦房间
    /// </summary>
    /// <param name="onFocusFinish"></param>
    public override void FocusOn(Action onFocusFinish = null)
    {
        AlignTarget alignTargetTemp;

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

        CameraSceneManager camera = CameraSceneManager.Instance;

        //FlashingRoom();
        camera.FocusTargetWithTranslate(alignTargetTemp, AreaSize, onFocusFinish, () =>
        {
            if (RoomFactory.Instance)
            {
                RoomFactory.Instance.SetDepFoucusingState(false);
            }
        });
    }
Esempio n. 7
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);
    }
Esempio n. 8
0
    /// <summary>
    /// 聚焦设备
    /// </summary>
    public void FocusOn()
    {
        bool sameArea = IsSameArea();

        if (CurrentFocusDev != null)
        {
            CurrentFocusDev.FocusOff(false);
        }
        IsFocus = true;
        CameraSceneManager manager = CameraSceneManager.Instance;

        if (manager)
        {
            if (sameArea)
            {
                AlignTarget target = GetTargetInfo(gameObject);
                manager.FocusTarget(target, () =>
                {
                    ChangeBackButtonState(true);
                });
                HighlightOn();
            }
            else
            {
                RoomFactory.Instance.FocusNode(ParentDepNode, () =>
                {
                    AlignTarget target = GetTargetInfo(gameObject);
                    manager.FocusTarget(target, () =>
                    {
                        ChangeBackButtonState(true);
                    });
                    HighlightOn();
                });
            }
            CurrentFocusDev = this;
        }
    }
 /// <summary>
 /// 聚焦建筑
 /// </summary>
 public override void FocusOn(Action onFocusComplete = null)
 {
     IsFocus = true;
     if (NodeObject == null)
     {
         if (onFocusComplete != null)
         {
             onFocusComplete();
         }
         Debug.Log("DepObject is null...");
         return;
     }
     else
     {
         CameraSceneManager camera = CameraSceneManager.Instance;
         if (camera)
         {
             AlignTarget alignTargetTemp = GetTargetInfo(NodeObject);
             camera.FocusTargetWithTranslate(alignTargetTemp, AreaSize, onFocusComplete, () =>
             {
                 if (RoomFactory.Instance)
                 {
                     RoomFactory.Instance.SetDepFoucusingState(false);
                 }
             });
         }
         else
         {
             if (onFocusComplete != null)
             {
                 onFocusComplete();
             }
             Log.Alarm("CameraSceneManager.Instance==null");
         }
     }
 }