Problem with Vector2/Vector3.Angle?
Hello,
I have a 2D game that I'm working on and for each direction (North, South, East and West, and all the cardinal directions in between) there is a sprite, and I switch between these sprites using a switch. I have two methods for determining the direction it should be facing. One is using the Axis input and the other is the angle between the player character and the mouse. However, when I get these angles it seems to only measure the angle from the origin of the world and wherever my mouse happens to be, as opposed to relative to my player character, which has had me stuck for a few hours switching between both Vector Angle methods and a few mouse to world position techniques like a ray and ScreenToWorldPoint.
Here's what I have at the moment:
public class AnswersScript : MonoBehaviour {
Vector2 mouseWorldPoint;
float angle;
void Update ()
{
//Camera is stationary on runtime at the moment.
//Angle is found of origin and mouseWorldPoint.
//Gizmo was used to show line between these points, which shows that positions are correct.
mouseWorldPoint = Camera.main.ScreenToWorldPoint( Input.mousePosition );
angle = Vector2.Angle( transform.position , mouseWorldPoint );
//Contains ranges of angles so direction can be set. This works fine.
//Direction is represented by an int.
MouseDirection();
//Contains switch of direction to set sprite according to direction
//This also works.
SetDirection();
}
}
relative to what do you want to measure? should above the character return 0 degrees and below 180? is the character constantly in the center of the screen?
Your answer
Follow this Question
Related Questions
Feild of view only wokring in specific areas of the scene 0 Answers
Get angle between a position and facing direction 0 Answers
Vector question 0 Answers