- Home /
Vector3 Projection
I use Vector3.Project to project my vector onto another but without loosing any magnitude information. But with project there is a magnitude change.
What else can I use ? Thanks a lot !
What exactly are you trying to project? If a force try AddForce or AddRelativeForce.
I use Vector.Dot to see if vectors are aligned or not. This helps to split forces etc into direction components other than the world axes. Suppose its a .Project hack in some form.
Answer by CHPedersen · Aug 14, 2013 at 01:31 PM
After your projection, just multiply the result Vector's normalized property with the magnitude of the orignal projected vector. This restores the magnitude to what it was prior to projection. For example, suppose you want to project Vector3(1,1,0) onto the X-axis, but you want to preserve its magnitude (which is Sqrt(2)):
Vector3 projectee = new Vector3(1, 1, 0);
Vector3 projectorBase = Vector3.right;
Vector3 resultWithOriginalMagnitude = Vector3.Project(projectee, projectorBase).normalized * projectee.magnitude;
// Prints "Magnitude: 1.414214"
Debug.Log("Magnitude: " + resultWithOriginalMagnitude.magnitude);
I know this is quite late, but wouldn't this just be the exact same as projectorBase * projectee.magnitude
?
Answer by streeter12 · Nov 17, 2015 at 12:49 PM
You can just multiply on first vector magnitude.
Vector3 project = new Vector3(1,2,3);
Vector3 projectBase = new Vector3(1,3,2);
Vector3 result = project.magnitude*projectBase.normalized;
Your answer
Follow this Question
Related Questions
Vector3 Transform.Position Not Working 2 Answers
Middle of screen vector 3? 2 Answers
How can I get it from point b to point c 2 Answers
Moving a Platform 1 Answer
Object not rotating when the associated trigger is triggered 1 Answer