2016-04-18 45 views
0

我想用RotateAround旋转魔方的平面,我的问题是确定某个平面需要旋转的轴向量,我总是需要使用通过中心gameobject但使用Vector3.up /向下/向右/向左的矢量是无用的,尤其是如果立方体旋转并改变位置,有什么建议吗? :\在Unity中旋转魔方的平面

例如,这是我用旋转绿色平面的线,绿色的是在这种情况下,中心的游戏对象

Parent.transform.RotateAround(green.transform.position,WHAT AXIS VECTOR?,100*Time.deltaTime); 
+1

嗨msLangdon,只是供参考,我可以警告你,这是*非常难以做好。对初学者或学习者程序员来说这不是一份工作。一个基本的提示,请注意,Transform.Rotate可以**在本地轴**(阅读doco)。这可能会帮助你。如果你看到我的意思,它总是“本地化”。 – Fattie

+0

好吧,我不是一般的编程和数学初学者,我对团结有点新:\难道这很难吗? :\ – msLangdon95

+1

好的,首先掌握本地和世界坐标轴之间的区别,享受 – Fattie

回答

1

我会做的是以下几点:

上的位置在每一边的6个中央部分的每一个我会放置一个空的游戏对象。我会手动旋转它们,使它们都具有从地表向外的本地Y轴(切换到Unity中的本地空间)。

现在,每当我需要一个侧面的旋转我会:

  • 父所有9个侧面的下我的空游戏对象为侧
  • 旋转父游戏对象90或 - 围绕局部Y轴旋转90度
  • 未父所有9个(让他们准备好进入下一个周期)

所有你需要的是从Unity Docs检查这些了:transform.parent ,transform.localEulerAngles和一些旋转函数,可能Mathf.Lerp和Vector3.Lerp用于平滑旋转。

+1

这是非常正确的。 *不幸*,完全放弃了“在Unity”中移动东西的麻烦;整个事情几乎是不可能的,除非你遵循mvc模式,并且你有一个数据结构能够理解所有移动的东西。这是一个真正的痛苦! – Fattie

+0

这确实是一个真正的痛苦:|但是谢谢我还在尝试 – msLangdon95