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(); _renderMaterial = GetComponent().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}"); } } }