using UnityEngine; public class CarConditionGenerator : MonoBehaviour { [Header("Настройки спавна")] [Range(0f, 1f)] [SerializeField] private float rustProbability = 0.7f; // Шанс появления ржавчины [SerializeField] private float maxRustAmount = 0.85f; [SerializeField] private Color baseCarColor = Color.gray; private void Start() { GenerateCondition(); } [ContextMenu("Сгенерировать состояние")] public void GenerateCondition() { CarPart[] allParts = GetComponentsInChildren(true); foreach (var part in allParts) { CarPartVisuals visuals = part.GetComponent(); if (visuals == null) visuals = part.gameObject.AddComponent(); // 1. Устанавливаем базовый цвет кузова visuals.SetPaintColor(baseCarColor); // 2. Если деталь пластиковая (бампер) — пропускаем ржавчину if (part.Data != null && !part.Data.canRust) { visuals.SetRust(0f); continue; } // 3. Рандомизируем ржавчину для металла if (Random.value < rustProbability) { float randomRust = Random.Range(0.2f, maxRustAmount); visuals.SetRust(randomRust); } else { visuals.SetRust(0f); } } } }