我有两行代码,我可以告诉他们,完全相同。然而,一个人应该按照应有的方式工作,而另一个人什么都不做。我知道这听起来很愚蠢,但这让我感到疯狂,任何建议都可以挽救生命:
首先是有效的:
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的一切都完全错了吗?
答案 0 :(得分:0)
一些想法:
playerRigid.isKinematic
是false
playerRigid
是否未入睡(IsSleeping()
应返回false)playerRigid
上没有约束(即playerRigid.constraints
设置为None
)