Hello, Unity community!
How can I make an object change its emission to green when I hover my mouse over it, and ensure that it stays selected (green) even after I click it? Does anyone know how to achieve this?
public class Interaction : MonoBehaviour
{
[SerializeField] private Renderer rend;
private Color color = new Color32(31, 103, 39, 255);
private List<Material> materials;
bool isHighlighted;
private void Awake()
{
materials = new List<Material>();
materials.AddRange(rend.materials);
}
public void ToggleHighlight(bool value)
{
if (value)
{
foreach (var mat in materials)
{
mat.EnableKeyword("_EMISSION");
mat.SetColor("_EmissionColor", color * 1);
}
}
else
{
foreach (var mat in materials)
{
mat.DisableKeyword("_EMISSION");
}
}
}
private void OnMouseEnter()
{
ToggleHighlight(true);
}
private void OnMouseExit()
{
ToggleHighlight(false);
}
}
Thank you!