43 lines
1.2 KiB
C#
43 lines
1.2 KiB
C#
using System;
|
|
using Sirenix.OdinInspector;
|
|
using SLSUtilities.Feedback;
|
|
using UnityEngine;
|
|
|
|
namespace Cielonos.MainGame.Effects.Feedback
|
|
{
|
|
/// <summary>
|
|
/// 摄像机视野角(FOV)反馈动作,通过 CameraFovShakeEvent 触发 CameraFovShaker。
|
|
/// </summary>
|
|
[Serializable]
|
|
[FeedbackActionColor(0.2f, 0.8f, 0.9f)]
|
|
public class CameraFieldOfViewAction : CinemachineActionBase
|
|
{
|
|
public override string DisplayName => "Camera Field of View";
|
|
|
|
[TitleGroup("FOV设置")]
|
|
[LabelText("FOV曲线")]
|
|
public FloatCurveChannel fovCurve = FloatCurveChannel.CreateDefault(remapMax: 10f);
|
|
|
|
protected override void TriggerEvent(FeedbackContext context)
|
|
{
|
|
CameraFovShakeEvent.Trigger(context, fovCurve);
|
|
}
|
|
|
|
protected override void StopEvent(FeedbackContext context)
|
|
{
|
|
CameraFovShakeEvent.Trigger(context, fovCurve, true);
|
|
}
|
|
|
|
public override bool Validate(out string error)
|
|
{
|
|
if (!fovCurve.active)
|
|
{
|
|
error = "FOV curve is not enabled.";
|
|
return false;
|
|
}
|
|
error = null;
|
|
return true;
|
|
}
|
|
}
|
|
}
|