using System; using Sirenix.OdinInspector; using SLSUtilities.Feedback; using UnityEngine; namespace Cielonos.MainGame.Effects.Feedback { /// /// 摄像机距离(Distance)反馈动作,通过 CameraDistanceShakeEvent 触发 CameraDistanceShaker。 /// [Serializable] [FeedbackActionColor(0.2f, 0.8f, 0.9f)] public class CameraDistanceAction : CinemachineActionBase { public override string DisplayName => "Camera Distance"; [TitleGroup("距离设置")] [LabelText("距离曲线")] public FloatCurveChannel distanceCurve = FloatCurveChannel.CreateDefault(); protected override void TriggerEvent(FeedbackContext context) { CameraDistanceShakeEvent.Trigger(context, distanceCurve); } protected override void StopEvent(FeedbackContext context) { CameraDistanceShakeEvent.Trigger(context, distanceCurve, true); } public override bool Validate(out string error) { error = null; return true; } } }