Как предотвратить "прилипание" Rigidbody к коллайдеру объектов в Unity?
Если прыгнуть на стену и продолжать кнопку движения - персонаж прилипает к стене и не соскальзывает. Пробовал играться с гравитацией, но не привело ни к чему адекватному. 
Как можно решить эту проблему, чтобы персонаж всегда подвергался притяжению?
[SerializeField] private float moveSpeed = 7f;
[SerializeField] private float jumpForce = 14f;
private float movX = 0f;
private void Start()
{
rb = GetComponent<Rigidbody2D>();
anim = GetComponent <Animator>();
sr = GetComponent<SpriteRenderer>();
capcoll = GetComponent<CapsuleCollider2D>();
}
// Update is called once per frame
private void FixedUpdate()
{
movX = Input.GetAxis("Horizontal");
float movY = Input.GetAxis("Vertical");
rb.velocity = new Vector2(movX * moveSpeed, rb.velocity.y);
if (isGrounded() && Input.GetButtonDown("Jump"))
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
}
}
Ответы (1 шт):
у тебя здесь потенциально 2 проблемы:
у тебя постоянная скорость толкающая на ступеньку с постоянной силой. Вполне возможно что использование
AddForceчастично поправит ситуацию.А самый корень проблемы в том как ты добываешь
isGrounded. Если бы ты прочел статью полностью на которую я сослался ru.stackoverflow.com/q/936026/186752 то ты бы увидел тамошнюю реализациюisGroundedболее хорошего порядка
Здесь ты дотрагиваешся к ступеньке которая является и полом одновременно поэтому флаг isGrounded() срабатывает и изменение велосити применяется.
Если бы ты проверял isGrounded() только под персонажем (как было показано внутри статьи ближе к концу) - у тебя бы не зашло внутрь ифа и прыжок бы не сработал повторно и персонаж бы упал.
PS: и все равно по скриншоту не видно что у тебя капсуль коллайдер
PS2: То есть проблема все равно в том что описано в той статье и ты не применил всю информацию там поданую на практике. Перечитай статью заново.
PS3: И то есть проблема в том месте которое ты не запостил в вопросе :) Акуратнее создавай вопросы)