Как добавить жесткое тело в импортированный игровой объект программного обеспечения для моделирования?

Я импортировал игровой объект в свою игру, который создал в программном обеспечении для 3D-моделирования. Теперь я хотел бы контролировать движение этого игрового объекта, чтобы, как только он попадет в другой игровой объект, он прекратил свое движение.

Я читал, что для этого игровому объекту нужно твердое тело. Так как и где в сценарии я могу добавить жесткое тело к этому игровому объекту?

1 ответ

Решение

Заключение

Это действительно 101 вопрос Unity3D.

Пожалуйста, взгляните на отличные учебники на www.unity3d.com, прежде чем задавать подобные вопросы здесь, в SO. Для этого есть собственный раздел Rigidbody. С понятными примерами, видеоуроками и исходным кодом (Сердце, что вы хотите больше?).


Краткое объяснение (РЕДАКТОР)

Перетащите модель в сцену редактора.

Выберите GameObject с именем вашей Модели в иерархии.

Нажмите на Add Component и выбрать Ridigbody,

Выберите 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);
    }
}
Другие вопросы по тегам