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 = false; } if (Input.GetButtonDown(buttonFire1)) { highlighter.constant = false; } // Toggle overlay //if (Input.GetButtonUp(buttonFire2)) //{ // highlighter.overlay = false; //} } // 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; } } } } } }