Question by
sistemalberto19 · Sep 21, 2017 at 01:22 PM ·
2d gameflip
Flip player Problem
Hello, everyone. I am doing my first game but I have a problem. When I try to make it flip, it flips but it also changes its position to the opposite side. Thank you Code:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class PlayerController : MonoBehaviour {
public float horizontalInput;
[SerializeField]
public float rigidSpeedX;
public bool facingRight = true; //assume facing right
public Rigidbody2D rd2d;
// Use this for initialization
void Start() {
//facingRight = true;
rd2d = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
//get the horizontal input from the user
horizontalInput = Input.GetAxis("Horizontal");
if (horizontalInput > 0 && !facingRight)
{
// ... flip the player.
Flip();
}
// Otherwise if the input is moving the player left and the player is facing right...
else if (horizontalInput < 0 && facingRight)
{
// ... flip the player.
Flip();
}
//move the object
this.transform.Translate(horizontalInput*.1f, 0, 0);
//another way to move if there is a rigid body component
// rigidSpeedX = rd2d.GetComponent<Rigidbody2D>().velocity.x;
// rd2d.GetComponent<Rigidbody2D>().velocity = new Vector2(horizontalInput, rd2d.GetComponent<Rigidbody2D>().velocity.y);
}
private void Flip()
{
// Switch the way the player is labelled as facing.
facingRight = !facingRight;
//Multiply the player's x local scale by -1.
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
}
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220612135324im_/https://answers.unity.com/themes/thub/images/avi.jpg)