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); } }); }
/// <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); } }); }
//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> 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"); } } }