立方体穿过刚体

时间:2015-07-27 11:06:45

标签: unity3d game-physics unityscript rigid-bodies

统一5.1.1f1 我有一个通过脚本移动的立方体。每当刚体与其接触时,它会将刚体移出其路径。

然而,在某些情况下,rigidBody位于立方体的路径中,并且立方体穿过刚体。

例如,如图中所示,红色是可移动的立方体,灰色是刚体 - enter image description here

正如您所见,红色立方体可以移动到灰色刚体中。

来源为here

我还问过问题here

多维数据集随脚本移动 -

 transform.position = Vector3.MoveTowards (transform.position, 
 patrolPoints [currentPoint].position, moveSpeed * Time.deltaTime);

4 个答案:

答案 0 :(得分:0)

确保将“碰撞检测”设置为连续。

答案 1 :(得分:0)

正确答案

对不起,我没有意识到这是没有你想要移动的刚体的对象。如果是这种情况,您必须使用Vector3.MoveTowards()transform.Translate(),请使用FixedUpdate()函数代替Update()并使用Time.fixedDeltaTime代替{Time.deltaTime 1}}这将使你的动作以增量同步到Unity的物理帧,这些物理帧以与渲染帧不同的间隔发生。这不是一个错误。

原始答案

您不希望将Vector3.MoveTowards()transform.Translate()用于要与其他实体互动的刚体。它们将完全按照您告诉他们的方式移动而不进行任何交互。您需要改为使用rigidbody.AddForce()

答案 2 :(得分:0)

将rigidBody添加到红色立方体解决了这个问题。

我应该把这个问题陈述放在统一错误中吗?

答案 3 :(得分:0)

出现此问题是因为您的刚体(蓝色立方体)变得睡着了。这可以通过添加GetComponent().sleepThreshold = -1来修复;到PlayerMovement.cs的Start()方法。