using System.Collections.Generic; using UnityEngine; public class ColliderSetter : BaseBehaviour { #if UNITY_EDITOR public GameObject[] roots; public MeshRenderer[] meshRenderers; void Start() { } void Update() { } [ContextMenu("Init")] public void Init() { var tempList = new List(); foreach (var item in roots) { var meshRenderers = item.GetComponentsInChildren(true); foreach (var x in meshRenderers) { tempList.Add(x); } } this.meshRenderers = tempList.ToArray(); foreach (var item in meshRenderers) { if (item.gameObject.GetComponent() == null) { item.gameObject.AddComponent(); } } } [ContextMenu("Remove")] public void Remove() { foreach (var item in meshRenderers) { if (item.gameObject.TryGetComponent(out var meshCollider)) { Destroy(meshCollider); } } } #endif }