- Home /
How to get a vector rotation?
Hello, I want to make raycasts going out of my character in multiple directions but Raycast takes a direction in the form of a vector.
Just for an example, how would I set the direction for this 360 degree loop?
for(int i=0; i<360; i++){
Physics.Raycast(position, direction? * i, distance);
}
Note that I don't want to modify the character's actual rotation, just check around him.
Answer by LessThanEpic · Jan 23, 2015 at 08:50 PM
It's easier if you convert from polar coordinates. Assuming you wanted to rotate around the y axis you could do:
for(int i=0; i<360; i++)
{
Vector3 direction = new Vector3(Mathf.Cos(i), 0, Mathf.Sin(i));
Physics.Raycast(position, direction, distance);
}
Ah yes that looks good. After lots of trial and error I just found this works too:
Quaternion.Euler(0, i, 0) * Vector3.forward
Any idea which method would be faster? Thanks!
Don't know which one would be faster, sorry. It wouldn't be too hard to run some tests and find out though.
I just ran a quick and dirty test and it looks like the polar coordinate approach is about 3 times faster. But both were pretty fast, so in most cases the difference is probably negligible.
Your answer
Follow this Question
Related Questions
Raycasting from object rotation? 1 Answer
click to move workig script!! but pls help with rotation!! :( 1 Answer
How do I get an object to rotate around a different axis based on the raycasts hit angle? 0 Answers
Make 2 object not go into each other when modifying one object's position 0 Answers
How does LookRotation work in relation to ray cast? 1 Answer