Пока игровой объект поворачивается, когда я ставлю объект поверх этого.что объект не вращается так, как должен, как это исправить? - PullRequest
1 голос
/ 15 мая 2019

Во-первых, это 2D игра. Я сделал вращающуюся водяную мельницу. Когда я ставлю свой персонаж поверх этого. Персонаж не вращается так, как должен. Он не поворачивается с помощью водяной мельницы и пытается сохранить свое положение. Как я могу это исправить?

Я пытался добавить физические материалы и некоторые эффекторы.

 ////Thats movement code   
   void FixedUpdate()
{

    if( (Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown(KeyCode.UpArrow)) && OnPlatform )
    {
        OnPlatform = false;     
        rb.velocity = Vector2.up * JumpForce;   
    }

    float move = Input.GetAxisRaw("Horizontal") * MovementSpeed;

    if( canWalk && move != 0 )
    {
        rb.velocity = new Vector2(move,rb.velocity.y);
    } 
}

Я хочу, чтобы моя вращающаяся поверхность и игрок вращались нормально, как в реальном мире.

1 Ответ

0 голосов
/ 16 мая 2019

Одним из решений было бы сделать игрока дочерним объектом водяной мельницы, пока он стоит на ней. Но то, что он больше не является дочерним объектом этого, когда не стоит на нем.

На дочерние объекты влияют вращение, масштабирование и положение родителей. Так что это будет вращать игрока.

Просто используйте метод transform.SetParent (watermillTransform) для преобразования игроков. Установите его в ноль, когда ему не нужно иметь родителя.

...