@MegaTochka

Unity 2d при повороте персонаж проваливается сквозь землю и не прыгает, что делать?

При повороте скрипт проваливается сквозь колайдер и находится внутри земли, игрок не может прыгать, что с этим сделать?
Скрипт
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;
    }
  }
}

Скрины
6124a64017f1a765522901.png
6124a7340ad9d996955265.png6124a74c2e7c7080059445.png
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
Возможно ты не в коде совершил ошибку , а в самом редакторе
Ну или при повороте скрипт меняет позицию игрока под Collider
, не достаточно информации как по мне .
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы