2
\$\begingroup\$

I am using the Unity Engine and coding in C#.

I have a sprite as a parent with a main camera as a child so that the main camera follows the sprite. However, when pressing 'A' and 'D' to move the camera 'flips 180 degrees' due to me using transform.eulerangles is there anyway that the camera can be excluded from this 'flip'?

void Movement () { anim.SetFloat ("moveSpeed", Mathf.Abs (Input.GetAxisRaw ("Horizontal"))); if (Input.GetAxisRaw ("Horizontal") > 0) { transform.Translate (Vector3.right * moveSpeed * Time.deltaTime); transform.eulerAngles = new Vector2(0,0); } if (Input.GetAxisRaw ("Horizontal") < 0) { transform.Translate (Vector3.right * moveSpeed * Time.deltaTime); transform.eulerAngles = new Vector2(0,180); } } 
\$\endgroup\$

2 Answers 2

0
\$\begingroup\$

Hold a reference to your Camera, then set its localEurlerAngles to Vector3.zero.

Camera yourCamera; void Start() { yourCamera = GetComponentInChildren<Camera>(); } void Movement () { anim.SetFloat ("moveSpeed", Mathf.Abs (Input.GetAxisRaw ("Horizontal"))); if (Input.GetAxisRaw ("Horizontal") > 0) { transform.Translate (Vector3.right * moveSpeed * Time.deltaTime); transform.eulerAngles = new Vector2(0,0); yourCamera.transform.localEurlerAngles = Vector3.zero; } if (Input.GetAxisRaw ("Horizontal") < 0) { transform.Translate (Vector3.right * moveSpeed * Time.deltaTime); transform.eulerAngles = new Vector2(0,180); yourCamera.transform.localEurlerAngles = Vector3.zero; } } 
\$\endgroup\$
2
\$\begingroup\$

Rather than rotating a sprite, I would suggest you try multiplying the sprite's x scale by -1. This will flip the sprite without having to rotate anything.

\$\endgroup\$

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.