Unity3D: Добавление Sphere Collider к компоненту Cloth во время выполнения ничего не делает - PullRequest
0 голосов
/ 01 мая 2018

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

Там есть сферический коллайдер, прикрепленный к моей камере от первого лица, и текстовый скрипт, прикрепленный к первичной плоскости. Я пытаюсь прикрепить кулачковый коллайдер 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];

}

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

Here is a screenshot of the cloth component in the inspector

1 Ответ

0 голосов
/ 01 мая 2018

Вы пытаетесь установить 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;
}
...