Unity3D: Добавление Sphere Collider к компоненту Cloth во время выполнения ничего не делает

Я пытаюсь сделать так, чтобы игрок шел через тканевую шторку.

Там есть сферический коллайдер, прикрепленный к моей камере от первого лица, и сценарий ткани, прикрепленный к первичной плоскости. Я пытаюсь прикрепить кулачковый коллайдер FPS к объекту одежды во время выполнения.

Я написал сценарий, который, кажется, должен работать, но это не так. Нет ошибок или ничего. Скрипт компилируется и работает, но сферический коллайдер просто не подключается к компоненту одежды. что дает?

    public class ClothTest : MonoBehaviour {

          private void Start() {

    Cloth a = GetComponent<Cloth>();

    var ClothColliders = new ClothSphereColliderPair[1];
    ClothColliders[0] = new ClothSphereColliderPair(GameObject.Find("First Person Camera").GetComponent<SphereCollider>());

    ClothColliders[0] = a.sphereColliders[0];

}

Вот скриншот компонента ткани в инспекторе:

Вот скриншот компонента ткани в инспекторе

1 ответ

Вы пытаетесь поставить SphereCollider от вашей камеры к вашей Cloth но

ClothColliders[0] = a.sphereColliders[0]; 

делает наоборот. Пытается поставить SphereCollider от твоего Cloth к тому, что в вашей камере. Измените это вокруг, а также удалите [0] с каждой стороны.

Эта последняя строка кода должна быть:

a.sphereColliders = ClothColliders;

Полная новая функция:

void Start()
{
    Cloth a = GetComponent<Cloth>();
    var ClothColliders = new ClothSphereColliderPair[1];
    ClothColliders[0] = new ClothSphereColliderPair(GameObject.Find("First Person Camera").GetComponent<SphereCollider>());

    a.sphereColliders = ClothColliders;
}
Другие вопросы по тегам