如何在跳跃时使游戏对象旋转,然后一旦它与另一个游戏对象发生碰撞,就能顺利返回原始旋转?

时间:2015-09-12 18:13:37

标签: c# unity3d rotation unity5

如何在“空中”跳跃时使游戏对象旋转,然后一旦与另一个游戏对象发生碰撞,就会顺利返回原始旋转,如下面的视频所示:https://youtu.be/iOV0Apuwj94

我不希望立方体在与某些东西发生碰撞后突然恢复到原来的旋转状态。就像在视频中一样,立方体的旋转恰好在碰撞时(当它碰到地面时感觉很自然)。我还希望立方体知道未来碰撞的位置,以便它可以根据每个游戏对象的位置修改速度,旋转等(这样,旋转也总是正确的。)

我已经多次尝试微调旋转,但我总是无法正确地进行调整(+预测未来的碰撞对我来说是未知的)。我没有完成这项任务的经验,搜索网络也没有帮助。我希望社区提供任何代码,指导或帮助。谢谢你的回答。

1 个答案:

答案 0 :(得分:0)

这是我能想到的伪代码,它可能对你有用:

while(cube.y> 0)//or greater than the right value of y
{
if(cube.y= 0)//or the right value of y
  {//stop performing rotation}
//perform rotation
}

这可能只是解决了你所有的问题,因为你正在使用一个带有碰撞器的立方体的RigidBody,它应该会因重力而自动对准地面,在我看来,让它感觉更加自然。