【问题标题】:How to make trail renderer not affected by z axis motion in unity 3d如何使跟踪渲染器不受统一 3d 中 z 轴运动的影响
【发布时间】:2025-11-28 10:40:02
【问题描述】:

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

有没有办法让轨迹渲染器只显示某些轴运动?

【问题讨论】:

    标签: c# unity3d unityscript game-development


    【解决方案1】:

    我能想到的最好方法是制作一个带有轨迹的单独对象,并在渲染开始之前将其移动到您想要轨迹的对象的位置,然后在渲染后重置其 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);
        }
    }
    

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

    【讨论】: