【问题标题】:Unity C# Instantiate particle effects with correct rotationUnity C# 用正确的旋转实例化粒子效果
【发布时间】:2019-03-21 15:38:39
【问题描述】:

在 Unity 中建造一些炮塔时,我注意到我所有的子弹都朝一个方向飞,而不是我瞄准的那个方向!

我在网上寻求帮助,但 Quaternion.Euler 似乎并没有为我解决问题。 难道我做错了什么? (可能,但我可以帮助弄清楚是什么)

void Update()
{
            if(canShoot == true)
            {
                StartCoroutine(FireGun());
            }
}

IEnumerator FireGun()
{
    canShoot = false;

    var newBullet = Instantiate(bullet, gun.transform.position, Quaternion.Euler(0, gun.rotation.y, 0));

    yield return new WaitForSeconds(delay);
    canShoot = true;
}

非常感谢!

【问题讨论】:

  • 你想让你的子弹射向哪个方向(根据你枪的transform)?

标签: c# unity3d instantiation euler-angles


【解决方案1】:

如果您希望子弹与枪具有相同的旋转,只需将枪的旋转应用于子弹即可。

Instantiate(bullet, gun.transform.position, gun.transform.rotation);

【讨论】:

  • 非常感谢@BenRubin 出于某种原因,当我第一次尝试这样的事情时,我一直遇到错误,但它一定是 vector3 和 .rotate 的东西之间的混淆。好难记哈哈!
【解决方案2】:

如果您的相机指向您要拍摄的东西,您可以从中取出四元数并将其应用于子弹。

如果没有,您可以尝试使用炮塔的旋转并将其应用于子弹。

【讨论】:

  • 谢谢@TheChubbyPanda,由于某种原因,我第一次尝试这样做没有成功,但可能是因为我试图将旋转作为向量3 塞进欧拉中..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-27
相关资源
最近更新 更多