0 votes

Documentation advises to always use transforms for rotation, but I'd like to have RigidBody trying to reach rotation using physics and the only way to do it is using Vector3 in set_angular_velocity:

func _integrate_forces(state):
    var target_rotation = target.global_transform.basis
    set_angular_velocity(target_rotation.get_euler() - global_transform.basis.get_euler())

This makes RigidBody rotating all the time. I suspect this is because of euler angles limitations, but how can I use Basis or Quat when function only takes Vector3?

in Engine by (98 points)
edited by

1 Answer

0 votes
Best answer

I figured out the code:

var target_rotation = target.global_transform.basis    
set_angular_velocity((target_rotation * global_transform.basis.inverse()).get_euler())
by (98 points)
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.