Unity3d HingeJoint
Здравствуйте.
Сделал собираемый танчик, у которого модули соединяются джоинтами. Корпус и башню соединил с помощью HingeJoint (компонент висит на корпусе, конект боди башня), наверное не самый подходящий, но я не знаю какой лучше поставить, и из-за этого возникла проблема.
Когда кручу корпус, башня остаётся на месте, а мне нужно чтобы она тоже крутилась вместе с ним, поэтому, так как я ничего не нашел, решил написать костыль
Частично это решило проблему, но угловые скорости корпуса и башни не совпадают и я не знаю как правильно доработать 22 строку говно-кода. Помогите его доработать или если вы знаете другие способы решения проблемы поделитесь пожалуйста!!!
Ответы (1 шт):
я нашел решение проблемы спустя пару дней)))
у HingeJoint есть свойство spring которое крутит соединенный объект с определенной силой на необходимый угол, и оно является структурой JointSpring, у которого есть поля spring "сила пружины", damper, targetPosition.
Когда мы прикладываем крутящий момент (какой нибудь кнопкой) необходимо установить joint.useSpring = false, после нужно создать экземпляр mySpring типа JointSpring (мы не можем напрямую менять поля свойства spring) в котором каждый Update() делаем mySpring.targetPosition = joint.angle "это угол на котором находится соединенного объекта" и делаем joint.spring = mySpring;
И когда ввод прекращается устанавливаем joint.useSpring = true и наш соединенный объект крутиться вместе с основанием правильно


