Files
Hasebe/Assets/Code/D/Cleaning/CleanableAsset.cs
T
2026-09-20 15:26:03 +03:00

35 lines
1.0 KiB
C#

using UnityEngine;
namespace Code.D.Cleaning
{
public class CleanableAsset : Cleanable
{
private Collider _dirtyCollider;
private static readonly int MaskMap = Shader.PropertyToID("_Mask");
[SerializeField] private float cleanCountPerFrame;
private Material _renderMaterial;
private void Awake()
{
_dirtyCollider = GetComponent<Collider>();
_renderMaterial = GetComponent<MeshRenderer>().material;
}
private void AssumedAsCleaned()
{
Cleaned.Value = true;
_dirtyCollider.enabled = false;
_renderMaterial.SetTexture(MaskMap, Texture2D.blackTexture);
}
public void Clean()
{
CleanProgress.Value += cleanCountPerFrame;
if(CleanProgress.CurrentValue >= 100)
AssumedAsCleaned();
Debug.Log($"{name} прогресс очистки: {CleanProgress.CurrentValue}");
}
}
}