using UnityEngine; public class MataMelirik : MonoBehaviour { public Transform mataKiri; public Transform mataKanan; [Header("Pengaturan")] public float radiusLirik = 20f; // Seberapa jauh bola mata bisa geser (dalam pixel/unit) public float kecepatanLirik = 5f; // Kelenturan gerakan mata private Vector3 posisiAwalKiri; private Vector3 posisiAwalKanan; void Start() { // Simpan posisi tengah mata biar tahu jalan pulang posisiAwalKiri = mataKiri.localPosition; posisiAwalKanan = mataKanan.localPosition; } void Update() { // 1. Cari objek terdekat yang jatuh (bisa Sayur atau JunkFood) GameObject target = CariObjekTerdekat(); if (target != null) { // 2. Hitung arah dari mata ke sayur LirikKe(mataKiri, posisiAwalKiri, target.transform.position); LirikKe(mataKanan, posisiAwalKanan, target.transform.position); } else { // 3. Kalau nggak ada yang jatuh, mata balik ke tengah (tampang polos) mataKiri.localPosition = Vector3.Lerp(mataKiri.localPosition, posisiAwalKiri, kecepatanLirik * Time.deltaTime); mataKanan.localPosition = Vector3.Lerp(mataKanan.localPosition, posisiAwalKanan, kecepatanLirik * Time.deltaTime); } } void LirikKe(Transform mata, Vector3 posisiAsal, Vector3 targetPos) { // Hitung arah ke target Vector3 arah = targetPos - mata.position; // Batasi jarak geser mata agar tidak keluar dari kelopak mata Vector3 lirikPos = arah.normalized * radiusLirik; // Gabungkan posisi awal dengan pergeseran (offset) Vector3 hasilPos = posisiAsal + lirikPos; // Gerakkan mata secara halus mata.localPosition = Vector3.Lerp(mata.localPosition, hasilPos, kecepatanLirik * Time.deltaTime); } GameObject CariObjekTerdekat() { // Gabungkan pengecekan Sayur dan JunkFood GameObject[] sayurs = GameObject.FindGameObjectsWithTag("Sayur"); GameObject[] junks = GameObject.FindGameObjectsWithTag("JunkFood"); GameObject terdekat = null; float jarakTerpendek = Mathf.Infinity; Vector3 posisiDino = transform.position; // Cek Sayur foreach (GameObject s in sayurs) { float jarak = Vector3.Distance(posisiDino, s.transform.position); if (jarak < jarakTerpendek) { jarakTerpendek = jarak; terdekat = s; } } // Cek JunkFood foreach (GameObject j in junks) { float jarak = Vector3.Distance(posisiDino, j.transform.position); if (jarak < jarakTerpendek) { jarakTerpendek = jarak; terdekat = j; } } return terdekat; } }