Не удается заставить столкновения жестких тел работать в Unity3d с коробочными коллайдерами

Поэтому я использую Unity для создания игры для Android и не могу заставить работать какие-либо коллизии. Оба объекта имеют боксовые коллайдеры, и к одному прикреплен жесткий кузов. Когда я нажимаю "играть", он просто падает через пол. Поэтому я вместо этого попытался сделать кинематический объект жесткого тела и управлять его перемещением с помощью transform.Transform, а не solidbody.addforce. Затем я сделал куб перед персонажем с помощью коллайдера с проверкой "Is Trigger". Затем я прикрепил этот скрипт как к жесткому телу, так и к кубу.

#pragma strict
function OnTriggerEnter ( block : Collider){

print("BA BAM!");
Destroy(block.gameObject);

}
function Update () {
if (Input.GetKeyDown(KeyCode.Escape)) {
    Application.LoadLevel("MainMenu");
}
}

но я буду перемещать персонажа прямо через блок, и ничего не произойдет!

Затем я решил создать новую пустую сцену и сделал два куба. У обоих есть боксовые коллайдеры. Я перетянул один над другим и добавил к нему физику твердого тела. Но это только проваливается через другой блок, когда я нажимаю на игру! Любая помощь будет оценена!

2 ответа

Триггеры не являются сплошными, поэтому коробка с триггером и твердым телом может провалиться сквозь твердый предмет. Обычно объект с твердым телом не должен быть настроен на срабатывание, а стационарные объемы должны быть настроены на срабатывание. Кроме того, я попробовал ваш код, и он работает правильно. Вы уверены, что этот скрипт применяется к объектам, которые сталкиваются?

Перемещение объекта с помощью функции Translate позволит телепортировать объект в новую позицию Vector3, а не плавно перемещать его.

Также проверьте, на какой физический уровень установлен каждый объект. Затем перейдите в Edit -> Physics, чтобы отредактировать, какой физический слой может сталкиваться друг с другом.

Кроме этого, я бы предположил, что это произойдет из-за какой-то ошибки в вашей установке Unity.

Другие вопросы по тегам