using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AddColliders : MonoBehaviour
{
public List<GameObject> objectsToAddCollider = new List<GameObject>();
// Start is called before the first frame update
void Start()
{
AddDescendantsWithTag(transform, objectsToAddCollider);
}
// Update is called once per frame
void Update()
{
}
private void AddDescendantsWithTag(Transform parent, List<GameObject> list)
{
foreach (Transform child in parent)
{
if (child.gameObject.GetComponent<MeshRenderer>() != null
&& child.gameObject.GetComponent<)
{
list.Add(child.gameObject);
}
AddDescendantsWithTag(child, list);
}
}
}
В этой строке я проверяю, есть ли рендерер сетки, прикрепленный к игровому объекту, но как мне проверить, не привязан ли он к какому-либо типу коллайдера? А как добавить к нему коллайдер из сетки?
Это то, что я пробовал до сих пор:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AddColliders : MonoBehaviour
{
public List<GameObject> objectsToAddCollider = new List<GameObject>();
// Start is called before the first frame update
void Start()
{
AddDescendantsWithTag(transform, objectsToAddCollider);
}
// Update is called once per frame
void Update()
{
}
private void AddDescendantsWithTag(Transform parent, List<GameObject> list)
{
foreach (Transform child in parent)
{
if (child.gameObject.GetComponent<MeshRenderer>() != null
&& child.gameObject.GetComponent<Collider>() == null)
{
child.gameObject.AddComponent<MeshCollider>();
list.Add(child.gameObject);
}
AddDescendantsWithTag(child, list);
}
}
}
Но потом в конце добавляем точку останова на строку:
AddDescendantsWithTag(transform, objectsToAddCollider);
Я вижу, что игровые объекты в Списке объектов ToAddCollider в Коллайдере это сообщение:
collider = System.NotSupportedException: свойство collider устарело
