Unity3D 旋转一个方块

我想要实现一个旋转立方体。

目标是这样的:
按下上下左右键的时候,立方体会向上下左右方向旋转90度。
不是要一下子就转90度,而是像Slerp一样有渐变效果。

但是用Slerp实现会在旋转多次的时候旋转轴会转变导致旋转方向出错。

用Rotate加上time.deltaTIme会随着速度增大产生较大误差。

请问谁能够提供一种好的方法,给出C#代码实现这一功能?
想了几天了都没有完美解决...
不要使用插件。

各位能给我一个实现这个功能的Demo吗?
代码也可以。

我自己写的代码只能实现一部分,因为转动后转动轴就变了,不知道如何确定转动轴。

不想使用几十个if来确定所有情况。

http://game.ceeger.com/forum/read.php?tid=22344

用世界坐标勉强解决了,效果不好将就着用。此贴终结。