Unity 6.3
0 онлайн 72 гостей 3 в системе
Вход

TrailRenderer

класс в UnityEngine

Наследуется от:Renderer

Выполнено в:UnityEngine.CoreModule

Описание

Создает визуальный след полигонов, который следует за движением GameObject, полезный для подчеркивания движения или создания динамических визуальных эффектов.

Используйте Trail Renderer для привязки эффекта к позиции движущегося GameObject. Trail Renderers помогают создавать визуальные эффекты, такие как следы ракет, дуги поворота оружия или выделение траектории быстро движущихся объектов. Они обеспечивают динамический способ визуального подчеркивания движения, что делает их полезными для эффектов в играх, ориентированных на действие, или сценах с быстрым движением объектов.

Компонент работает, храня позицию GameObject через интервалы, определенные свойством TrailRenderer.minVertexDistance и соединяя эти точки для создания непрерывного лентообразного следа. Вы можете контролировать продолжительность следа с помощью свойства TrailRenderer.time, и вы можете настроить его внешний вид, включая ширину и цветовые градиенты, с помощью свойства Material.

Для управления эффектом следа используйте метод TrailRenderer.Clear. Этот метод мгновенно удаляет любые существующие сегменты следа и не позволяет Trail Renderer добавлять новые точки.

Дополнительные ресурсы: Transform, Material, LineRenderer, TrailRenderer.Clear.

В следующем примере кода показано, как подключить Trail Renderer к движущемуся GameObject и настроить некоторые его основные свойства. Присоедините этот скрипт к пустым GameObject в вашей сцене.

// Ensure the GameObject has a TrailRenderer component
using UnityEngine;

[RequireComponent(typeof(TrailRenderer))] public class SimpleTrail : MonoBehaviour { public float moveSpeed = 3.0f; public float circleRadius = 2.0f;

private TrailRenderer trail; private float angle = 0f;

void Start() { trail = GetComponent<TrailRenderer>();

// Configure the trail's appearance trail.time = 1.5f; // How long the trail lasts in seconds trail.startWidth = 0.3f; // Width at the newest part of the trail trail.endWidth = 0f; // Width at the oldest part of the trail

// Set a color gradient (e.g., white fading to transparent red) Gradient gradient = new Gradient(); gradient.SetKeys( // Color keys: White at the start, Red at the end new GradientColorKey[] { new GradientColorKey(Color.white, 0.0f), new GradientColorKey(Color.red, 1.0f) }, // Alpha keys: Opaque at the start, Transparent at the end new GradientAlphaKey[] { new GradientAlphaKey(1.0f, 0.0f), new GradientAlphaKey(0.0f, 1.0f) } ); trail.colorGradient = gradient; GameObject head = GameObject.CreatePrimitive(PrimitiveType.Sphere); Transform headTransform = head.GetComponent<Transform>(); headTransform.SetParent(transform); headTransform.localPosition = Vector3.zero; headTransform.localScale = Vector3.one * 0.2f; }

void Update() { // Move the GameObject in a circle angle += moveSpeed * Time.deltaTime; float x = Mathf.Cos(angle) * circleRadius; float z = Mathf.Sin(angle) * circleRadius; transform.position = new Vector3(x, 0, z); } }

Свойства

Свойство Описание
alignmentВыберите, будет ли след обращен к камере, или ориентацию компонента Transform.
applyActiveColorSpaceУстанавливает, будут ли цвета преобразовываться надлежащим образом перед передачей в GPU при использовании линейного отображения.
autodestructУничтожается ли автоматически GameObject этого Trail Renderer?
colorGradientУстанавливает цветовой градиент, описывающий цвет следа в различных точках по всей его длине.
emittingСоздает следы при движении GameObject.
endColorУстановить цвет в конце следа.
endWidthШирина следа в конце следа.
generateLightingDataНастраивает траекторию для генерации Нормальных и Тангенсных. С этими данными, Scene освещение может влиять на траекторию через Нормальные Картины и Unity Standard Shader, или ваши собственные пользовательские Шейдер.
maskInteractionУказывает, как TrailRenderer взаимодействует с SpriteMask.
minVertexDistanceУстанавливает минимальное расстояние, которое может пройти след до добавления к нему новой вершины.
numCapVerticesУстановите значение больше 0, чтобы получить закругленные углы на каждом конце следа.
numCornerVerticesУстановите это значение больше 0, чтобы получить закругленные углы между каждым сегментом следа.
positionCountПолучить число сегментов линии в следе.
shadowBiasПрименяет отклонение тени для предотвращения артефактов самотени. Указанное значение является долей ширины следа на каждом сегменте.
startColorУстановить цвет в начале следа.
startWidthШирина следа в точке нереста.
textureModeВыберите, будет ли U-координата текстуры следа плиткой или растянута.
textureScaleМножитель для координат UV текстуры следа.
timeСколько времени требуется, чтобы след исчез.
widthCurveУстановить кривую, описывающую ширину следа в различных точках по всей его длине.
widthMultiplierУстанавливает общий множитель, который применяется к TrailRenderer.widthCurve для получения окончательной ширины следа.

Открытые методы

Метод Описание
AddPositionДобавление позиции к треку.
AddPositionsДобавить массив позиций в след.
BakeMeshСоздает моментальный снимок TrailRenderer и хранит его в сетке.
ClearУдаляет все точки из TrailRenderer. Полезно для перезапуска следа с новой позиции.
GetPositionПолучить положение вершины в следе.
GetPositionsПолучить позиции всех вершин в следе.
GetVisiblePositionsПолучить видимые позиции всех вершин в следе.
SetPositionУстановить положение вершины в следе.
SetPositionsЗадает позиции всех вершин в следе.
Унаследованные члены 5

Свойства

СвойствоОписание
gameObjectGameObject, к которому прикреплен данный компонент. Компонент всегда прикрепляется к игровому объекту.
tagТег этого игрового объекта.
transformTransform прикреплен к этому GameObject.
transformHandleTransformHandle этого GameObject.
hideFlagsДолжен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем?
nameИмя объекта.
allowOcclusionWhenDynamicУправляет тем, должен ли выполняться динамический отбор по окклюзии для данного рендерера.
boundsОграничительная рамка рендерера в мировом пространстве.
enabledДелает отображаемый объект 3D видимым, если включено.
forceMeshLodПринудительная установка определенного уровня Mesh LOD для этого рендерера, если сетка имеет Mesh LODs. Если значение -1, Unity использует метод выбора Mesh LOD по умолчанию.
forceRenderingOffПозволяет отключить отображение для определенного компонента.
isLOD0Является ли рендерер первым LOD уровнем в своей группе.
isPartOfStaticBatchУказывает, входит ли этот рендерер в статический пакет вместе с другими рендерерами.
isVisibleВидимо ли это изображение на любой камере? (только для чтения)
lightmapIndexИндекс выпеченной lightmap применяется к этому рендерингу.
lightmapScaleOffsetМасштаб UV и смещение, используемые для lightmap.
lightProbeProxyVolumeOverrideЕсли установлено, то Рендерер будет использовать компонент Light Probe Proxy Volume, прикрепленный к источнику GameObject.
lightProbeUsageТип интерполяции светового зонда.
localBoundsОграничительная рамка рендерера в локальном пространстве.
localToWorldMatrixМатрица, преобразующая точку из локального пространства в мировое пространство (только для чтения).
LODGroupLODGroup для этого рендера.
materialВозвращает первый экземпляр Материала, назначенный рендеру.
materialsВозвращает все экземпляры материалов этого объекта.
meshLodSelectionBiasОтклонение, которое добавляется к вычисляемому значению при выборе уровня сетки LOD.
motionVectorGenerationModeУказывает режим отображения вектора движения.
probeAnchorЕсли установлено, то Рендерер будет использовать положение Transform для поиска зонда света или отражения.
rayTracingAccelerationStructureBuildFlagsФлаги, используемые Unity при построении структур ускорения, связанных с геометрией, используемой рендерами.
rayTracingAccelerationStructureBuildFlagsOverrideСледует ли переопределить флаги сборки по умолчанию, заданные при создании RayTracingAccelerationStructure.
rayTracingModeОписывает, как этот рендерер обновляется для отслеживания лучей.
realtimeLightmapIndexИндекс карты освещения реального времени, применённой к этому рендерингу.
realtimeLightmapScaleOffsetМасштаб UV и смещение, используемые для карты освещения реального времени.
receiveShadowsПолучает ли этот объект тени?
reflectionProbeUsageДолжны ли использоваться отражательные зонды для этого Renderer?
rendererPriorityЭто значение сортирует рендереры по приоритету. Низкие значения отображаются первыми, а высокие значения — последними.
renderingLayerMaskОпределяет, на каком уровне отображения находится этот рендерер, если используется конвейер отображения со сценариями.
shadowCastingModeОтбрасывает ли этот объект тени?
sharedMaterialОбщий материал этого объекта.
sharedMaterialsВсе общие материалы этого объекта.
sortingLayerIDУникальный ID слоя сортировки рендерера.
sortingLayerNameИмя слоя сортировки рендерера.
sortingOrderПорядок отображения в слое сортировки.
staticShadowCasterЯвляется ли этот рендерер статическим источником теней?
worldToLocalMatrixМатрица, преобразующая точку из мирового пространства в локальное пространство (только для чтения).

Открытые методы

МетодОписание
BroadcastMessageВызывает метод с именем methodName на каждом MonoBehaviour в этом игровом объекте или любом из его дочерей.
CompareTagПроверяет тег GameObject на соответствие определенному тегу.
GetComponentПолучает ссылку на компонент типа T на том же GameObject, что и указанный компонент.
GetComponentInChildrenПолучает ссылку на компонент типа T на том же GameObject, что и указанный компонент, или на любого ребенка GameObject.
GetComponentIndexПолучает индекс компонента на его родительском GameObject.
GetComponentInParentПолучает ссылку на компонент типа T на том же GameObject, что и указанный компонент, или на любой родитель GameObject.
GetComponentsПолучает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент.
GetComponentsInChildrenПолучает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент, и на любого ребенка GameObject.
GetComponentsInParentПолучает ссылки на все компоненты типа T на том же GameObject, что и указанный компонент, и любой родитель GameObject.
SendMessageВызывает метод с именем methodName на каждом MonoBehaviour в этом игровом объекте.
SendMessageUpwardsВызывает метод с именем methodName на каждом MonoBehaviour в этом игровом объекте и на каждом предшественнике поведения.
TryGetComponentПолучает компонент указанного типа, если он существует.
GetInstanceIDПолучает экземпляр ID объекта.
ToStringВозвращает имя объекта.
GetClosestReflectionProbesВозвращает массив ближайших зондов отражения с весами, вес показывает, какое влияние зонд оказывает на рендер, это значение также используется при смешивании между зондами отражения.
GetMaterialsВозвращает все экземпляры материалов этого объекта.
GetPropertyBlockПолучить блок свойств для каждого рендерера или материала.
GetSharedMaterialsВозвращает все общие материалы этого объекта.
HasPropertyBlockВозвращает true, если в Renderer блок свойств материала прикреплен через SetPropertyBlock.
ResetBoundsСброс пользовательских границ пространства мира.
ResetLocalBoundsСброс пользовательских границ локального пространства.
SetMaterialsНазначает общие материалы этого рендерера, используя предоставленный список материалов.
SetPropertyBlockПозволяет установить или очистить переопределения параметров для каждого рендерера или материала.
SetSharedMaterialsНазначает общие материалы этого рендерера, используя предоставленный список материалов.

Статические методы

МетодОписание
DestroyУдаляет GameObject, компонент или ресурс.
DestroyImmediateНемедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования.
DontDestroyOnLoadНе уничтожать целевой Объект при загрузке нового Scene.
FindAnyObjectByTypeПолучает любой активный загруженный объект типа Type.
FindFirstObjectByTypeПолучает первый активный загруженный объект типа Type.
FindObjectsByTypeПолучает список всех загруженных объектов типа Type.
InstantiateКлонирует исходный объект и возвращает клон.
InstantiateAsyncЗахватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation.

Операторы

ОператорОписание
boolСуществует ли объект?
оператор!=Сравнивает, если два объекта ссылаются на разные объекты.
оператор ==Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту.

Сообщения

СообщениеОписание
OnBecameInvisibleOnBecameInvisible вызывается, когда объект больше не видно ни одной камерой.
OnBecameVisibleOnBecameVisible вызывается, когда объект становится видимым для любой камеры.