Как реализовать перелезания на объект в Unity2D?

Я столкнулся с такой проблемой: коллайдер игрока устроен таким образом, что при прыжке игрок может зацепится коллайдером руки за платформу, а сам игрок будет в воздухе, и на платформу забраться не сможет. Я уже нацепил на гейм обжект руки с коллайдером скрипт, который по идеи должен при контакте с платформой подбрасывать игрока, но скрипт не работает. Я делал это через RigidBody.AddForce, и возможно скрипт не может получить RigidBody персонажа. Если что, код скрипта:

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

public class ArmTriggerScript : MonoBehaviour
{
public Transform player;

private void OnCollisionEnter2D(Collision2D collision)
{
    player.GetComponent<Rigidbody2D>().AddForce(Vector2.up * 10f);
    Debug.Log("Получилось");
}
}

Как это должно выглядить:


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

Автор решения: Qwer

Нужно триггер поставить на край платформы.

  1. Как только персонаж попадает в триггер - отключаем управление (в твоём случае и Rigigbody как я понял).
  2. Проигрываем анимацию как персонаж залезает на край платформы.
  3. Включаем управление обратно.

введите сюда описание изображения

→ Ссылка