如何使跟踪渲染器不受统一 3d 中 z 轴运动的影响

Posted

技术标签:

【中文标题】如何使跟踪渲染器不受统一 3d 中 z 轴运动的影响【英文标题】:How to make trail renderer not affected by z axis motion in unity 3d 【发布时间】:2017-09-21 01:36:57 【问题描述】:

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

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

【问题讨论】:

【参考方案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);
    

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

【讨论】:

以上是关于如何使跟踪渲染器不受统一 3d 中 z 轴运动的影响的主要内容,如果未能解决你的问题,请参考以下文章

绘制 3D 非正交坐标

三.JS旋转投影使y轴变成z轴

Three.JS旋转投影,使y轴成为z轴

如何使用 3D 中的变换矩阵围绕 Z 轴旋转?

如何从 3 轴加速度计数据中获取运动大小

为 3D 空间中的点生成随机运动