При запуске сцены игрок перемещается немного вверх
Я изучаю unity и вот попробовал сделать сцену но в процессе разработки столкнулся с проблемой. При запуске сцены игрока перемещает вверх на 0.015 по оси y. В коде есть проверка находится ли персонаж на земле, а так как у меня он не находится то я не могу прыгать. Вот код:
{
public float speed = 5f;
public float jumpForce = 300f;
private bool direction = true;
bool isGrounded;
private Rigidbody2D rb;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
void FixedUpdate()
{
float move = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(move * speed, rb.velocity.y);
if (move > 0 && !direction) {
flip();
}
else if (move < 0 && direction){
flip();
}
}
private void Update()
{
if (Input.GetKeyDown("w") && isGrounded)
{
rb.AddForce(Vector2.up * jumpForce);
}
}
private void flip()
{
direction = !direction;
Vector2 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
private void IsGroundedUpate(Collision collision, bool value)
{
if (collision.gameObject.tag == ("Ground"))
{
isGrounded = value;
}
}
void OnCollisionEnter(Collision collision)
{
IsGroundedUpate(collision, true);
}
void OnCollisionExit(Collision collision)
{
IsGroundedUpate(collision, false);
}
}

