- Home /
Finding plane perpendicular to an objects velocity
I have an object moving at a specific velocity in Vector3, and I can find the velocity through the rigidbody. The thing I'm trying to accomplish is instantiating an object next to the one in question and having it move at the same velocity side-by-side. The only problem is finding out where to instantiate this object. I Don't want it to end up in front of or behind the other object, so I need to find a space perpendicular to the original's direction of motion. I've tried to find a mathematical way of doing this, but I must be missing something because I've come up short of a solution. I was thinking that maybe there was an easy way within Unity, or at least a mathematical solution I could utilize. Any suggestions?
That's exactly what I was looking for! Thank you, I had no idea that Vector3.Cross existed until now. Works perfectly for me, thank you.
Answer by Scribe · Jan 04, 2015 at 07:53 PM
given position p = (pi, pj, pk)
and velocity v = (vi, vj, vk)
, the equation of your plane is (vi)x + (vj)y + (vk)z = (pi*vi)+(pj*vj)+(pk*vk)
I believe. However a better method for you might be to use Vector3.Cross(Vector3.up, velocity)
, this will get a direction that is perpendicular to both those vectors, the problem you might have here is if velocity
is equal to Vector3.up
, but you could handle that case separately as it occurs.
Your answer
Follow this Question
Related Questions
How do I make rigidbody.velocity in local space? 1 Answer
How to keep velocity and add onto it from any rotation. 1 Answer
How to touch anywhere in the screen and the point touched should alwaysstart from a particular point 1 Answer
(Steam VR / Vive) Rigidbody moving in only one direction after collision 1 Answer
How can I quickly calculate Land Speed from a Vector3? 1 Answer