2024-12-16 15:45:19 +08:00
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.UI;
|
|
|
|
|
using QFramework;
|
|
|
|
|
using DG.Tweening;
|
2024-12-23 11:30:18 +08:00
|
|
|
using System.Collections.Generic;
|
2024-12-16 15:45:19 +08:00
|
|
|
|
|
|
|
|
namespace QFramework.Example
|
|
|
|
|
{
|
|
|
|
|
public class UICameraSwitchData : UIPanelData
|
|
|
|
|
{
|
2024-12-23 11:30:18 +08:00
|
|
|
public string nearDevice;
|
|
|
|
|
public string normalDevice;
|
2024-12-16 15:45:19 +08:00
|
|
|
public Vector3 nearPos;
|
|
|
|
|
public Vector3 nearRot;
|
|
|
|
|
public Vector3 normalPos;
|
|
|
|
|
public Vector3 normalRot;
|
2024-12-23 11:30:18 +08:00
|
|
|
public float nearTime;
|
|
|
|
|
public float normalTime;
|
2024-12-16 15:45:19 +08:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
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)
|
|
|
|
|
{
|
2024-12-23 11:30:18 +08:00
|
|
|
SetNear();
|
2024-12-16 15:45:19 +08:00
|
|
|
}
|
2024-12-16 15:58:37 +08:00
|
|
|
Near.transform.Find("Bg/Line").gameObject.SetActive(isOn);
|
2024-12-16 15:45:19 +08:00
|
|
|
});
|
|
|
|
|
Far.onValueChanged.AddListener(isOn =>
|
2024-12-23 11:30:18 +08:00
|
|
|
{
|
2024-12-16 15:45:19 +08:00
|
|
|
if (isOn)
|
|
|
|
|
{
|
2024-12-23 11:30:18 +08:00
|
|
|
SetNormal();
|
2024-12-16 15:45:19 +08:00
|
|
|
}
|
2024-12-16 15:58:37 +08:00
|
|
|
Far.transform.Find("Bg/Line").gameObject.SetActive(isOn);
|
2024-12-16 15:45:19 +08:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-23 11:30:18 +08:00
|
|
|
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);
|
|
|
|
|
}
|
2024-12-16 15:45:19 +08:00
|
|
|
protected override void OnOpen(IUIData uiData = null)
|
|
|
|
|
{
|
|
|
|
|
mData = uiData as UICameraSwitchData ?? new UICameraSwitchData();
|
2024-12-23 11:30:18 +08:00
|
|
|
|
2024-12-31 16:31:32 +08:00
|
|
|
if (Near.isOn)
|
2024-12-31 16:24:35 +08:00
|
|
|
{
|
2024-12-31 16:31:32 +08:00
|
|
|
SetNear();
|
|
|
|
|
}
|
|
|
|
|
if (Far.isOn)
|
|
|
|
|
{
|
|
|
|
|
SetNormal();
|
2024-12-31 16:24:35 +08:00
|
|
|
}
|
2024-12-16 15:45:19 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnShow()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnHide()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void OnClose()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|