- Home /
How do I make the character look at the mouse?
So, i want to make the character to look where the mouse is pointing
Here is my code
scoop.transform.position = new Vector3(targetScopePosition.x, targetScopePosition.y, scoop.transform.position.z);
//angle tracker
v3Pos = Input.mousePosition;
v3Pos.z = nuggetsPrefab.transform.position.z - Camera.main.transform.position.z;
v3Pos = Camera.main.ScreenToWorldPoint(v3Pos);
v3Pos -= scoop.transform.position;
fAngle = Mathf.Atan2(v3Pos.y, v3Pos.x) * Mathf.Rad2Deg;
if (fAngle < 0.0f)
{
fAngle += 360.0f;
}
Debug.Log (fAngle);
//45º right*
if (fAngle >= 198f && fAngle <= 234f)
{
gameObject.GetComponent<Animator>().SetBool("45", true);
gameObject.GetComponent<Animator>().SetBool("up", false);
gameObject.GetComponent<Animator>().SetBool("facingRight", true);
gameObject.GetComponent<Animator>().SetBool("down", false);
}
//right*
if (fAngle >= 162f && fAngle <= 198f)
{
gameObject.GetComponent<Animator>().SetBool("45", false);
gameObject.GetComponent<Animator>().SetBool("up", false);
gameObject.GetComponent<Animator>().SetBool("facingRight", true);
gameObject.GetComponent<Animator>().SetBool("down", false);
}
//rightdown*
if (fAngle >= 126f && fAngle <= 162f)
{
gameObject.GetComponent<Animator>().SetBool("45", false);
gameObject.GetComponent<Animator>().SetBool("up", false);
gameObject.GetComponent<Animator>().SetBool("facingRight", true);
gameObject.GetComponent<Animator>().SetBool("down", true);
}
//rightup*
if (fAngle >= 234f && fAngle <= 270f)
{
gameObject.GetComponent<Animator>().SetBool("up", true);
gameObject.GetComponent<Animator>().SetBool("45", false);
gameObject.GetComponent<Animator>().SetBool("facingRight", true);
gameObject.GetComponent<Animator>().SetBool("down", false);
}
//upleft*
if (fAngle >= 270f && fAngle <= 306f)
{
gameObject.GetComponent<Animator>().SetBool("up", true);
gameObject.GetComponent<Animator>().SetBool("45", false);
gameObject.GetComponent<Animator>().SetBool("facingRight", false);
gameObject.GetComponent<Animator>().SetBool("down", false);
}
//downleft*
if (fAngle >= 18f && fAngle <= 54f)
{
gameObject.GetComponent<Animator>().SetBool("45", false);
gameObject.GetComponent<Animator>().SetBool("up", false);
gameObject.GetComponent<Animator>().SetBool("facingRight", false);
gameObject.GetComponent<Animator>().SetBool("down", true);
}
//left*
if (fAngle >= 342f || fAngle <= 18f)
{
gameObject.GetComponent<Animator>().SetBool("45", false);
gameObject.GetComponent<Animator>().SetBool("up", false);
gameObject.GetComponent<Animator>().SetBool("facingRight", false);
gameObject.GetComponent<Animator>().SetBool("down", false);
}
//45º left*
if (fAngle >= 306f && fAngle <= 342f)
{
gameObject.GetComponent<Animator>().SetBool("45", true);
gameObject.GetComponent<Animator>().SetBool("up", false);
gameObject.GetComponent<Animator>().SetBool("facingRight", false);
gameObject.GetComponent<Animator>().SetBool("down", false);
}
The problem with this code is that, it only works when the chicken is centered in the screen(spoiler, i dont want the chicken to be centered, I want lazy scrolling(the camera only moves if the player is far enough), but i got that figured out)
Just for clarification, the mouse is not visible and its locked in the center of the screen
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220613030424im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Rotation offset help! 0 Answers
Flip 2D Character with Keys without moving 2 Answers
How would I do customizable characters in my game? (2D) 0 Answers
2D character bounce off wall / shakes while walking into it 3 Answers
Looking at target in 2D 1 Answer