Files
aibis-dream/Assets/Scripts/FixSystem/Scope/OscilloscopeController.cs
T

73 lines
2.1 KiB
C#

using UnityEngine;
using System.Collections.Generic;
using RainbowArt.CleanFlatUI;
public class OscilloscopeController : MonoBehaviour
{
public WaveformVisualizer waveformVisualizer;
public SliderCircular phaseSlider;
private float phaseShiftMax = Mathf.PI * 3f;
private Plug plug;
void Start()
{
plug = FindObjectOfType<Plug>();
}
void Update()
{
if (plug != null)
{
var currentSocket = plug.currentSocket;
if (currentSocket != null && currentSocket.targetData != null)
{
var targetData = currentSocket.targetData;
if (targetData != null)
{
waveformVisualizer.waveformType = targetData.waveformType;
waveformVisualizer.clarity = 1;
float phaseShift = 0f;
if (phaseSlider != null)
{
float sliderPhase = (phaseSlider.Value / 10f) * phaseShiftMax;
phaseShift = sliderPhase + targetData.initialRandomPhase;
}
if(phaseSlider.Value>0)
{
waveformVisualizer.SetPhaseShift(phaseShift);
}
else
{
waveformVisualizer.SetPhaseShift(0);
}
waveformVisualizer.gameObject.SetActive(true);
if (!targetData.isCorrect)
{
waveformVisualizer.SetError(targetData);
}
}
}
else
{
ResetVisualizer();
}
}
}
void ResetVisualizer()
{
waveformVisualizer.waveformType = WaveformType.Noise;
waveformVisualizer.clarity = 0;
waveformVisualizer.ResetWaveform();
waveformVisualizer.gameObject.SetActive(true);
phaseSlider.Value=0;
waveformVisualizer.SetPhaseShift(0);
}
}