56 lines
1.2 KiB
C#
56 lines
1.2 KiB
C#
using UnityEngine;
|
|
|
|
public class ExplosionsScaleCurves : MonoBehaviour
|
|
{
|
|
public AnimationCurve ScaleCurveX = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
|
|
|
|
public AnimationCurve ScaleCurveY = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
|
|
|
|
public AnimationCurve ScaleCurveZ = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
|
|
|
|
public Vector3 GraphTimeMultiplier = Vector3.one;
|
|
|
|
public Vector3 GraphScaleMultiplier = Vector3.one;
|
|
|
|
private float startTime;
|
|
|
|
private Transform t;
|
|
|
|
private float evalX;
|
|
|
|
private float evalY;
|
|
|
|
private float evalZ;
|
|
|
|
private void Awake()
|
|
{
|
|
t = base.transform;
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
startTime = Time.time;
|
|
evalX = 0f;
|
|
evalY = 0f;
|
|
evalZ = 0f;
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
float num = Time.time - startTime;
|
|
if (num <= GraphTimeMultiplier.x)
|
|
{
|
|
evalX = ScaleCurveX.Evaluate(num / GraphTimeMultiplier.x) * GraphScaleMultiplier.x;
|
|
}
|
|
if (num <= GraphTimeMultiplier.y)
|
|
{
|
|
evalY = ScaleCurveY.Evaluate(num / GraphTimeMultiplier.y) * GraphScaleMultiplier.y;
|
|
}
|
|
if (num <= GraphTimeMultiplier.z)
|
|
{
|
|
evalZ = ScaleCurveZ.Evaluate(num / GraphTimeMultiplier.z) * GraphScaleMultiplier.z;
|
|
}
|
|
t.localScale = new Vector3(evalX, evalY, evalZ);
|
|
}
|
|
}
|