2016-04-08 10 views
0

Итак, у меня есть пустой объект игры, который вращается. Теперь у него есть объект сферы как его ребенок. Поэтому, когда объект родительского объекта вращается, дочерняя сфера, похоже, вращается вокруг него. Я хочу знать скорость этой сферы, в частности, ее тангенциальную скорость.Как получить тангенциальную скорость вращающегося объекта?

Когда я отлаживаю, я нахожу все компоненты скорости/угловой скорости твердого тела сферой (0,0,0). Может кто-нибудь, пожалуйста, скажите мне, как я могу это достичь.

+0

Вы вращаете родительский объект GameObject с помощью физики (например, 'AddTorque()') или вручную по сценарию (например, постоянно обновляете 'transform.rotation')? – Serlite

+0

Я использую 'transform.RotateAround (Target.position, Target.up, _directionOfMovement * _speedWithoutInput * Time.deltaTime)', где я передаю родительский точечный объект как цель – Jajan

+0

Если вы используете 'transform.RotateAround()', это означает, что вы манипулируете преобразованием напрямую, а не через физику. Это означает, что получение скорости от Rigidbody ребенка невозможно - вам придется вручную вычислить это, используя ваши знания геометрии/физики. Однако это можно сделать, если вы предоставите родительскому Rigidbody и повернете его с помощью физики (например, ['Rigidbody.AddTorque()'] (http://docs.unity3d.com/ScriptReference/Rigidbody.AddTorque.html) Дайте мне знать, если вы хотите использовать этот подход. – Serlite

ответ

0

Если вы вращаете объект, манипулируя его преобразованием, твердое тело не работает. Попробуйте повернуть его с помощью жесткого тела, и вы увидите некоторые значения скорости/угловой скорости.

+0

Попробуем это. Спасибо @ Mikes3ds – Jajan