1

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

这是我得到的最接近的轴,除了倒x轴之外,所有轴都正确。(我可以看到这是构建窗户的错误方式)

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。

4

1 回答 1

1

我终于设法弄清楚了,由于没有人能够回答,我将添加解决方案,以防它可以帮助其他人。

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为。MeshQuad

渲染器修复/编辑

于 2021-09-20T11:37:41.963 回答