当一个游戏对象转向时,当我将一个对象置于其上方时。该对象不会旋转,应该如何解决?

时间:2019-05-15 19:20:12

标签: unity3d 2d game-physics collider

首先是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 :(得分:0)

一种解决方案是让玩家站在水磨坊上时成为水磨坊的子对象。但是当他站在上面时,不再是它的孩子对象。

子对象受其父对象的旋转,缩放和位置影响。这样会旋转播放器。

只需在播放器上使用transform.SetParent(watermillTransform)方法即可。当他不需要父母时,将其设置为null。