简单的速度不起作用?

时间:2016-01-09 20:01:21

标签: c# unity3d velocity

我有两行代码,我可以告诉他们,完全相同。然而,一个人应该按照应有的方式工作,而另一个人什么都不做。我知道这听起来很愚蠢,但这让我感到疯狂,任何建议都可以挽救生命:

首先是有效的:

public Rigidbody2D pBlock;

if (playerReference.GetComponent<Player>()){
Debug.Log ("got to debug");
            pBlock.velocity = new Vector2(10, 0);
        }

现在没有:

       public Rigidbody2D playerRigid;

  public void Update()
    {
        if (conveyorBeltLeft.conveyorPlayerLeft) {
         Debug.Log ("got to debug");
            playerRigid.velocity = new Vector2(-100, 500000);
        }

第一个,物体移动,第二个,它没有。在他们两个中,调试都会消失。请有人向我解释一下,到目前为止,我所学到的关于Unity的一切都完全错了吗?

1 个答案:

答案 0 :(得分:0)

一些想法:

  • 检查playerRigid.isKinematicfalse
  • 检查playerRigid是否未入睡(IsSleeping()应返回false)
  • 检查playerRigid上没有约束(即playerRigid.constraints设置为None