旋转面Rubik's Cube C#

时间:2013-03-22 14:06:06

标签: c# rotation unity3d rubiks-cube

我已经在互联网上寻找了几天,而且我无法找到一个能够很好地理解旋转我的魔方的答案。

我使用魔方魔方的Blender制作了我自己的3D模型并将其导入Unity,这是我将用来旋转面部的。

但我似乎并不理解旋转魔方的数学,我应该使用矩阵吗?如果是这样,我如何将它们结合在一起才能发挥作用?

我可以通过面部将砖块组合在一起来旋转单面,但是当你转动下一张面时它会完全破坏另一面。

非常感谢!

1 个答案:

答案 0 :(得分:4)

我的想法:将26个块中的每个块保持为单独的GameObject个对象(8个角,12个边,6个中心),每个块的原点位于立方体的中心。另外,您可以跟踪多维数据集当前位于哪个块,例如3D阵列。

然后当需要转动面部时:

  • 找出哪些块属于脸部。
  • 使用Unity的正常旋转功能围绕旋转轴(通过立方体的中间)旋转每个块。
  • 更新哪些块所在的信息。