Good afternoon, currently my player shakes when you move it to the left or right. I am using cinemachine 2d virtual cammera.
Here's my movement script:
using Microsoft.Cci; using UnityEngine; public class PlayerMovement : MonoBehaviour { private float horizontal; private float speed = 8f; private float jumpingPower = 5f; private bool isFacingRight = true; public bool OnGround = true; public int JumpNum = 1; [SerializeField] private Rigidbody2D rb; [SerializeField] private Transform groundCheck; [SerializeField] private LayerMask groundLayer; void Start() { rb = GetComponent<Rigidbody2D>(); } private void OnCollisionEnter2D(Collision2D collision) { OnGround = false; Debug.Log("InAir false"); } private void OnCollisionExit2D(Collision2D collision) { OnGround = true; Debug.Log("InAir True"); } void Update() { horizontal = Input.GetAxisRaw("Horizontal"); if(Input.GetKeyDown(KeyCode.W) && JumpNum < 2) { rb.velocity = new Vector2(rb.velocity.x, jumpingPower); JumpNum++; //double jump } if (Input.GetKeyDown(KeyCode.W) && !OnGround && JumpNum >= 2) { rb.velocity = new Vector2(rb.velocity.x, jumpingPower); JumpNum = 1; //if jumpnum == 2, then reset jumpNum } // if (Input.GetKeyDown(KeyCode.W) && rb.velocity.y > 0f) // { //rb.velocity = new Vector2(rb.velocity.x, rb.velocity.y * 0.5f); // OnGround= false; //} //redundant Flip(); } private void FixedUpdate() { rb.velocity = new Vector2(horizontal * speed, rb.velocity.y); } //private bool IsGrounded() // { // return Physics2D.OverlapCircle(groundCheck.position, 0.2f, groundLayer); // } //doesn't work private void Flip() { if (isFacingRight && horizontal < 0f || !isFacingRight && horizontal > 0f) { isFacingRight = !isFacingRight; Vector3 localScale = transform.localScale; localScale.x *= -1f; transform.localScale = localScale; } } } I looked at similar questions such as: https://www.reddit.com/r/Unity2D/comments/o84k7x/weird_shaking_with_player_controllercinemachine/
https://stackoverflow.com/questions/35158051/twitching-objects-in-unity-during-camera-movement-in-2d
But the answers to those questions did not help me.
Is there any way to fix the player's shaking when moving it left or right?
Flip()every single Update? \$\endgroup\$void Update()tovoid LateUpdate()but it didn't change anything. \$\endgroup\$