Обновление Я обнаружил, что жесткое тело не бросается в жесткое тело 2d. Я пробовал вручную кастинг, но получаю ошибки, говорящие, что это невозможно ... Так что мой новый вопрос: как я могу заставить суставы работать с rigidbody2D?Unity 2D Физические суставы. NPE
OP
Обучение Единство и теперь играет с физикой. У меня есть небольшая игра, и все это прекрасно работает, но у меня возникают проблемы с кругом вокруг 2D-физики.
У меня есть разные «ящики», каждый из которых имеет свои физические значения (гравитация и т. Д.). У меня также есть «ящик», который (теоретически) будет перемещать ящики из одного места в другое.
Однако, из-за мои движители, определив позиции, которые они могут перемещаться в игровом пространстве, у меня ужасная проблема, получая ящики на «палку» на движители, когда они перемещаются.
Итак, я кое-что нашел и нашел Joints
- В частности FixedJoint
- Я понял, что это решит, если я приложил сустав к двигателю и установил его тело в ящик? Правильно? Нет.
Я получаю эту ошибку:
NullReferenceException: Object reference not set to an instance of an object
RobertMover.OnCollisionEnter2D (UnityEngine.Collision2D coll) (at Assets/Scripts/RobertMover.cs:29)
Что относится к следующему коду:
void OnCollisionEnter2D(Collision2D coll)
{
Debug.Log (coll.gameObject);
FixedJoint j = (FixedJoint)this.gameObject.AddComponent ("FixedJoint");
j.connectedBody = coll.gameObject.rigidbody; // problem line
}
Видя, как я все еще учусь Unity, я немного не уверен относительно того, что нулевой. У моего ящика жесткое тело. Как и мой двигатель, когда я читаю, что суставы требуют их. Объект не является нулевым (проверяется с помощью Debug.Log ...). Единственное, что я могу подумать, это то, что сам сундук является нулевым, что очень странно!
Может ли кто-нибудь объяснить, что я делаю неправильно?
Да жаль. Выяснил это. К сожалению, нет FixedJoint2D. Таким образом, вместо этого выбрал дистанционный шлейф. Спасибо за вашу помощь. – LokiSinclair