M
M
MegaTochka2021-08-23 11:03:13
2D
MegaTochka, 2021-08-23 11:03:13

Unity 2d when turning the character falls through the ground, what should I do?

When rotated, the script falls through the collider and is inside the ground, help!

Script
using System.Collections;
using System.Collections.Generic;
using UnityEngine;



namespace Assets.Scripts
{
    public class PlayerController : MonoBehaviour
    {
        private float moveInput;
        private Rigidbody2D rigidbody;
    private bool facingRight = true;
    private bool isGrounded;
    public Transform feetPos;
    public float checkRadius;
    public LayerMask whatIsGrounded;
    
        [SerializeField] private float speed;
        [SerializeField] private float jumpForce;
    

        private void Start()
        {
            rigidbody = GetComponent<Rigidbody2D>();
        }

        private void FixedUpdate()
        {
            moveInput = Input.GetAxis("Horizontal");
            rigidbody.velocity = new Vector2(moveInput * speed, rigidbody.velocity.y);
      if(facingRight == false && moveInput > 0)
      {
        Flip();
      }
      else if(facingRight == true && moveInput < 0)
      {
        Flip();
      }
    }
    void update()
    {
      isGrounded = Physics2D.OverlapCircle(feetPos.position, checkRadius, whatIsGrounded);
      
      if(isGrounded == true && Input.GetKeyDown(KeyCode.Space))
      {
        rigidbody.velocity = Vector2.up * jumpForce;
      }
    }
    void Flip()
    {
      facingRight = !facingRight;
      Vector3 Scaler = transform.localScale;
      Scaler.x *= -1;
      transform.localScale = Scaler;
    }
  }
}


Screenshots
612355b3985f5475573189.png
612355e35594c138076654.png612356093098f305313623.png

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question