Unity3D - 从粒子系统旋转贴花粒子以匹配法线

Unity3D - Rotate Decal Particle from ParticleSystem to Match Normal

我正在尝试使用 ParticleSystem 作为贴花的廉价替代品,但我无法将粒子与所有正常表面对齐。

这是我得到的最接近的轴,除了倒置的 x 轴外,所有轴都是正确的。 (我可以看出这是错误的建筑方向 windows)

if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out RaycastHit hit))
{
    Quaternion rot = Quaternion.LookRotation(hit.normal);

    ParticleSystem.EmitParams emitParams = new ParticleSystem.EmitParams
    {
        position = hit.point + 0.01f * hit.normal,
        applyShapeToPosition = true,
        rotation3D = rot.eulerAngles
    };

    _particleSystem.Emit(emitParams, 1);
}

粒子系统设置

粒子系统渲染器设置

在过去的 24 小时内,我尝试了多种方法,但现在却迷失了方向,尽管它可能很简单。

抱歉图像尺寸 - 将它们缩小与文本混淆。

编辑:编辑器和项目设置为2020.3.15F2,使用URP。

我终于弄明白了,但由于没有人能够回答,我将添加解决方案,以防它能帮助到其他人。

1: 我在旋转时把 hit.normal 倒过来了。

if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out RaycastHit hit))
{
    Quaternion rot = Quaternion.LookRotation(-hit.normal);
    ParticleSystem.EmitParams emitParams = new ParticleSystem.EmitParams
    {
        position = hit.point + 0.01f * hit.normal,
        rotation3D = rot.eulerAngles
    };

    _bloodshotParticles.Emit(emitParams, 1);
}

2:将渲染类型从 Billboard 更改为 Mesh,并设置了 Quad