83 lines
1.8 KiB
C#
83 lines
1.8 KiB
C#
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<Highlighter>();
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |