如何使轨迹渲染器不受 unity 3d 中 z 轴运动的影响

How to make trail renderer not affected by z axis motion in unity 3d

我正在制作 3D 游戏,我制作了具有轨迹渲染器组件的输入收集器。当有 z 动作运动时,预告片渲染器会显示一些向前运动效果。

有什么方法可以让轨迹渲染器只显示特定的轴运动吗?

我能想到的最好的方法是制作一个单独的带有拖尾的对象,并在渲染开始之前将其移动到您想要拖尾的对象的位置,然后在 post渲染,重置其 Z 位置。像这样:

[RequireComponent(typeof(TrailRenderer))]
public class ZLimitedTrail : MonoBehaviour {
    public Transform target;        

    private void Start() {
        Camera.onPreRender += SetPosition;
        Camera.onPostRender += ResetZPosition;
    }

    private void SetPosition() {
        // move it to where it should show
        this.transform.position = target.position;
    }

    private void ResetZPosition() {
        // reset Z position to 0
        this.transform.position = 
            new Vector3(this.transform.position.x, this.transform.position.y, 0);
    }
}

我还没有测试过,如果有效请告诉我。