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(); bool modified = false; foreach (BoxCollider box in colliders) { // Увеличиваем размер box.size += new Vector3(Padding, Padding, Padding); modified = true; } if (modified) { count++; } } // При выходе из блока using Unity сама сохраняет префаб } Debug.Log($"Готово! Увеличены коллайдеры на {count} префабах."); } }