0

在统一 5.1.1f1 中,我有一个由脚本移动的立方体。每当刚体接触到它时,它就会将刚体移出它的路径。

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

例如,在图片中,红色是可移动的立方体,灰色是刚体 -在此处输入图像描述

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

来源在这里

我也在这里问了这个问题

立方体随着脚本移动——

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

4 回答 4

0

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

于 2015-07-27T11:24:05.417 回答
0

正确答案

抱歉,我没有意识到您打算移动的是没有刚体的物体。如果是这种情况,并且您必须使用Vector3.MoveTowards()or transform.Translate(),那么在FixedUpdate()function 中执行此操作而不是Update()useTime.fixedDeltaTime而不是Time.deltaTimethis 将使您的运动增量同步到 Unity 的物理帧,这与渲染帧的间隔时间不同。这不是错误。

原始答案

您不想使用Vector3.MoveTowards()transform.Translate()使用要与其他物体交互的刚体。他们将完全按照您告诉他们的方式移动,无需任何互动。你需要rigidbody.AddForce()改用。

于 2015-07-27T13:50:43.023 回答
0

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

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

于 2015-07-28T01:00:36.853 回答
0

出现此问题是因为您的刚体(蓝色立方体)进入睡眠状态。这可以通过添加 GetComponent ().sleepThreshold = -1; 来解决。到 PlayerMovement.cs 的 Start() 方法。

于 2015-07-28T08:04:22.087 回答