Как сделать так, чтобы рендерер следа не зависел от движения оси Z в Unity 3D?
Я делал 3D-игру, и я сделал входной коллектор с компонентом рендеринга следов. Когда есть движение z action, рендерер трейлера показывает некоторые эффекты движения вперед.
Есть ли способ заставить рендеринг следа показывать только определенное движение оси?
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);
}
}
Я не проверял это, поэтому дайте мне знать, если это работает.