using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
namespace BNG {
///
/// This is an example of how to highlight an object on hover / activate. This is used in the Demo scene in conjunction with the "PointerEvents" component.
///
public class DemoCube : MonoBehaviour {
public Material HighlightMaterial;
public Material ActiveMaterial;
// Currently activating the object?
bool active = false;
// Currently hovering over the object?
bool hovering = false;
Material initialMaterial;
MeshRenderer render;
void Start() {
render = GetComponent();
initialMaterial = render.sharedMaterial;
}
// Holding down activate
public void SetActive(PointerEventData eventData) {
active = true;
UpdateMaterial();
}
// No longer ohlding down activate
public void SetInactive(PointerEventData eventData) {
active = false;
UpdateMaterial();
}
// Hovering over our object
public void SetHovering(PointerEventData eventData) {
hovering = true;
UpdateMaterial();
}
// No longer hovering over our object
public void ResetHovering(PointerEventData eventData) {
hovering = false;
active = false;
UpdateMaterial();
}
public void UpdateMaterial() {
if (active) {
render.sharedMaterial = ActiveMaterial;
}
else if (hovering) {
render.sharedMaterial = HighlightMaterial;
}
else {
render.sharedMaterial = initialMaterial;
}
}
}
}