我想让我的运动系统在Unity中,我稍后将用于Oculus。Unity3D一步一步移动
现在我用相机和一个叫做“rb”的刚体创建了一个对象。
// Perform movement
void PerformeMovement()
{
if (velocity != Vector3.zero) {
rb.position = (rb.position + velocity);
}
}
我计算我的其他班级的速度。 我想做2件事..
- 使运动感觉更像传送。现在它正顺利地转移到一个新的位置。
- 步骤后使刚体停止一两秒钟。所以这种压抑感不会像跑步一样。
任何API提示?不想找人为我写信...或者mby链接到类似的移动系统?
主要目标是使运动更平稳,因此我可以绕过造成恶心的冲突。
编辑!
现在我更新了我的代码>
void PerformeMovement()
{
if (velocity != Vector3.zero) {
if (timer % 60 == 1) {
rb.MovePosition (rb.position + velocity * 20);
}
}
}
它的工作原理有点像我想,但我怎么能现在处理冲突? 如果步长足够长,它只会穿过物体。如果这个步骤太小,它会卡住,然后随机飞走...
对于你的#2,做一个'private float lastMove;'然后做一个'lastMove = Time.timeSinceLevelLoad;'当你做一个动作时,在你允许之前检查if(lastMove + pauseTime> Time.timeSinceLevelLoad)下一步。 –
Timer是一个随机的int,每次Update()时都会加1。而我的C#经验是2天,所以我不能完全明白你的建议。 –
另外,如果你问Oculus上的[Unity子窗体](https://forums.oculus.com/viewforum.php?f=37),你很可能会让人们更好地了解如何制作好VR体验现场。 –