Unity:实例化的对象总是旋转生成器对象

时间:2018-10-09 08:56:50

标签: c# unity3d

我有一个僵尸。他去世时,应产生一个散弹枪弹药包,玩家可以收集。

我希望the弹枪弹药的旋转为0、0、0。

所以我使用了Quaternion.identity,但是弹药总是随着僵尸的旋转而产生。

这是我的代码:

Instantiate(shotgunMuni, transform.position, Quaternion.identity);

我尝试过的事情:

  • 尝试使用“ Quaternion.Euler(new Vector3(0,0,0))-无效,结果相同。

  • Google提供了一种解决方案,但是大多数情况下,他们会写“ use Quaternion.identity”-我正在使用它。.

1 个答案:

答案 0 :(得分:2)

如果ShotgunMuni是旋转对象的子代,则零旋转会将其旋转到其父代旋转。在您的情况下,它可能是僵尸的孩子,因此旋转。 我可以想到三种方法来使弹药零旋转生成。

  1. 在实例化对象后设置全局旋转。

    GameObject shotgunMuniInstance = Instantiate(shotgunMuni, transform.position, Quaternion.identity);
    shotgunMuniInstance.eulerAngles = Vector3.zero; // This is in global space
    
  2. 通过父对象的负向旋转子对象。

  3. 将零旋转的弹药作为父项进行单独的变换。