46 lines
1.5 KiB
C#
46 lines
1.5 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class ItemProperty : MonoBehaviour
|
|
{
|
|
public DataSayur dataItem; // Slot untuk naruh Data_Brokoli, dll
|
|
|
|
[Header("Pengaturan Gerak")]
|
|
public float fallSpeed = 300f; // Kecepatan jatuh (diisi otomatis oleh Spawner)
|
|
public float rotationSpeed = 100f; // Kecepatan putar
|
|
|
|
public void Inisialisasi()
|
|
{
|
|
if (dataItem != null)
|
|
{
|
|
// 1. Ganti gambar secara otomatis sesuai data
|
|
GetComponent<Image>().sprite = dataItem.gambarSayurVisual;
|
|
|
|
// 2. Ganti Tag secara otomatis berdasarkan data
|
|
gameObject.tag = dataItem.apakahSayur ? "Sayur" : "JunkFood";
|
|
}
|
|
}
|
|
|
|
void Update()
|
|
{
|
|
// --- 1. LOGIKA JATUH (PENTING) ---
|
|
// Karena ini UI, kita pakai RectTransform agar posisinya akurat di Canvas
|
|
RectTransform rt = GetComponent<RectTransform>();
|
|
if (rt != null)
|
|
{
|
|
// Bergerak ke bawah: Posisi Y dikurangi terus menerus
|
|
rt.anchoredPosition += Vector2.down * fallSpeed * Time.deltaTime;
|
|
}
|
|
|
|
// --- 2. LOGIKA ROTASI ---
|
|
// Sayur berputar pelan biar estetik
|
|
transform.Rotate(0, 0, rotationSpeed * Time.deltaTime);
|
|
|
|
// --- 3. PENGHANCUR OTOMATIS ---
|
|
// Jika sayur sudah jatuh lewat bawah layar (misal Y < -700), hapus biar gak berat
|
|
if (rt != null && rt.anchoredPosition.y < -700f)
|
|
{
|
|
Destroy(gameObject);
|
|
}
|
|
}
|
|
} |