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;
}