在调用OnTriggerExit的位置进行插值

时间:2018-08-06 01:27:28

标签: c# unity3d

在我的代码中,我使用OnTriggerExit来检测对象何时离开前一个多维数据集的空间,然后创建另一个多维数据集。但是,由于时间间隔的原因,多维数据集放置的时间稍晚,从而产生了这些大小不同的间隙:

Cubes with gaps

如何摆脱它们,并正确放置立方体? 我很确定我需要进行插值,但是我不确定究竟要做什么/如何做。如果需要,我有最后一个多维数据集,最后一帧和当前变换以及当前速度(以Vector3形式)。谢谢!

2 个答案:

答案 0 :(得分:0)

离开时,将this立方体的位置设置为lastCube.position + size_offset,其中size_offset很大,立方体在其移动方向上。

您已经具有对上一个多维数据集的引用(由于OnTriggerExit supplying you with a reference to the other collider,您可以从中获得所需的Transform)。

答案 1 :(得分:0)

我不认为这完全是deltatime的错。物理引擎具有按时间步长,如果速度为x,则对象将按物理步长x * dt行进。因此,在触发下一轮触发器时,该对象已经穿透。您既可以使用刚体(更容易,但可能无法提供预期的结果),也可以使用该对撞机检查穿透深度并将其偏移