Как реализовать самостоятельное перемещение игрока, двигающегося вместе с движущейся платформой? Unity2D

Рейтинг: 0Ответов: 1Опубликовано: 25.02.2023

Проблема вот в чём: мне нужна управляемая платформа зайдя на которую игрок сможет перемещаться вместе с ней, НО!, он должен быть способен ходить по ней во время движения.

Пытался реализовать вот этим кодом:

    private void OnTriggerEnter2D(Collider2D collision) 
    {
         if (collision.tag == "Compartment")
         {
             this.transform.parent = collision.transform;
         }
    }

    private void OnTriggerExit2D(Collider2D collision)
    {
         if (collision.tag == "Compartment")
         {
              this.transform.parent = null;
         }
    }

Движение платформы:

    void FixedUpdate()
    {
        transform.position = new Vector2(transform.position.x + 1 * 
        Time.deltaTime, transform.position.y);
    }

Но при заходе на платформу игрок хоть и перемещается вместе с ней, но абсолютно теряет возможность перемещаться по ней самостоятельно, "зависая" в одной точке. Как будет умнее сделать? (игра с точкой обзора как в первой гта) Мои знания на уровне ниже чайника, прошу объяснять доступнее

Изображения для справки! Иллюстрации проблемы не содержит Изображения для справки! Иллюстрации проблемы не содержит

Ответы

▲ -1

Если движение реализовано через физику (то есть с использованием RigitBody) то двигая платформу ты наверняка получишь движение персонажа вместе с ней. Как минимум потому, что персонаж будет "падать" на платформу из-за силы притяжения и под действием этой силы оставаться на ее поверхности.

Как реализовать движение персонажа на 3д примерах я писал здесь: Правильная реализация передвижения персонажа

на 2д подход уверен будет максимально близким к описаному в тойтеме.