66 lines
1.7 KiB
C#
66 lines
1.7 KiB
C#
using System.Linq;
|
|
using UnityEngine;
|
|
|
|
public class StatusLED : ActionAnimator
|
|
{
|
|
public MeshRenderer LED_R;
|
|
public MeshRenderer LED_O;
|
|
public MeshRenderer LED_G;
|
|
|
|
public Material mat_LED_R_On;
|
|
public Material mat_LED_R_Off;
|
|
public Material mat_LED_O_On;
|
|
public Material mat_LED_O_Off;
|
|
public Material mat_LED_G_On;
|
|
public Material mat_LED_G_Off;
|
|
|
|
public override void AnimationEnd()
|
|
{
|
|
SetColor("End");
|
|
}
|
|
|
|
public override void AnimationStart()
|
|
{
|
|
SetColor("Start");
|
|
}
|
|
|
|
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
|
void Start()
|
|
{
|
|
var leds = GetComponentsInChildren<MeshRenderer>();
|
|
LED_R = leds.First(x => x.name.Equals(nameof(LED_R)));
|
|
LED_O = leds.First(x => x.name.Equals(nameof(LED_O)));
|
|
LED_G = leds.First(x => x.name.Equals(nameof(LED_G)));
|
|
|
|
LED_R.sharedMaterial = mat_LED_R_Off;
|
|
LED_G.sharedMaterial = mat_LED_G_Off;
|
|
LED_O.sharedMaterial = mat_LED_O_Off;
|
|
}
|
|
|
|
private void SetColor(string progStatus, string status = null)
|
|
{
|
|
LED_R.sharedMaterial = mat_LED_R_Off;
|
|
LED_G.sharedMaterial = mat_LED_G_Off;
|
|
LED_O.sharedMaterial = mat_LED_O_Off;
|
|
|
|
switch (progStatus)
|
|
{
|
|
case "Start":
|
|
LED_G.sharedMaterial = mat_LED_G_On;
|
|
break;
|
|
case "End":
|
|
LED_O.sharedMaterial = mat_LED_O_On;
|
|
break;
|
|
default:
|
|
LED_O.sharedMaterial = mat_LED_O_On;
|
|
break;
|
|
}
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
|
|
}
|
|
}
|