Ekosistem_Game/Assets/Script/AnimasiTombol.cs

38 lines
1.1 KiB
C#

using UnityEngine;
public class AnimasiTombolMengecil : MonoBehaviour
{
[Header("Pengaturan Animasi")]
// Seberapa cepat tombol bergerak menyusut dan membesar
public float kecepatan = 3f;
// Seberapa banyak tombol menyusut (0.1f berarti menyusut 10%)
public float persentaseMenyusut = 0.1f;
private RectTransform rectTransform;
private Vector3 ukuranAwal;
void Start()
{
// Menyimpan komponen dan ukuran asli tombol saat game dimulai
rectTransform = GetComponent<RectTransform>();
if (rectTransform != null)
{
ukuranAwal = rectTransform.localScale;
}
}
void Update()
{
if (rectTransform == null) return;
// Mathf.Sin menghasilkan gelombang yang halus.
// Rumus ini mengubah gelombangnya menjadi angka 0 sampai 1
float gelombang = (Mathf.Sin(Time.time * kecepatan) + 1f) / 2f;
// Menghitung seberapa besar ukuran tombol sekarang
float pengaliUkuran = 1f - (gelombang * persentaseMenyusut);
// Menerapkan perubahan ke ukuran (Scale) tombol
rectTransform.localScale = ukuranAwal * pengaliUkuran;
}
}