Perekyp/Assets/Scripts/Car/Visuals/CarRestorationTool.cs

43 lines
1.3 KiB
C#

using UnityEngine;
public class CarRestorationTool : MonoBehaviour
{
[Header("Параметры")]
[SerializeField] private float cleanSpeed = 0.25f; // Сколько ржавчины снимается в секунду
[SerializeField] private float range = 2.5f;
[SerializeField] private LayerMask interactableLayer;
private Camera playerCamera;
private void Awake()
{
playerCamera = Camera.main;
}
private void Update()
{
// Зажата ЛКМ — процесс чистки
if (Input.GetMouseButton(0))
{
TryCleanPart();
}
}
private void TryCleanPart()
{
Ray ray = new Ray(playerCamera.transform.position, playerCamera.transform.forward);
if (Physics.Raycast(ray, out RaycastHit hit, range, interactableLayer))
{
CarPartVisuals visuals = hit.collider.GetComponentInParent<CarPartVisuals>();
if (visuals != null && visuals.CurrentRust > 0f)
{
float newRust = visuals.CurrentRust - (cleanSpeed * Time.deltaTime);
visuals.SetRust(newRust);
// Здесь можно запустить систему частиц искр (Particles) и звук шлифмашинки
}
}
}
}