using System; using UnityEngine; [Serializable] public class RewardFlyAnimationParams { public string Remark = "通用"; public AnimationCurve CurveX; public AnimationCurve CurveY; public AnimationCurve CurveScale; public float ShowDuration = 1f; public float FlyDuration = 0.4f; // public float closeAnimationDurationStash = 0.33f; public float CloseDuration = 0.5f; public float SpreadHalfAngle = 15f; public float SpreadNearRange = 20f; public float SpreadFarRange = 40f; public float SpawnInterval = 0.05f; public float MaxTiltAngle = 90f; public float MultipleIconScaleModifier = 0.75f; public bool IsPlayOpen; public bool IsPlayClose; public string[] AudioSingle; public string[] AudioBatched; public string[] FxSingle; public string[] FxBatched; public AnimationCurve CurveShow; public float alphaShow; public float scaleShow; public string GetAudioUrl(int idx, bool isBatched) { if (isBatched) { if (AudioBatched != null && idx < AudioBatched.Length) return AudioBatched[idx]; else { Debug.LogError($"[RewardFlyBatched] Audio param error: index{idx} out of range."); return ""; } } else { if (AudioSingle != null && idx < AudioSingle.Length) return AudioSingle[idx]; else { Debug.LogError($"[RewardFlySingle] Audio param error: index{idx} out of range."); return ""; } } } }