如何使单位变换轴看特定方向

时间:2017-09-22 09:38:22

标签: unity3d rotation transform

我有这样的层次结构:

 --gun
  \--bullet

在unity3d中,我希望子弹特定轴与枪特定轴相交

像这样:

enter image description here

请注意Bule(z axis

这是枪的变形

enter image description here

我想旋转球的变换,使球的Z轴与枪Y轴重合

像这样:

enter image description here

那我怎么能这样做?感谢

2 个答案:

答案 0 :(得分:1)

一个简单的LookAt应该可以胜任:

bullet.transform.LookAt( bullet.transform.position + gun.transform.up ) ;
  

LookAt

     

旋转变换,使前向矢量指向给定的世界位置。

如果希望变换的向上矢量指向特定方向,则可以指定其他矢量。

答案 1 :(得分:1)

我认为使用LookRotation可能会解决您的问题。

bullet.transform.rotation = Quaternion.LookRotation(gun.transform.forward, gun.transform.up);

它的作用是它根据向前和向上矢量创建一个旋转。所以你可能想要设置一些与我的例子不同的东西,但希望你能得到这个想法。