TrailRenderer
Описание
Создает визуальный след полигонов, который следует за движением 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
Свойства
| Свойство | Описание |
|---|---|
| gameObject | GameObject, к которому прикреплен данный компонент. Компонент всегда прикрепляется к игровому объекту. |
| tag | Тег этого игрового объекта. |
| transform | Transform прикреплен к этому GameObject. |
| transformHandle | TransformHandle этого 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 | Матрица, преобразующая точку из локального пространства в мировое пространство (только для чтения). |
| LODGroup | LODGroup для этого рендера. |
| 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 | Существует ли объект? |
| оператор!= | Сравнивает, если два объекта ссылаются на разные объекты. |
| оператор == | Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту. |
Сообщения
| Сообщение | Описание |
|---|---|
| OnBecameInvisible | OnBecameInvisible вызывается, когда объект больше не видно ни одной камерой. |
| OnBecameVisible | OnBecameVisible вызывается, когда объект становится видимым для любой камеры. |