c# - 旋转面魔方C#

标签 c# rotation unity3d rubiks-cube

我已经在互联网上搜索了几天,但我真的找不到一个我能很好理解的答案来旋转我的魔方。

我已经使用魔方的 Blender 制作了自己的 3D 模型,并将其导入到 Unity,这就是我要用来旋转面孔的工具。

但我似乎不明白旋转魔方所涉及的数学,我应该使用矩阵吗?如果是这样,我该如何将它们结合在一起才能正常工作?

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

非常感谢!

最佳答案

我的想法:将 26 个方 block 中的每一个都保留为单独的 GameObject 对象(8 个角、12 条边、6 个中心),每个方 block 的原点位于立方体的中心。您单独跟踪哪个 block 当前在立方体上的位置,例如在 3D 阵列中。

然后当需要转脸的时候:

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

关于c# - 旋转面魔方C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15572326/

相关文章:

javascript - 带有TextGeometry和旋转问题的AxisHelper上的标签

android - 屏幕旋转导致顺序调用 SQLite 出现问题

c# - 如何更改父元素的子属性?

android-activity - 在 Unity Android 插件中包含自定义 Activity (不覆盖 UnityPlayerActivity)?

c# - 委托(delegate).DynamicInvoke

c# - 设置属性是规则对 FluentValidation 有效

Javascript IE 转换矩阵计算

c# - 如何在控制台 C# 中清除以前的数据?

c# - 读取 XML 和未声明的命名空间

unity3d - 在编辑器播放模式下显示从AssetBundle加载的 Sprite 时出现问题