Unity3d 当一个游戏物体转动时,当我把一个物体放在上面。那个物体并没有像它应该的那样旋转,如何修复这个问题?

Unity3d 当一个游戏物体转动时,当我把一个物体放在上面。那个物体并没有像它应该的那样旋转,如何修复这个问题?,unity3d,2d,game-physics,collider,Unity3d,2d,Game Physics,Collider,首先是一个2D游戏。我做了一个旋转水磨。当我把我的角色放在上面的时候。角色不会像应该的那样旋转。它不会随着水磨转动,并试图保住它的位置。我怎样才能修好它 我尝试添加物理材质和一些效应器 ////Thats movement code void FixedUpdate() { if( (Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown(KeyCode.UpArrow)) && OnPlatform ) {

首先是一个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);
    } 
}

我希望我的旋转面和玩家像现实世界一样正常旋转。

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

子对象受其父对象旋转、缩放和位置的影响。这将使玩家旋转


只需对players转换使用transform.SetParent(watermillTransform)方法。当他需要没有父母时,将其设置为null。

是的,这实际上是一个完美的解决方案,但它可能会在将来导致一些问题,不过我现在将使用它。谢谢你,伙计。