1
0
Fork 0
LaboratoryProtection/Assets/PMaker/_EditorTool/Scripts/ColliderSetter.cs

56 lines
1.1 KiB
C#

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<MeshRenderer>();
foreach (var item in roots)
{
var meshRenderers = item.GetComponentsInChildren<MeshRenderer>(true);
foreach (var x in meshRenderers)
{
tempList.Add(x);
}
}
this.meshRenderers = tempList.ToArray();
foreach (var item in meshRenderers)
{
if (item.gameObject.GetComponent<MeshCollider>() == null)
{
item.gameObject.AddComponent<MeshCollider>();
}
}
}
[ContextMenu("Remove")]
public void Remove()
{
foreach (var item in meshRenderers)
{
if (item.gameObject.TryGetComponent<MeshCollider>(out var meshCollider))
{
Destroy(meshCollider);
}
}
}
#endif
}