using System.Collections; using System.Collections.Generic; using UnityEngine; using DG.Tweening; public class CameraMgr : MonoSingleton { CameraRT camera_Rt; Vector3 originPos; Vector3 originRot; // [Header("业务视角点")] public List logicViewList = new List(); private void Awake() { camera_Rt = GetComponent(); } public void SetOrigin() { originPos = Camera.main.transform.position; originRot = Camera.main.transform.localEulerAngles; } public void GotoView(string viewName) { Transform viewTarget = logicViewList.Find(x => x.name == viewName); camera_Rt.SetTarget(viewTarget); } public void GotoView(string viewName, float _distance) { Transform viewTarget = logicViewList.Find(x => x.name == viewName); camera_Rt.SetTarget(viewTarget, _distance); } public void GotoView(Transform viewTarget, float _distance) { camera_Rt.SetTarget(viewTarget, _distance); } public void GotoView(Transform viewTarget, float _distance,Quaternion rotation) { camera_Rt.SetTarget(viewTarget, _distance,rotation); } public void GotoView(Vector3 viewTarget, float _distance) { camera_Rt.SetTarget(viewTarget, _distance); } public void StoreTarget() { camera_Rt.StoreTarget(); } public void ResumeView() { camera_Rt.ResumeTarget(); } public void ReturnToMain() { Camera.main.transform.DORotate(originRot, 1); Camera.main.transform.DOMove(originPos, 1); } #region 自动切换预设视角 //[Header("漫游视角自动切换")] //public bool autoChangeView = false; //public float changeViewTimer; //public List autoChangeViewList; //int index = 0; //void ChangeView() //{ // if (!autoChangeView) // return; // if (index > autoChangeViewList.Count - 1) // { // index = 0; // ReturnToMain(); // return; // } // Camera.main.transform.position = autoChangeViewList[index].position; // Camera.main.transform.localEulerAngles = autoChangeViewList[index].localEulerAngles; // index++; //} //public void AutoChangeView_Open() //{ // autoChangeView = true; // CancelInvoke("ChangeView"); // InvokeRepeating("ChangeView", 15, 15); //} //public void AutoChangeView_Close() //{ // autoChangeView = false; //} #endregion }