Flipping a sprite with an attached gameobject
Hi guys, sorry to bother you with a possibly very stupid question. Also, first post here so hello! I’m using Unity 5.4 and C# to create a 2D platformer and I’m now in the process of making an enemy able to flip whenever it bumps into a wall. I’ve created the sprite and attached an empty gameobject as a “wallcheck”. The sprite is supposed to rotate as soon as the wallcheck detects a wall. My problem lies in the scripting…
Basically I tried to use transform.localscale = new vector 3 (-1f, 1f, 1f) to rotate them but my sprite disappeared. A quick search on google showed me that localscale can cause that problem. I then tried to use spriterenderer.FlipX but it allows me to rotate the sprite, not the attached wallcheck gameobject.
Lastly I tried transform.rotate and it seemed to work but apparently I cheered too early, the sprite (and the wallcheck) keep spinning like they’re drunk. I’m sure there’s a simple solution but I can’t seem to be able to find it. Would anyone be so kind to help? ^__^
Here's my code for reference:
using UnityEngine;
using System.Collections;
public class EnemyPatrol : MonoBehaviour {
public float moveSpeed;
public bool moveRight;
public Transform wallCheck;
public LayerMask whatIsWall;
bool walled = false;
public float wallRadius = 0.2f;
void Update () {
walled = Physics2D.OverlapCircle(wallCheck.position,wallRadius,whatIsWall);
if (walled)
{
moveRight = !moveRight;
}
if(moveRight)
{
GetComponent<Rigidbody2D>().velocity = new Vector2(moveSpeed, GetComponent<Rigidbody2D>().velocity.y);
}else
{
GetComponent<Rigidbody2D>().velocity = new Vector2(-moveSpeed, GetComponent<Rigidbody2D>().velocity.y);
}
}
}
Your answer
Follow this Question
Related Questions
How do i get my character to move 3 Answers
Network flip 0 Answers
Sprite 2D Flip issue 1 Answer
How can I rotate a Sprite with the mouse? Like terraria or Starbound 0 Answers
Flip sprite sync Network problem 0 Answers