From 766cdff5ffa72b65d7f106658d1603f47739b2ba Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Fri, 27 Oct 2023 11:05:14 +0800 Subject: + init --- GameCode/CurveAnimationInstance.cs | 73 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 GameCode/CurveAnimationInstance.cs (limited to 'GameCode/CurveAnimationInstance.cs') diff --git a/GameCode/CurveAnimationInstance.cs b/GameCode/CurveAnimationInstance.cs new file mode 100644 index 0000000..6d5ed2f --- /dev/null +++ b/GameCode/CurveAnimationInstance.cs @@ -0,0 +1,73 @@ +using System; +using Sirenix.OdinInspector; +using UnityEngine; +using UnityEngine.Events; + +[Serializable] +public class CurveAnimationInstance +{ + [FoldoutGroup("$animationUse", 0)] + public CurveAnimationType animationType; + + [FoldoutGroup("$animationUse", 0)] + public CurveAnimationUse animationUse; + + [ShowIf("animationUse", CurveAnimationUse.In, true)] + [FoldoutGroup("$animationUse", 0)] + public AnimationCurve inCurve = AnimationCurve.Linear(0f, 0f, 1f, 1f); + + [ShowIf("animationUse", CurveAnimationUse.Out, true)] + [FoldoutGroup("$animationUse", 0)] + public AnimationCurve outCurve = AnimationCurve.Linear(0f, 1f, 1f, 0f); + + [ShowIf("animationUse", CurveAnimationUse.Boop, true)] + [FoldoutGroup("$animationUse", 0)] + public AnimationCurve boopCurve = AnimationCurve.Linear(0f, 1f, 1f, 1f); + + [HideIf("animationType", CurveAnimationType.Scale, true)] + [FoldoutGroup("$animationUse", 0)] + public Vector3 animDirection; + + [FoldoutGroup("$animationUse/Settings", 0)] + public bool loop; + + [FoldoutGroup("$animationUse/Settings", 0)] + public bool playOnAwake; + + [FoldoutGroup("$animationUse/Settings", 0)] + public float speed = 1f; + + [FoldoutGroup("$animationUse/Settings", 0)] + public float multiplier = 1f; + + [FoldoutGroup("$animationUse/Events", 0)] + public UnityEvent statEvent; + + [FoldoutGroup("$animationUse/Events", 0)] + public UnityEvent endEvent; + + [FoldoutGroup("$animationUse/Events", 0)] + public UnityEvent delayedEvent; + + [FoldoutGroup("$animationUse/Events", 0)] + public float delay; + + [FoldoutGroup("$animationUse/Debug", 0, Order = 0, Expanded = false)] + public bool isPlaying; + + [HideInInspector] + public Coroutine animation; + + public AnimationCurve Curve() + { + if (animationUse == CurveAnimationUse.Boop) + { + return boopCurve; + } + if (animationUse != 0) + { + return outCurve; + } + return inCurve; + } +} -- cgit v1.1-26-g67d0