using SHADE; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SHADE_Scripting.UI { public class SingleScaleBounce : Script { [NonSerialized] TweenThread thread; [NonSerialized] Vector3 defaultScale; public float durationUp = 0.15f; public float durationDown = 0.3f; public float scaleSize = 1.2f; [NonSerialized] private bool scaleUp = false; private Transform trans; protected override void awake() { trans = GetComponent(); if (trans != null) { defaultScale = trans.LocalScale; } } protected override void start() { thread = TweenManager.CreateTweenThread(0.0f, 1.0f, 1.0f, EASING_METHOD.EASE_IN_SINE); } protected override void update() { if (scaleUp) { if (thread != null && thread.IsCompleted()) { scaleUp = false; thread.duration = durationDown; thread.ResetInvert(); } } if (trans && thread != null) trans.LocalScale = defaultScale * thread.GetValue(); } public void ScaleBounceOnce() { scaleUp = true; if (thread != null) { thread.duration = durationUp; thread.Reset(1.0f, scaleSize); } else { Debug.Log("Single Scale Bounce: thread is null"); } } } }