Search
 
SCRIPT & CODE EXAMPLE
 

CSHARP

how to flip character in unity 2d

Put this in Update() = 

    //Flip the player's localScale.x 
    if the move speed is greater than .01 or less than -.01

        if (targetVelocity.x < -.01)
        {
            transform.eulerAngles = new Vector3(0, 180, 0); // Flipped
        }
        else if (targetVelocity.x > .01)
        {
            transform.eulerAngles = new Vector3(0, 0, 0); // Normal
        }
Comment

Flip a player in Unity 2D

/*
**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);
        
        
    }
Comment

How to flip a character in Unity 2D

 //Checks if the left and right keys are pressed and flips the player accordingly
 //Make sure the player scale on the x axis is 1
    
    //Checks if the right key is pressed
    if (moveHorizontal > 0)
   	 {
     	rb2D.transform.localScale = new Vector3(1, transform.localScale.y, transform.localScale.z);
   	 }

	//Checks if Left Key is pressed
	else if (moveHorizontal < 0)
  	 {
       rb2D.transform.localScale = new Vector3(-1, transform.localScale.y, transform.localScale.z);
  	 }
Comment

PREVIOUS NEXT
Code Example
Csharp :: datetime in specific format c# 
Csharp :: c# how to check if a array bool is all true 
Csharp :: C# using variables inside strings 
Csharp :: find how many digits a number has 
Csharp :: c# remove char from string 
Csharp :: c# increase length of array 
Csharp :: C# datareadeer return null 
Csharp :: file to byte array 
Csharp :: orElseThrow 
Csharp :: ternary operator c# 
Csharp :: set target framerate unity 
Csharp :: c# video to frames 
Csharp :: c# add element to array 
Csharp :: C# network traffic 
Csharp :: change size of a unity object 
Csharp :: c# switch statements 
Csharp :: unity rotate around axis 
Csharp :: how to create a variable in c# 
Csharp :: c# html to pdf 
Csharp :: c# set cursor to loading and back 
Csharp :: emgucv open image c# 
Csharp :: asp.net core identity get all roles 
Csharp :: stringify c# 
Csharp :: C# actions 
Csharp :: c# split string by index 
Csharp :: if list does not contain then add c# 
Csharp :: iterate though data in firebase unity 
Csharp :: XMLWriter write xml C# 
Csharp :: c# how to append in array 
Csharp :: how to fix on GetMouseButtonDown activating UI unity 
ADD CONTENT
Topic
Content
Source link
Name
2+5 =