如何使轨迹渲染器不受 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);
}
}
我还没有测试过,如果有效请告诉我。
我正在制作 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);
}
}
我还没有测试过,如果有效请告诉我。