ProjectDDD/Assets/Plugins/AllIn1VfxToolkit/Demo & Assets/Demo/Scripts/AllIn1DemoScaleTween.cs

49 lines
1.3 KiB (Stored with Git LFS)
C#

using UnityEngine;
namespace AllIn1VfxToolkit.Demo.Scripts
{
public class AllIn1DemoScaleTween : MonoBehaviour
{
[SerializeField] private float maxTweenScale = 2.0f;
[SerializeField] private float minTweenScale = 0.8f;
[SerializeField] private float tweenSpeed = 15f;
private bool isTweening = false;
private float currentScale = 1f;
private Vector3 scaleToApply = Vector3.one;
private void Update()
{
if(!isTweening) return;
currentScale = Mathf.Lerp(currentScale, 1f, Time.unscaledDeltaTime * tweenSpeed);
UpdateScaleToApply();
ApplyScale();
if(Mathf.Abs(currentScale - 1f) < 0.02f) isTweening = false;
}
private void UpdateScaleToApply()
{
scaleToApply.x = currentScale;
scaleToApply.y = currentScale;
}
private void ApplyScale()
{
transform.localScale = scaleToApply;
}
public void ScaleUpTween()
{
isTweening = true;
currentScale = maxTweenScale;
UpdateScaleToApply();
}
public void ScaleDownTween()
{
isTweening = true;
currentScale = minTweenScale;
UpdateScaleToApply();
}
}
}