Unity C#通过正确的旋转实例化粒子效果

问题描述 投票:0回答:2

在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;
}

非常感谢!

c# unity3d instantiation euler-angles
2个回答
1
投票

如果您希望子弹与枪具有相同的旋转角度,只需将枪支旋转到子弹上即可。

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

1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.