Персонаж толкает другие обьекты, хотя не должен

я начинающий гейм разработчик. Я столкнулся с проблемой. У меня есть сцена на которой есть обьекты: персонаж(на нем висит камера и его текстура), нижний пол и барьеры которые стоят по краям(барьеры и пол обьеденены в один обьект). На персонаже конечно-же есть скрипт ходьбы, RigitBody2D,BoxCollider2D; И вот в чем проблема: Когда персонаж подходит к стене он начинает ее двигать в сторону своего передвижения

Я даже для стен написал отдельный скрипт:

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;

public class WallBug : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        Vector3 position = transform.position;
        position.x = 0;
        position.y = 0;
        position.z = 0;
        transform.position = position;
    }
}

Который каждый кадр обнуляет их позицию

Но ничего не помогает(((

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

public class PlayerMove : MonoBehaviour
{
    public float speed;

    private Rigidbody2D rigidbody2d;
    private SpriteRenderer spriterenderer;
    private Animator animator;
    void Start()
    {
        rigidbody2d = GetComponent<Rigidbody2D>();
    }

    private void Update()
    {

        Vector3 position = transform.position;
        position.x += Input.GetAxis("Horizontal") * speed;

        transform.position = position;

        if (Input.GetAxis("Horizontal") != 0)
        {
            if (Input.GetAxis("Horizontal") < 0f)
            {
                spriterenderer.flipX = true;
            }
            else
            {
                if (Input.GetAxis("Horizontal") > 0f)
                {
                    spriterenderer.flipX = false;
                }
            }
           
        }
    }
}

если что вот код передвижения игрока Отзовитесь мудрецы которые помогут мне исправить этот баг


Ответы (0 шт):