Я пытаюсь сделать так, чтобы плеер проходил через тканевую шторку.
К моей камере от первого лица прикреплен сферический коллайдер, а к примитивной плоскости прикреплен текстильный скрипт. Я пытаюсь прикрепить кулачковый коллайдер 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];
}
Вот скриншот компонента ткани в инспекторе:
Вы пытаетесь вставить 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;
}
То, что в этом ответе, должно заполнить первый индекс SphereCollider в Cloth. Смотрите это, как это должно выглядеть. Разве это не то, что вы пытаетесь сделать? Обратите внимание, что первый заполнен. Если вы не получаете ничего похожего, скопируйте и вставьте код прямо из моего ответа, так как вы неправильно его набираете.
Да, это сработало! Должно быть, я напечатал что-то не так, когда впервые реализовал ваше решение. Большое спасибо!!!
Не забудьте ответить принимать, если это решило вашу проблему.
Спасибо за помощь! Это определенно шаг в правильном направлении, сейчас пишу нужную информацию. Но, похоже, это все еще не помогает - возможно, моя проблема как-то связана с номером в каждом массиве, который я назначаю? Должен ли я использовать [1] вместо [0]?