2015-12-16 4 views
1

Я использую LineRenderer для представления «лазерного луча» в моей игре.Unity3D: LineRenderer cut by camera

Однако, когда луч идет назад (то есть конечная точка находится за игроком), камера разрезает линию.

Скриншот, чтобы объяснить ситуацию:

LineRenderer cut by camera

Синим: мой лазерный луч. В пунктирном красном: поведение, которое я хочу.

Как я вижу, проблема в том, что камера представляет собой прямоугольник, а не нулевую точку измерения (как и человеческий глаз, более или менее).

Есть ли способ обмануть это и получить линию, чтобы перейти к краю экрана?

ответ

1

Сделайте плоскость ближнего клипа меньшим. Но это увеличит шансы на конфликт z-buffer (вы увидите некоторые странные фигуры на текстурах).

Вблизи плоскости клипа почти игнорирует что-либо ближе к камере, чем это значение, и то же самое для дальнего клипа. Таким образом, делая это 0.01 (наименьшее значение), вы можете увидеть больше. Но опять-таки, z-buffer получает большой успех, и вы увидите черную полупрозрачную форму здесь и там. Вы можете ограничить этот эффект, уменьшив дальность клипа. Так что это всего лишь вопрос нахождения правильных значений.

+0

На данный момент нет ошибок, и работает (почти) как шарм (все еще разрезается, когда луч находится прямо в центре камеры, но эй!) – Mat

+0

Была опечатка, странная вещь не ошибка, я имею в виду большой успех, а не ошибка, это технологические ограничения. Если вы хотите увидеть его, сделайте так, чтобы вы сделали клип, достаточно большой, и ваш достаточно маленький. Затем, когда вы перемещаетесь, под некоторым углом вы увидите фигуры на больших текстурах. – Everts

Смежные вопросы