38 lines
1.1 KiB
C#
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;
|
|
}
|
|
} |