Sprite disapears when moving left

Hi, I’m new to coding and followed some turotials on youtube.

Somehow my Sprite disappears when moving left. I also used character rigging (adding bones to the sprite).

WHen moving right, everything is fine, but the sprite disappears when moving left.

Here’s the code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
//------------Variables---------------------------------------------------------

private Rigidbody2D rb;     //Rigidbody of the player sprite
public float speed;         //Moving speed
public float jumpForce;     
private float moveInput;    //A or D; left or right

private bool isGrounded;    //Check if the sprite is attached to the ground
public Transform feetPos;
public float checkRadius;   //Checks the Radius between feetPos and the Ground

private float jumpTimeCounter;      //Counts the times the player jumpes
public float jumpTime;              //Checks the jumptime of the player
private bool isJumping;             //Checks whether the player is jumping or not

private bool facingRight = true;    //Checks whether the sprite is facing right
//----------------------------------------------------------------------------------

void Start()
{
    rb = GetComponent<Rigidbody2D>();

}

void FixedUpdate()
{
    moveInput = Input.GetAxisRaw("Horizontal");
    rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);
}

void Update()
{
    isGrounded = Physics2D.OverlapCircle(feetPos.position, checkRadius);    //Defining what means "isGrounded"

    if(moveInput < 0 && facingRight)    //calling the flip function: 
    {
        flip();                         //calls the flip function if sprite is moving left
    }

    else if (moveInput > 0 && !facingRight)
    {
        flip();
    }

    //-----------------------------------------------------------------------------
    //Make the player sprite flip sides (facing left and right):
    /*if(moveInput > 0)
    {
        transform.eulerAngles = new Vector3(0, 0, 0);   //Player facing right
    } 
    
    else if(moveInput < 0)
    {
        transform.eulerAngles = new Vector3(0, 180, 0); //Player facing left
    }*/
    //-----------------------------------------------------------------------------

    if(isGrounded == true && Input.GetKeyDown(KeyCode.Space))   //Jumping function
    {
        isJumping = true;                                       //Sets isJumping as true
        jumpTimeCounter = jumpTime;                             

        rb.velocity = Vector2.up * jumpForce;
    }

    if(Input.GetKey(KeyCode.Space) && isJumping == true)        //Jumping higher is key is pressed longer
    {
        if(jumpTimeCounter > 0)
        {
            rb.velocity = Vector2.up * jumpForce;
            jumpTimeCounter -= Time.deltaTime;      //So jumptimeCounter returns false at some point
        }
        
        else
        {
            isJumping = false;                      //Sets isJumping to false
        }

    }

    if (Input.GetKey(KeyCode.Space))                //Sets isJumping to false
    {
        isJumping = false;
    }

}

void flip()
{
    facingRight = !facingRight;         //When the sprite is facing left
    transform.Rotate(0f, 180f, 0f);     //Turn the sprite at 180°
}

}

You could try changing the size from 1 to -1 that would do the same thing

Hi Tomatotom,

thanks very much for the tipp.

Now I have found the solution with this code:

if (moveInput < 0) //Move ot the left
{
transform.localScale = new Vector2(-1, 1);
}
else if (moveInput > 0) //Move to the right
{
transform.localScale = new Vector2(1, 1);
}