Rotate Vector3 towards another point, use local space to create an offset, and then convert offset to world space. Is this possible?
I know how to do this with objects, but is there a way to do this with just a defined Vector3?
Say I have a Vector3 between two points. I want the Vector3 to face diagonally towards the second point, add 4 on it's x axis and 4 on it's y axis, and convert that back to world space.
How would I go about making the local x and y coordinates move diagonally with the Vector3's rotation, instead of just moving left and right like they would typically do?
can you make a draw to clarify exactly what you want?
Absolutely! The code below does exactly what I want.
void FindNewPosition()
{
//Set rotation of object
diagonalRotation = pointB - pointA;
myObject.transform.rotation = Quaternion.LookRotation(diagonalRotation)
//$$anonymous$$ove object to the right (with the new rotation) in local space
myObject.transform.localPosition = new Vector3(4, 0, 0);
//Convert new position to world space
newPosition = myObject.transform.position;
}
Is there a way to do this without using an object though? I want to define a Vector3, get a diagonal offset using the Vector3's rotation with local space, and then convert that offset to world space.
Basically I need to know what is 1 unit right and 1 unit up of that Vector3 depending on which way it's facing.
YEa, its possible mathematicly, but its not "simple".. you nned to pply the scale factor, then de-rotate it as parent rotation...
If you have a solution using an object, us it. You can create an emptyobject to do it, and destroy the object at the end.
Your answer
Follow this Question
Related Questions
Player Controls For Restricted Directional Movement, but those things vary... 0 Answers
Vector3 from mouse position in scene view in edit mode 0 Answers
Dot product not working when Enemy change its direction 0 Answers
Change player gravity by pressing a key? 1 Answer
Slerp ignoring time component? 1 Answer