Суть в следующем. Есть объект - космический корабль на нем бокс коллайдер и скрипт управления. Есть астероид, тоже с коллайдером. Корабль управляется от нажатия мышки по карте и летит к нужной точке. Но он мило проходит насквозь астероида игнорирую коллайдеры. Подскажите - возможно есть особенность в просчетах коллайдеров из-за движения объектов при помощи скриптов. Перепробовал все. До тех пор, пока не вешаю на объекты скрипты - физика срабатывает. Заранее благодарен.
Дак у вас скрипт корабля на transform построен. На астероиде rigidbody есть? Коллизия происходит только если на одном из коллайдеров, или на их предке висит rigidbody. Если да, проверьте, не стоят ли галочки на "isTrigger" на коллайдерах. "возможно есть особенность в просчетах коллайдеров" Только по Layer'ам. Можно отключить коллизию между Layer'ами в настройках или из скрипта. Если у вас нет rigidbody ни на астероиде, ни на корабле, добавьте его на астероид. Если тот должен двигаться, и движение контроллирует скрипт, замените движение через transform.position на rigidbody.velocity (скорость vector3)
Спасибо за советы. Сейчас буду разбираться в причине.
Добавлено (29 Сен 2015, 19:28) --------------------------------------------- Я разобрался. Помог совет с rigidbody, но только повесив его на корабль. И осталась последняя проблема. При столкновениях с объектами - корабль получает не скриптовое ускорение при отталкивании. Есть возможность "стабилизировать" объект в пространстве и вернуть полный контроль скрипту над его положением и перемещением?
Есть переменные Drag и AngluarDrag в rigidbody. Drag - сопротивление воздуха (как мне кажется). Гасит скорость. AngluarDrag - то же самое, только гасит вращение. Чтобы вернуть корабль в равновесие, можно использовать все тот же Ship.transform.Rotate(0, 0, 0); и Vector3.Normalize(вектор).ось * Time.deltaTime * 5 то есть
Я точно не помню, возможно вместо "Ship.transform.forward" нужно написать "-Ship.transform.forward" и вместо "Ship.transform.right" написать "-Ship.transform.right", но это можно проверить опытным путем. Если корабль всплывет кверху брюхом, нужно где-то поменять знак +- ))