using UnityEngine; using UnityEngine.UI; using QFramework; using DG.Tweening; using System.Collections.Generic; namespace QFramework.Example { public class UICameraSwitchData : UIPanelData { public string nearDevice; public string normalDevice; public Vector3 nearPos; public Vector3 nearRot; public Vector3 normalPos; public Vector3 normalRot; public float nearTime; public float normalTime; public bool isNear; } public partial class UICameraSwitch : UIPanel { protected override void OnInit(IUIData uiData = null) { mData = uiData as UICameraSwitchData ?? new UICameraSwitchData(); // please add init code here Near.onValueChanged.AddListener(isOn => { if (isOn) { SetNear(); } Near.transform.Find("Bg/Line").gameObject.SetActive(isOn); }); Far.onValueChanged.AddListener(isOn => { if (isOn) { SetNormal(); } Far.transform.Find("Bg/Line").gameObject.SetActive(isOn); }); } public void SetNear() { Camera.main.transform.DOMove(mData.nearPos, mData.nearTime); Camera.main.transform.DORotate(mData.nearRot, mData.nearTime); } public void SetNormal() { Camera.main.transform.DOMove(mData.normalPos, mData.normalTime); Camera.main.transform.DORotate(mData.normalRot, mData.normalTime); } protected override void OnOpen(IUIData uiData = null) { mData = uiData as UICameraSwitchData ?? new UICameraSwitchData(); //if (mData.isNear) //{ // if (Near.isOn == false) // { // Near.isOn = true; // } // else // { // SetNear(); // } //} //else //{ // if (Far.isOn == false) // { // Far.isOn = true; // } // else // { // SetNormal(); // } //} } protected override void OnShow() { } protected override void OnHide() { } protected override void OnClose() { } } }