MIF_E31230838/Assets/Scripts/Animation/FloatingObject.cs

29 lines
847 B
C#

using UnityEngine;
public class FloatingObject : MonoBehaviour
{
public float speed = 2f; // Kecepatan ngambang
public float height = 10f; // Seberapa jauh naik-turunnya (Pixel)
// Biar gak barengan geraknya, kita kasih random start
float randomOffset;
Vector2 startPos;
RectTransform rectTrans;
void Start()
{
rectTrans = GetComponent<RectTransform>();
startPos = rectTrans.anchoredPosition;
// Acak waktu mulainya biar organik
randomOffset = Random.Range(0f, 5f);
}
void Update()
{
// Rumus Sinus: Selalu menghasilkan angka antara -1 sampai 1
float newY = Mathf.Sin((Time.time + randomOffset) * speed) * height;
// Update posisi UI
rectTrans.anchoredPosition = new Vector2(startPos.x, startPos.y + newY);
}
}