Spriterenderer unity что это
Компонент Sprite Renderer позволяет вам отображать изображения в виде спрайтов( Sprites ), чтобы использовать их и в 2D и в 3D сценах.
Add it to a GameObject via the Components menu (Component > Rendering > Sprite Renderer or alternatively, you can just create a GameObject directly with a Sprite Renderer already attached (menu: GameObject > 2D Object > Sprite).
![]()
| Свойство: | Функция: |
|---|---|
| Sprite | Спрайт, который надо рендерить. Спрайты можно создать из текстур используя настройку Sprite в импортере текстур (Texture importer). |
| Color | Цвет меша, который рендерится. |
| Flip | Flip the sprite in the X or Y planes. |
| Material | Материал, используемый для рендера спрайта. |
| Sorting Layer | Слой, используемый для задачи приоритета наложения во время рендеринга. |
| Order In Layer | Приоритет наложения спрайта в рамках его слоя. Чем ниже число, тем раньше будет рендериться спрайт, а спрайты с числами повыше, будут рисоваться поверх тех, что ниже. |
Детали
В 3D графике внешний вид объекта может быть разным в соответствии с освещением и с точкой обзора на объект. А вот в 2D изображение просто отображается на экране без каких-либо трансформаций, кроме базовых перемещения, масштабирования и вращения. Позиция спрайта задаётся 2D координатами, таким образом здесь нету концепта “глубины” или расстояния от камеры.
Тем не менее, важно иметь способ определения приоритета наложения разных спрайтов(т.е, какие спрайты будут рисоваться поверх других, в случае пересечения). Например, в игре с вождением, автомобиль должен быть виден при проходе по плоским объектам на дороге. Unity использует концепт слоёв сортировки ( sorting layers ), чтобы позволить разделять спрайты на группы с приоритетами наложения. Спрайты, с более низким сортировочным слоем будут рисоваться под спрайтами с более высоким сортировочным слоем.
Иногда, два или более объекта в одном и том же сортировочном слое могут накладываться (например, 2 персонажа в сайд-скроллере). Свойство order in layer может быть использовано, чтобы задать приоритеты спрайтам в одном и том же слое. Так же, как и со слоями сортировки, применяется правило, что сначала рендерятся объекты с более низким значением номера и перекрываются объектами с более высоким значением. Для деталей о редактировании слоёв сортировки см.layer manager.
Рендеринг
Sprite Renderer использует текстуру указанную в свойстве Sprite, но использует шейдер и другие свойства из свойства Material (это выполняется используя за сценой MaterialPropertyBlock). Это значит, что вы можете использовать один и тот же материал для рендера разных спрайтов не трогая каждую текстуру по отдельности.
Спрайт рендерится на меше, который использует позицию, цвет и UV на каждой вершине, но у него нет вектора нормали. Если ваш материал требует векторы нормалей, то вы можете рассчитать их используя вертексный шейдер (см. Surface Shader Examples.
Стандартные шейдеры, используемые для спрайтов:
- Sprites/Default — простой шейдер с альфа смешиванием, который не взаимодействует с освещением в сцене.
- Sprites/Diffuse — просто шейдер поверхности с альфа смешиванием который взаимодействует с освещением. Он генерирует переднесторонний вектор нормали (0,0,–1).
Flipping
While Sprites can be flipped by setting negative transform.scale , this has the side effect of also flipping the child GameObjects and also flipping the colliders, which can be performance intensive or otherwise not preferred.
The SpriteRenderer flipping feature provides a lightweight alternative which doesn’t affect any other components or GameObjects. It simply flips the rendered sprite on x or y axis and nothing else.
Проблема со sprite renderer в Unity 2D
Я создал объект Hero и в него засунул sprite, но в этой строчке кода sprite = GetComponentInChildren
Отслеживать
задан 5 июн 2021 в 6:55
user442003 user442003
А документация для слабаков?
5 июн 2021 в 6:59
5 июн 2021 в 11:06
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
sprite = GetComponent().sprite;
Отслеживать
ответ дан 5 июн 2021 в 7:00
Алексей Шиманский Алексей Шиманский
71.9k 12 12 золотых знаков 91 91 серебряный знак 180 180 бронзовых знаков
@Danii а зачем тогда вы что-то пытаетесь положить в sprite? lХотя на самом деле нужно из этого что-то вынуть? Где логика. sprite.GetComponent
5 июн 2021 в 12:28
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.8.3130
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Спрайты в Unity: определение, как их создавать и использовать
![]()
Как создать спрайт для Unity? Для этого в игровом движке предусмотрены свои инструменты, о которых мы поговорим чуть ниже.
Спрайт — это графический объект, который используется при создании 2D-игр . Спрайт-технология пришла к нам еще в 80-х год ах . Первые игры делались с применением спрайтов. Все знают, что если взять несколько похожих картинок и в определенной последовательности быстро их «прокрутить», то получится анимация или видео. Многие вспомнят о том, что видео — это 24 кадра в секунду, которые видит человек. Именно по такой «прокрутке» кадров и происходит создание спрайт-объектов. К примеру, берется игровой персонаж , а затем созда ется несколько разных его изображений. Потом эти изображения помещают в контейнер и зацикливают их прокрутку. Таким образом , получается анимация. Если показ картинок «подвязать» к кнопкам управления, тогда появляется полноценный игровой объект, который будет реагировать на нажатие кнопок. Например, при движении вправо показываются одни картинки, влево — другие. А у пользователя создается впечатление, что игровой персонаж анимирован. Повторимся, что по факту происходит только смена картинок в кадре.
В Unity работа со спрайтами внедрена по умолчанию, когда движок настроен на разработку 2D-игр. Если спрайт посмотреть в 3D-режиме, тогда он окажется «плоским», как лист бумаги. Все потому, что спрайт — это 2D-объект и у него нет Z-ширины.
Как создать спрайт для Unity
Когда на Unity создается новый спрайт, ему необходимо задать текстуру. Текстура — это изображение, которое отражает внешний вид спрайта. Такое изображение прикрепляется к спрайту, создавая GameObject, который можно использовать в игре.
Если нет возможности сразу добавить текстуру в проект, но наличие спрайта в игре вам обязательно, тогда можно применить «заполнитель спрайтов» на Unity. Заполнитель — это встроенный инструмент, который создает спрайт в виде простых геометрических фигур типа треугольника, квадрата, круга и заполняет их белым цветом. В дальнейшем всегда будет доступно редактирование «заполнителя».
Чтобы создать спрайт на Unity , пройдите по следующему пути:
Assets → Create → Sprites
Подход с использованием заполнителей для спрайтов актуален в том случае, когда графика для спрайта не готова, но нужно продолжать разработку проекта.
Редактирование спрайтов в Unity
- Открыть 2D-изображение в представлении проекта «Project View». Спрайт, который находится в режиме «Scene View» , редактироваться не может.
- Найти кнопку «Sprite Editor». Вам откроется редактор спрайтов, в котором будет несколько доступных инструментов. Например : изменение масштаба, изменение расцветки, изменение местоположения спрайта на экране, поворот спрайта, настроить прозрачность, обрезать и др.
Средство визуализации спрайтов в Unity
Отобразить спрайт в Unity помогает компонент Sprite Renderer. Его нужно добавлять в GameObject через меню Components:
Components → Rendering → Sprite Renderer
Когда создается 3D-графика, тогда способов отразить объемный объект очень много. Например, внешний вид объекта будет зависеть от его положения на экране, освещенности, перемещения, положения камеры и др. С 2D-объектами этого всего нет.
Однако важно, чтобы соблюдался приоритет между спрайтами. То ест ь в ажно определить , какой спрайт может накладываться на другой спрай т в случаях их пересечения. Sprite Renderer как раз отвечает за соблюдение приоритетности. Делается это при помощи применения технологии сортировки слоев. То есть спрайты с низким приоритетом располагаются на низших слоях и могут перекрываться спрайтами с более высоким приоритетом.
Заключение
- Paint Net;
- Krita;
- SAI 2;
- GIMP;
- Clip Studio Paint;
- и др.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
SpriteRenderer
Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.
Ошибка внесения изменений
По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста попробуйте снова через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.
Ваше имя Адрес вашей электронной почты Предложение * Разместить предложенное
Описание
Визуализирует спрайт для 2D графики.
Переменные
| color | Визуализация цвета спрайта. |
| flipX | Зеркально отражает спрайт по оси X. |
| flipY | Зеркально отражает спрайт по оси Y. |
| sprite | Спрайт для визуализации. |
Унаследованные члены
Переменные
| gameObject | The game object this component is attached to. A component is always attached to a game object. |
| tag | Тег данного игрового объекта. |
| transform | The Transform attached to this GameObject (null if there is none attached). |
| hideFlags | Should the object be hidden, saved with the scene or modifiable by the user? |
| name | The name of the object. |
| bounds | The bounding volume of the renderer (Read Only). |
| enabled | Makes the rendered 3D object visible if enabled. |
| isPartOfStaticBatch | Has this renderer been statically batched with any other renderers? |
| isVisible | Is this renderer visible in any camera? (Read Only) |
| lightmapIndex | Индекс карты освещения, примененной при визуализации. |
| lightmapScaleOffset | The UV scale & offset used for a lightmap. |
| localToWorldMatrix | Matrix that transforms a point from local space into world space (Read Only). |
| material | Returns the first instantiated Material assigned to the renderer. |
| materials | Returns all the instantiated materials of this object. |
| probeAnchor | Если установлено, Renderer будет использовать позицию Transform’s, чтобы найти интерполированные светопробы. |
| realtimeLightmapIndex | Индекс карты освещения, примененной при визуализации. |
| realtimeLightmapScaleOffset | The UV scale & offset used for a realtime lightmap. |
| receiveShadows | Does this object receive shadows? |
| reflectionProbeUsage | Should reflection probes be used for this Renderer? |
| shadowCastingMode | Does this object cast shadows? |
| sharedMaterial | The shared material of this object. |
| sharedMaterials | All the shared materials of this object. |
| sortingLayerID | Unique ID of the Renderer’s sorting layer. |
| sortingLayerName | Name of the Renderer’s sorting layer. |
| sortingOrder | Renderer’s order within a sorting layer. |
| useLightProbes | Should light probes be used for this Renderer? |
| worldToLocalMatrix | Matrix that transforms a point from world space into local space (Read Only). |
Открытые функции
| BroadcastMessage | Вызывает метод названный methodName на каждом MonoBehaviour этого game object-а или любого из его потомков. |
| CompareTag | Помечен ли этот игровой объект тэгом tag? |
| GetComponent | Возвращает компонент типа type, если он прикреплен к игровому объекту и null, если не прикреплен. |
| GetComponentInChildren | Returns the component of Type type in the GameObject or any of its children using depth first search. |
| GetComponentInParent | Returns the component of Type type in the GameObject or any of its parents. |
| GetComponents | Returns all components of Type type in the GameObject. |
| GetComponentsInChildren | Returns all components of Type type in the GameObject or any of its children. |
| GetComponentsInParent | Returns all components of Type type in the GameObject or any of its parents. |
| SendMessage | Вызывает метод с именем methodName в каждом MonoBehaviour на этом объекте. |
| SendMessageUpwards | Вызывает на каждом MonoBehaviour в данном игровом объекте и на каждом предке скрипта метод с именем methodName. |
| GetInstanceID | Returns the instance id of the object. |
| ToString | Returns the name of the game object. |
| GetClosestReflectionProbes | Returns an array of closest reflection probes with weights, weight shows how much influence the probe has on the renderer, this value is also used when blending between reflection probes occur. |
| GetPropertyBlock | Get per-renderer material property block. |
| SetPropertyBlock | Lets you add per-renderer material parameters without duplicating a material. |
Статические функции
| Destroy | Removes a gameobject, component or asset. |
| DestroyImmediate | Destroys the object obj immediately. You are strongly recommended to use Destroy instead. |
| DontDestroyOnLoad | Makes the object target not be destroyed automatically when loading a new scene. |
| FindObjectOfType | Returns the first active loaded object of Type type. |
| FindObjectsOfType | Returns a list of all active loaded objects of Type type. |
| Instantiate | Returns a copy of the object original. |
Операторы
| bool | Does the object exist? |
| operator != | Compares if two objects refer to a different object. |
| operator == | Compares two object references to see if they refer to the same object. |
Сообщения
| OnBecameInvisible | OnBecameInvisible is called when the object is no longer visible by any camera. |
| OnBecameVisible | OnBecameVisible is called when the object became visible by any camera. |