SHADE_Y3/Assets/Scripts/UI/SC_SingleScaleBounce.cs

80 lines
1.5 KiB
C#

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<Transform>();
if (trans != null)
{
defaultScale = trans.LocalScale;
}
}
protected override void start()
{
thread = TweenManager.CreateTweenThread(0.0f, 1.0f, 1.0f, EASING_METHOD.LINEAR);
}
protected override void update()
{
if (scaleUp)
{
if (thread != null && thread.IsCompleted())
{
scaleUp = false;
thread.duration = durationDown;
thread.method = EASING_METHOD.LINEAR;
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);
thread.method = EASING_METHOD.EASE_OUT_BACK;
}
else
{
Debug.Log("Single Scale Bounce: thread is null");
}
}
}
}