/*
**Beware; fliping a character using the sprite renderer won't flip important components like colliders attached to it
**To Correctly flip a character, Flip the character by changing the y rotation or by changing the scale of the x axis to -1 or 1
*/
///Fliping a character in Unity 2D
//Declare variables
bool _facingRight
void Update()
{
if (Input.GetAxisRaw("Horizontal") > 0 && !_facingRight)
{
Flip();
}
//
else if (_moveHorizontal < 0 && _facingRight )
{
//calls the flip method
Flip();
}
}
//Flip Method
void Flip()
{
//flips the character along the x axis using the sprite renderer correspondingly
gameObject.GetComponent<SpriteRenderer>().flipX = !gameObject.GetComponent<SpriteRenderer>().flipX;
//Sets the facingright bool to the opposite of what its currently at to prevent repeated flipping
_facingRight = !_facingRight;
//Flips the character by Rotating the character 180 degrees along the y axis
//gameObject.GetComponent<Rigidbody2D>().transform.Rotate(0, 180, 0);
//Flips the character by the changing the scale of the x axis to 1 or minus 1
//gameObject.GetComponent<Rigidbody2D>().transform.localScale = new Vector3(transform.localScale.x*-1, transform.localScale.y, transform.localScale.z);
}
public Camera cam;
public Transform aimTransform;
Vector3 mousePosition = cam.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y));
Vector3 aimDirection = (mousePosition - transform.position).normalized;
float angle = Mathf.Atan2(aimDirection.y, aimDirection.x) * Mathf.Rad2Deg;
aimTransform.eulerAngles = new Vector3(0, 0, angle);