using UnityEngine;
using UnityEditor;

public class ColliderFitter : Editor
{
    // Насколько увеличиваем? (0.02f = 2 сантиметра во все стороны)
    private const float Padding = 0.02f; 

    [MenuItem("Tools/Увеличить коллайдеры (На кропаль)")]
    public static void InflateColliders()
    {
        int count = 0;

        // Берем все объекты, которые вы выделили мышкой
        foreach (GameObject obj in Selection.gameObjects)
        {
            // Проверяем, что это файл в папке (префаб), а не объект на сцене
            string assetPath = AssetDatabase.GetAssetPath(obj);
            if (string.IsNullOrEmpty(assetPath)) continue;

            // Безопасный режим редактирования префабов (в Unity 6 это стандарт)
            using (var editingScope = new PrefabUtility.EditPrefabContentsScope(assetPath))
            {
                GameObject prefabRoot = editingScope.prefabContentsRoot;
                
                // Ищем все BoxCollider'ы на префабе (даже в дочерних объектах)
                BoxCollider[] colliders = prefabRoot.GetComponentsInChildren<BoxCollider>();
                
                bool modified = false;
                foreach (BoxCollider box in colliders)
                {
                    // Увеличиваем размер
                    box.size += new Vector3(Padding, Padding, Padding);
                    modified = true;
                }

                if (modified)
                {
                    count++;
                }
            } 
            // При выходе из блока using Unity сама сохраняет префаб
        }

        Debug.Log($"<color=cyan>Готово!</color> Увеличены коллайдеры на {count} префабах.");
    }
}