Задать вопрос
@Roma_K01
Студент инженер и начинающий разработчик игр

Как сделать чтобы игрок реагировал на платформу только прыгая на нее сверху?

В игре прыжок осуществляется автоматически при контакте коллайдеров игрока(Box Collider) и платформы(Edge Collider), не получается сделать чтобы прыжок работал только при касании с платформой сверху, а снизу просто пролетал и игнорировал ее.
код:
private void OnCollisionEnter2D(Collision2D other)
    {




        if (move == true)

        {


            

                if (other.gameObject.tag == "Platform")
            {
               
                rb.velocity = Vector2.zero;
                rb.AddForce(transform.up * hightjump, ForceMode2D.Impulse);
                GetComponent<SpriteRenderer>().sprite = stay;
                GetComponent<AudioSource>().Play();
                other.transform.tag = "DelPlatform";



            }
}
  • Вопрос задан
  • 318 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
DanielMcRon
@DanielMcRon
C# && Unity
Не помню, на все ли колайдеры распространяется Platfrom Effector2d, но попробуйте его. Там уже автоматически будет вхождение снизу, только галочки поставьте если надо и для него уже скрипты не нужны
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
trapwalker
@trapwalker
Программист, энтузиаст
Добавьте в условие проверку знака вертикальной скорости игрока. Если игрок летит вниз и находится выше платформы, то прыжок, иначе ничего не делать
Ответ написан
@NIKROTOS
Начинающий программист.
Создайте коллайдер снизу.
1) при пересечении нижнего коллайдера меняем свойства платформы на пропуск;
2)при пересечении верхнего коллайдера делаем платформу плотной(падение сверху и прыжок снизу).
Возможно придётся сделать коллайдер снизу игрока,чтобы он не застревал.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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