Показать сообщение отдельно
Старый 16.08.2013, 23:54   #1776
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Сообщение от ARENSHI Посмотреть сообщение
Лучше руки к плечам прикрутить


Конечно Юнити напортачили, ведь там одни мудаки работают.
Аккуратность физики где-то тут настраивается.
А хамить не надо! Попробуй сам сделать такое таскание предметов. Чтобы предмет не отставал от руки при вращении камеры его надо двигать с огромной для физики скорости. Физика с этим никак не справляется.

При движении через body.MovePosition тело проходит через все коллайдеры. Rigidbody.collisionDetectionMode никак не влияет на это. Еще и дрожание будет из-за движения в FixedUpdate, хотя это можно легко исправить, если вызывать чаще этот апдейт, но тогда производительность очень быстро падает.
Solver Iteration Count сколько будет итераций решения коллизии т.е. оно надо, когда объект залазит в какой-то угол т.е. тут не поможет.
Min Penetration For Penalty - на сколько объекты могут проваливаться друг в друга. Кажется это сделано чтобы объекты не дрожали при коллизии. Вообщем тоже не то.
И другие параметры мне никак не помогут.

При движении через AddForce тело отстает от руки и как на резинки летает вокруг руки(хотя тут можно вручную уменьшать скорость при приближении к руке). Да и если придавать объекту огромную силу, то он будет встревать при коллизии в другие объекты либо другие объекты будут отлетать как от ядерного взрыва.

Что еще посоветуешь?
Лучшее, что я пока придумал это проверять есть ли рядом с предметом в определенном радиусе другие коллайдеры и если есть, то двигать физикой через AddForce. Иначе двигать без всякой физики. Вообщем-то не плохо работает, только когда объект трется обо что-то или просто рядом с чем-то, то сразу начинает отставать от курсора.
Кстати, Physics.SphereCast работал через раз, поэтому использую просто Physics.CheckSphere.
Вообщем вот можешь глянуть http://www.youtube.com/watch?v=UAsM9lPJTxw
А вот как в амнезии http://www.youtube.com/watch?v=Mke9FsuSEBA
Что интересно при коллизии объект может повернутся, но после окончания коллизии объект поворачивается в исходные свои углы.
Есть еще идеи как это сделать?

И кстати, в юнити конечно не все мудаки, но судя из их скриптов они там точно есть. Хотя я пока проблемы имел только с редактором и GUI. Как с остальным дела обстоят не знаю, быть может они и с физикой что-то не доделали.
(Offline)
 
Ответить с цитированием