2025-01-30 23:38:06 +01:00

50 lines
1.9 KiB
C#

using UnityEngine;
using UnityEngine.UI;
namespace Michsky.MUIP
{
public class Ripple : MonoBehaviour
{
public bool unscaledTime = false;
public float speed;
public float maxSize;
public Color startColor;
public Color transitionColor;
Image colorImg;
void Start()
{
transform.localScale = new Vector3(0f, 0f, 0f);
colorImg = GetComponent<Image>();
colorImg.raycastTarget = false;
colorImg.color = new Color(startColor.r, startColor.g, startColor.b, startColor.a);
}
void Update()
{
if (unscaledTime == false)
{
transform.localScale = Vector3.Lerp(transform.localScale, new Vector3(maxSize, maxSize, maxSize), Time.deltaTime * speed);
colorImg.color = Color.Lerp(colorImg.color, new Color(transitionColor.r, transitionColor.g, transitionColor.b, transitionColor.a), Time.deltaTime * speed);
if (transform.localScale.x >= maxSize * 0.998)
{
if (transform.parent.childCount == 1) { transform.parent.gameObject.SetActive(false); }
Destroy(gameObject);
}
}
else
{
transform.localScale = Vector3.Lerp(transform.localScale, new Vector3(maxSize, maxSize, maxSize), Time.unscaledDeltaTime * speed);
colorImg.color = Color.Lerp(colorImg.color, new Color(transitionColor.r, transitionColor.g, transitionColor.b, transitionColor.a), Time.unscaledDeltaTime * speed);
if (transform.localScale.x >= maxSize * 0.998)
{
if (transform.parent.childCount == 1) { transform.parent.gameObject.SetActive(false); }
Destroy(gameObject);
}
}
}
}
}