using ChivaXR;
using Sirenix.OdinInspector;
using System;
using System.Collections.Generic;
using UnityEngine;
///
/// 步骤范围不能有重叠,如1-10,10-20。这样是不对的。
/// 应该是1-10,11-20.
///
public class ProcessEvent_CameraQuickMove : MonoBehaviour
{
[ListDrawerSettings]
public List DataList;
int lastStepID = 1;
void Awake()
{
ProcessManagement.Instance.processElementActiveEvent += ElementActiveEvent;
}
public void ElementActiveEvent(ProcessElement processElement)
{
int StepID = ProcessManagement.Instance.currentStepID;
if (DataList.Count > 0)
{
int maxStep = 0;
foreach(CameraQuickMoveItem item in DataList)
{
if (maxStep > item.MinStepID)
continue;
if ((lastStepID > item.MaxStepID || lastStepID < item.MinStepID)&&
(StepID <= item.MaxStepID && StepID >= item.MinStepID))
{
Camera.main.GetComponent().SetCameraState(item.TargetaPosition.position, item.TargetaPosition.eulerAngles);
maxStep = item.MaxStepID;
break;
}
}
}
lastStepID = StepID;
}
[Serializable]
public class CameraQuickMoveItem
{
[LabelText("目标坐标")]
public Transform TargetaPosition;
[LabelText("最小范围")]
public int MinStepID = 0;
[LabelText("最大范围"),MinValue("MinStepID")]
public int MaxStepID = 0;
}
}