For 3D objects, use this script:
using UnityEngine;
using System.Collections.Generic;
public class HoverReveal : MonoBehaviour
{
// List untuk menampung GameObject yang ingin dimunculkan
public List<GameObject> visiblesOnHover;
void Start()
{
// Secara default (saat game mulai), sembunyikan semua object di list
SetVisibility(false);
}
// Dijalankan saat mouse menyentuh area collider object utama
void OnMouseEnter()
{
SetVisibility(true);
}
// Dijalankan saat mouse keluar dari area collider object utama
void OnMouseExit()
{
SetVisibility(false);
}
// Fungsi pembantu untuk mengatur aktif/tidaknya object
void SetVisibility(bool state)
{
foreach (GameObject obj in visiblesOnHover)
{
if (obj != null) // Cek biar tidak error kalau ada slot kosong
{
obj.SetActive(state);
}
}
}
}
For UI 2D objects, use this instead:
using UnityEngine;
using UnityEngine.EventSystems;
using System.Collections.Generic;
public class UIHoverReveal : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
// List untuk menampung GameObject yang ingin dimunculkan
public List<GameObject> visiblesOnHover;
void Start()
{
// Secara default (saat game mulai), sembunyikan semua object di list
SetVisibility(false);
}
// Dijalankan saat mouse menyentuh area UI element
public void OnPointerEnter(PointerEventData eventData)
{
SetVisibility(true);
}
// Dijalankan saat mouse keluar dari area UI element
public void OnPointerExit(PointerEventData eventData)
{
SetVisibility(false);
}
// Fungsi pembantu untuk mengatur aktif/tidaknya object
void SetVisibility(bool state)
{
foreach (GameObject obj in visiblesOnHover)
{
if (obj != null) // Cek biar tidak error kalau ada slot kosong
{
obj.SetActive(state);
}
}
}
}