using System; using UnityEngine; using HighlightingSystem; namespace HighlightingSystem.Demo { public class HighlighterInteractionDemo : MonoBehaviour { // Hover color public Color hoverColor = Color.red; // Button names (for Input Manager) static private readonly string buttonFire1 = "Fire1"; static private readonly string buttonFire2 = "Fire2"; // void Update() { ProcessControls(); } // RaycastController should trigger this method via onHover event public void OnHover(RaycastHit hitInfo) { Transform tr = hitInfo.collider.transform; if (tr == null) { return; } var highlighter = tr.GetComponentInParent(); if (highlighter == null) { return; } // Hover highlighter.Hover(hoverColor); // Switch tween if (Input.GetButtonDown(buttonFire1)) { highlighter.tween = !highlighter.tween; } // Toggle overlay if (Input.GetButtonUp(buttonFire2)) { highlighter.overlay = !highlighter.overlay; } } // private void ProcessControls() { // Fade in/out constant highlighting //if (Input.GetKeyDown(KeyCode.Alpha1)) { TriggerAll(0); } //// Turn on/off constant highlighting //if (Input.GetKeyDown(KeyCode.Alpha2)) { TriggerAll(1); } //// Turn off all highlighting modes //if (Input.GetKeyDown(KeyCode.Alpha3)) { TriggerAll(2); } } // private void TriggerAll(int action) { var highlighters = HighlighterCore.highlighters; for (int i = 0; i < highlighters.Count; i++) { var highlighter = highlighters[i] as Highlighter; if (highlighter != null) { switch (action) { case 0: highlighter.ConstantSwitch(); break; case 1: highlighter.ConstantSwitchImmediate(); break; case 2: highlighter.Off(); break; } } } } } }