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

58 lines
1.5 KiB
C#

using UnityEngine;
using System.Collections.Generic;
public class OscilloscopeController : MonoBehaviour
{
public List<Transform> targetPoints;
public float maxDistance = 5f;
public WaveformVisualizer waveformVisualizer;
private Transform closestTarget;
private float clarity;
void Update()
{
DetectClosestTarget();
waveformVisualizer.clarity = clarity;
if (clarity > 0 && closestTarget != null)
{
var targetData = closestTarget.GetComponent<TargetPointData>();
if (targetData != null)
{
// 设置波形类型
waveformVisualizer.waveformType = targetData.waveformType;
if (Input.GetKeyDown(KeyCode.Space)) // Example input for triggering shock
{
waveformVisualizer.TriggerShock(targetData.isCorrect);
}
}
}
}
void DetectClosestTarget()
{
float minDistance = float.MaxValue;
closestTarget = null;
clarity = 0f;
foreach (var target in targetPoints)
{
float distance = Vector2.Distance(transform.position, target.position);
if (distance <= maxDistance && distance < minDistance)
{
minDistance = distance;
closestTarget = target;
}
}
if (closestTarget != null)
{
clarity = Mathf.Clamp01(1 - (minDistance / maxDistance));
}
}
}