I’m making a 2d game but when I try to flip the sprites with a code I get errors.
No overload for for method ‘Move’ takes 1 argument/ the name ‘move’ doesn’t exist in the current context. Please help me fix this or suggest another way of doing it. Here’s the script.
void Update ()
{
float x = Input.GetAxisRaw("Horizontal");
float y = Input.GetAxisRaw("Vertical");
Vector2 direction = new Vector2(x, y).normalized;
Move (direction);
}
void Move (Vector2 direction, float move)
{
Vector2 min = Camera.main.ViewportToWorldPoint (new Vector2(0, 0));
Vector2 max = Camera.main.ViewportToWorldPoint (new Vector2(1, 1));
max.x = max.x - 0.225f;
min.x = min.x + 0.225f;
max.y = max.y - 0.285f;
min.y = min.y + 0.285f;
Vector2 pos = transform.position;
pos += direction * speed * Time.deltaTime;
pos.x = Mathf.Clamp (pos.x, min.x, max.x);
pos.y = Mathf.Clamp(pos.y, min.y, max.y);
transform.position = pos;
if (move > 0 && !m_FacingRight)
{
// ... flip the player.
Flip();
}
// Otherwise if the input is moving the player left and the player is facing right...
else if (move < 0 && m_FacingRight)
{
// ... flip the player.
Flip();
}
}
private void Flip()
{
// Switch the way the player is labelled as facing.
m_FacingRight = !m_FacingRight;
// Multiply the player's x local scale by -1.
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
}