Как добавить жесткое тело в импортированный игровой объект программного обеспечения для моделирования?
Я импортировал игровой объект в свою игру, который создал в программном обеспечении для 3D-моделирования. Теперь я хотел бы контролировать движение этого игрового объекта, чтобы, как только он попадет в другой игровой объект, он прекратил свое движение.
Я читал, что для этого игровому объекту нужно твердое тело. Так как и где в сценарии я могу добавить жесткое тело к этому игровому объекту?
1 ответ
Заключение
Это действительно 101 вопрос Unity3D.
Пожалуйста, взгляните на отличные учебники на www.unity3d.com, прежде чем задавать подобные вопросы здесь, в SO. Для этого есть собственный раздел Rigidbody. С понятными примерами, видеоуроками и исходным кодом (Сердце, что вы хотите больше?).
Краткое объяснение (РЕДАКТОР)
Перетащите модель в сцену редактора.
Выберите GameObject с именем вашей Модели в иерархии.
Нажмите на Add Component
и выбрать Ridigbody
,
Еще более короткое объяснение (КОДЕКС)
Просто эта простая строка кода:
myGameObject.AddComponent<Rigidbody>();
Клонированные объекты
Пример для создания экземпляров GameObjects
в for-loop
и добавление Rigidbody
им.
Rigidbody currentRb;
for(int i = 0; i < 10; i++)
{
GameObject clone = (GameObject)Instantiate(prefab, Vector3.zero, Quaternion.identity);
currentRb = clone.AddComponent<Rigidbody>();
// You can even access the rigidbody with no effort
currentRb.detectCollisions = true;
}
Прилагается к MonoBehavoir
Существует атрибут для ваших объектов MonoBehavior с именем RequireComponent()
,
Скопированное из документации, это вложение добавит к каждому объекту компонент Rigidbody.
// The GameObject requires a Rigidbody component
[RequireComponent (typeof (Rigidbody))]
public class PlayerScript : MonoBehaviour {
Rigidbody rb;
void Start() {
rb = GetComponent<Rigidbody>();
}
void FixedUpdate() {
rb.AddForce(Vector3.up);
}
}