首页 > 解决方案 > (Unity 3D C#) 传送带物理

问题描述

所以,我正在尝试创建一个平板输送机,一个块可以坐在上面并移动,但我想让它能够转动,所以我不能使用rigidbody.moveposition,我尝试使用addforce,但我不能让它工作正确地不使用 impule 或速度变化,因为它会使矿石滚动(它们是立方体)。我最近的尝试是使用速度,但我不知道如何让它在改变角落时保持原来的速度,这样它就不会搞砸了。

.

如果这没有多大意义,这里有一个更好的解释,我正在尝试在网格上创建一个传送系统,其中每个插槽都有一个方向,并且一个立方体沿着它移动,每当立方体到达转弯时,我想要立方体保持向前移动一小段距离,因此它不会立即改变方向并沿着新的传送带前进,因为这样,它会立即改变并坐在传送带的边缘,而不是继续沿该方向移动.

编辑:我目前正在工作,我现在的问题是立方体在接触传送带时会弹跳,所以它们不会平放在传送带上,我可以通过限制所有立方体旋转来解决这个问题,但有时它会冻结矿石传送带,不允许它移动。

标签: unity3d

解决方案


由于您没有提供代码,我不知道您要做什么,所以我将给出自己的解决方案:

object.transform.position = Vector3.MoveTowards(target.transform.position, endpoint.position, Time.deltaTime * speed)

然后,当它与它发生碰撞时,它可以关闭这个脚本,所以它停留在最后。

target是你想要移动endpoint的地方,是你想要它结束的地方。

将端点设置为游戏对象,并将其放在传送带的末端,这样对象就会朝前移动,看起来就像传送带。


推荐阅读