- Home /
Question by
Pixellate32 · Apr 02, 2020 at 02:34 AM ·
spritecharacter controllerfliptouchpad
Flip The Sprite By Using Touchpad
Hi, I am creating 2D RPG game for mobile.I am using touchpad to control the character.I want to flip the character when he is going backward. I know how to do it with character controller but I am not using that. So what should I do to flip the player when moving backward.
public Transform player;
public float speed = 0f;
private bool touchStart = false;
private Vector2 pointA;
private Vector2 pointB;
public Transform circle;
public Transform outerCircle;
public Animator anim;
void Start (){
}
// Update is called once per frame
void Update () {
//Player Controller
if(Input.GetMouseButtonDown(0)){
speed = 3;
pointA = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.transform.position.z));
circle.transform.position = pointA * 1;
outerCircle.transform.position = pointA * 1;
circle.GetComponent<SpriteRenderer>().enabled = true;
outerCircle.GetComponent<SpriteRenderer>().enabled = true;
}
if(Input.GetMouseButton(0)){
speed = 3;
touchStart = true;
pointB = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.transform.position.z));
}else{
speed = 0;
touchStart = false;
}
//Player Animation
anim.SetFloat ("Move", speed);
}
private void FixedUpdate(){
if (touchStart) {
Vector2 offset = pointB - pointA;
Vector2 direction = Vector2.ClampMagnitude (offset, 1.0f);
moveCharacter (direction * 1);
circle.transform.position = new Vector2(pointA.x + direction.x, pointA.y + direction.y) * 1;
}else{
circle.GetComponent<SpriteRenderer>().enabled = false;
outerCircle.GetComponent<SpriteRenderer>().enabled = false;
}
}
void moveCharacter(Vector2 direction){
player.Translate(direction * speed * Time.deltaTime);
}
}
Comment
Answer by Roger_0123 · Apr 02, 2020 at 10:10 AM
You may call GetComponent<SpriteRenderer>().flipX = true
or GetComponent<SpriteRenderer>().flipY = true
to flip the image on the horizontal or vertical axis. Here is the link to the API: SpriteRenderer.flipX
Your answer
![](https://koobas.hobune.stream/wayback/20220612230322im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
2D Box Collider doesn't flip with Sprite 3 Answers
How to do a sprite flip 1 Answer
2D spaceship rotation 0 Answers
Sprite flip movement script not working! HELP! 0 Answers
LocalScale not working idealy 1 Answer