Как сделать спрайт для 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 Editor
Иногда текстура спрайта содержит только один элемент графики, но часто гораздо удобней объединить несколько изображений связанных друг с другом в одно изображение. Например, изображение может содержать составные части персонажа, как для машины колеса которой двигаются независимо от корпуса. Для этих целей Unity предоставляет Sprite Editor позволяя с легкостью извлекать элементы составного изображения.
NOTE:
Make sure the graphic you want to edit has its Texture Type set to Sprite (2D and UI). For information on importing and setting up sprites, see Sprites.
Sprite textures with multiple elements need the Sprite Mode to be set to Multiple in the Inpsector. (See Fig 2: Texture Import Inspector… below.)
Открытие редактора спрайтов
Открытие редактора спрайтов
- Select the 2D image you want to edit from the Project View(Fig 1: Project View). Note that you can’t edit a sprite which is in the Scene View.
- Click on the Sprite Editor button in the Texture Import Inspector(Fig 2: Texture Import Inspector) and the Sprite Editor displays (Fig 3: Sprite Editor).
Note: You can only see the Sprite Editor button if the Texture Type on the image you have selected is set to Sprite (2D and UI).
![]()
Note: Set the Sprite Mode to Multiple in the Texture Import Inspector if your image has several elements.
![]()
Помимо составного изображения, вы увидите различные элементы управления в заголовке окна редактора. Слайдер в правом верхнем углу управляет приближением, в то время как кнопка с цветными полосками слева от него переключает режим отображения альфа-канала и обычный вид изображения. Самый важный элемент управления это меню Slice в левом верхнем углу, который предоставляет опции для автоматической нарезки элементов изображения. Кнопки Apply и Revert позволяют вам сохранить или отменить сделанные изменения.
Использование редактора
The most direct way to use the editor is to identify the elements manually. If you click on the image, you will see a rectangular selection area appear with handles in the corners. You can drag the handles or the edges of the rectangle to resize it around a specific element. Having isolated an element, you can add another by dragging a new rectangle in a separate part of the image. You’ll notice that when you have a rectangle selected, a panel appears in the bottom right of the window:
![]()
The controls in the panel let you choose a name for the sprite graphic and set the position and size of the rectangle by its coordinates. A border width, for left, top, right and bottom can be specified in pixels. There are also settings for the sprite’s pivot, which Unity uses as the coordinate origin and main “anchor point” of the graphic. You can choose from a number of default rectangle-relative positions (eg, Center, Top Right, etc) or use custom coordinates.
The Trim button next to the Slice menu item will resize the rectangle so that it fits tightly around the edge of the graphic based on transparency.
Note: Borders are only supported for the UI system, not for the 2D SpriteRenderer.
Автоматическая нарезка (slicing)
Isolating the sprite rectangles manually works well but in many cases, Unity can save you work by detecting the graphic elements and extracting them for you automatically. If you click on the Slice menu in the control bar, you will see this panel:
![]()
With the slicing type set to Automatic, the editor will attempt to guess the boundaries of sprite elements by transparency. You can set a default pivot for each identified sprite. The Method menu lets you choose how to deal with existing selections in the window. The Delete existing option will simply replace whatever is already selected, Smart will attempt to create new rectangles while retaining or adjusting existing ones, and Safe will add new rectangles without changing anything already in place.
Grid by Cell Size or Grid by Cell Count options are also available for the slicing type. This is very useful when the sprites have already been laid out in a regular pattern during creation:
![]()
The Pixel Size values determine the height and width of the tiles in pixels. If you chose grid by cell count, Column & Row determines the number of columns and rows used for slicing. You can also use the Offset values to shift the grid position from the top-left of the image and the Padding values to inset the sprite rectangles slightly from the grid. The Pivot can be set with one of nine preset locations or a Custom Pivot location can be set.
Note that after any of the automatic slicing methods has been used, the generated rectangles can still be edited manually. You can let Unity handle the rough definition of the sprite boundaries and pivots and then do any necessary fine tuning yourself.
Polygon Resizing
Open the Sprite Editor for a polygon and you have the option to change its shape, size, and pivot position.
Shape
![]()
Enter the number of sides you want the polygon to have in the Sides field and click Change.
Size and Pivot
![]()
SIZE: To change the polygon’s size, click on the sprite to display green border lines and the Sprite information box. Click and drag on the green lines to create the border you want, and the values in the Border fields change. (Note that you cannot edit the Border fields directly.)
PIVOT: To change the polygon’s pivot point (that is the axis point the polygon moves around), click on the image to display the Sprite information box. Click on the Pivot drop down menu and select an option. This displays a blue pivot circle on the polygon; its location depends on the pivot option to you have selected. If you want to change it further, select Custom Pivot and click and drag on the blue pivot circle to position it. (Note that you cannot edit the Pivot fields directly.)
Урок #5 – Создание 2D игр. Спрайты, материалы и текстуры

Unity позволяет создавать как 3Д, так и 2Д проекты. За урок мы разработаем простой проект 2Д игры. Научимся работать со спрайтами, анимацией, физикой для 2Д объектов, а также рассмотрим процесс создания физических материалов.
Видеоурок
Полезные ссылки:
- Сайт с иконками IconFinder ;
- Красивые материалы для объектов;
Материалы к уроку
В ходе урока были использованы текстуры для создания платформы и игрока. Ниже вы можете посмотреть и скачать все картинки, что были использованы в ходе урока:



Создание платформера
Полноценный урок по разработке 2Д платформера на основе движка Unity вы можете посмотреть ниже:
Unity – создание спрайтов
Спрайты – это простые 2D-объекты, на которых есть графические изображения (так называемые текстуры ). Unity использует спрайты по умолчанию, когда движок находится в режиме 2D. При просмотре в трехмерном пространстве спрайты выглядят тонкими как бумага, потому что у них нет Z-ширины.
![]()
Спрайты всегда обращены к камере под перпендикулярным углом, если они не вращаются в трехмерном пространстве.
Всякий раз, когда Unity создает новый спрайт, он использует текстуру. Затем эта текстура применяется к свежему GameObject, и к нему прикрепляется компонент Sprite Renderer . Это делает наш gameObject видимым с нашей текстурой, а также дает ему свойства, связанные с тем, как он выглядит на экране.
![]()
Чтобы создать спрайт в Unity, мы должны снабдить движок текстурой .
Давайте сначала создадим нашу текстуру. Получите стандартный файл изображения, такой как PNG или JPG, который вы хотите использовать, сохраните его, а затем перетащите изображение в область ресурсов Unity.

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

Давайте рассмотрим следующие моменты при создании спрайта –
- Перетаскивая из внешнего источника в Unity, мы добавляем актив .
- Этот актив является изображением, поэтому он становится текстурой.
- Перетаскивая эту текстуру в иерархию сцены, мы создаем новый GameObject с тем же именем, что и у нашей текстуры, с прикрепленным Sprite Renderer.
- Этот рендерер спрайтов использует эту текстуру для рисования изображения в игре.
Перетаскивая из внешнего источника в Unity, мы добавляем актив .
Этот актив является изображением, поэтому он становится текстурой.
Перетаскивая эту текстуру в иерархию сцены, мы создаем новый GameObject с тем же именем, что и у нашей текстуры, с прикрепленным Sprite Renderer.
Этот рендерер спрайтов использует эту текстуру для рисования изображения в игре.
Теперь мы создали спрайт в нашей сцене.
На следующем уроке мы рассмотрим некоторые модификаторы для спрайтов, которые у нас есть.