
Unity 2022.2+
Overview
ProtoSprite is an easy to use Unity Editor tool that allows you to rapidly create, draw and edit sprites directly in the Scene View in the context of your Scene. It’s intended for quickly creating prototypes or pixel art with minimal friction and tight Unity integration. It creates and uses PNG texture files, which are widely compatible with other software if needed.


Required Packages
- Mathematics - com.unity.mathematics
- Burst - com.unity.burst
- Collections - com.unity.collections
- 2D Sprite - com.unity.2d.sprite
- 2D Common - com.unity.2d.common
Quick Start
- Open the ProtoSprite window via Window > 2D > ProtoSprite
- In the ProtoSprite window click the “+” menu in the top left, select Default and enter a name and file location.
- This will create a new GameObject as well as a Texture file
- The GameObject will automatically have a SpriteRenderer with a sprite linked to the newly created texture
- With the GameObject selected click the Paint Tool (first tool on the left) in the ProtoSprite window
- Draw on the GameObject inside the Scene View
- Change the Color and Brush Size in the ProtoSprite window
- Save your changes with Ctrl/Cmd + S or clicking the Save button in the ProtoSprite window, or by going to File > Save Project.
ProtoSprite Window
Opened via Window > 2D > ProtoSprite.
This window allows you to create new textures and GameObjects and access all the tools for modifying the sprites. Drawing, resizing and adjusting sprite pivots can all be accomplished with lightning speed.
Tool shortcuts are only active when the ProtoSprite window is both open and visible. This helps reduce shortcut key conflicts considerably. Allowing you to have the ProtoSprite window and e.g. the Unity Tile Palette window docked in the same area and switch between the tabs to control shortcut key contexts.
Add/“+” Menu
New ProtoSprite compatible textures with associated GameObjects can be quickly created using the “+” menu. The Default option will create a texture using the values stored in the Default Settings panel. The Default Settings can also be accessed from the “+” menu.
The Default functionality can also be done via the GameObject > 2D Object > ProtoSprite menu option or by right clicking in the Hierarchy and selecting 2D Object > ProtoSprite.
You can create your own presets to add to the ProtoSprite “+” menu so you can quickly create ProtoSprites of desired dimensions etc by using the ProtoSpriteAddMenuItem attribute on a method inside your own Editor scripts (put the script in a folder called “Editor”) . E.g.
using UnityEngine; using ProtoSprite.Editor;
public class MyProtoSpriteMenuItems { [ProtoSpriteAddMenuItem("Pixel Art/16x16")] private static void Create16x16() { // Creates a GameObject with SpriteRenderer // and a texture with ppu = 16, pivot = (0.5,0.5) and dimensions = (16,16) GameObject gameObject = ProtoSpriteWindow.CreateProtoSprite(16.0f, new Vector2(0.5f, 0.5f), new Vector2Int(16, 16)); } } |

Duplicate Button
Creates a duplicate sprite texture file and sets the currently selected SpriteRenderer to reference it. Useful for creating a new frame when animating or for quickly creating a variant by duplicating the GameObject with Ctrl/Cmd + D and then using the ProtoSprite duplicate button to duplicate the texture for the new GameObject.
Tools
Paint

Shortcut: B
- Color field allows you to select the painting color.
- Brush Size changes the size of the brush.
- Brush Shape is the shape of the brush (Circle or Square).
- Holding Shift while clicking allows you to paint a straight line between the previous and current cursor positions.
- Holding Ctrl/Cmd and dragging horizontally with left click pressed in the Scene View allows you to quickly adjust the brush size.
- Remember to save with Ctrl/Cmd + S or by clicking the save button inside the ProtoSprite window after you’re done painting.
Erase

Shortcut: D
- Eraser Size is the size of the eraser brush. This is different to the painting brush size.
- Erase Shape is the shape of the brush (Circle or Square).
- Holding Shift while clicking allows you to erase a straight line between the previous and current cursor positions.
- Holding Ctrl/Cmd and dragging horizontally with left click pressed in the Scene View allows you to quickly adjust the brush size.
- Remember to save with Ctrl/Cmd + S or by clicking the save button inside the ProtoSprite window after you’re done painting.
Fill

Shortcut: G
- Color field is shared with the painting tool, so changing it will affect the paint color for both the fill and paint tools.
- Tolerance can be set from 0 to 255. Lower numbers fill colors in the image very similar in color to the pixel at the fill location. Higher numbers fill a broader range of similarly-colored pixels in the image.
- Contiguous when enabled it will flood fill from the starting fill location, up to any boundaries of different pixel color. When disabled it will fill pixels across the entire texture.
- Connectivity 4-way will mean flood filling won’t consider crossing diagonally over boundaries. 8-way means that flood filling will cross over diagonally as well, resulting in a less strict flood fill behavior.
- Remember to save with Ctrl/Cmd + S or by clicking the save button inside the ProtoSprite window after you’re done painting.
Resize

Shortcut: N
- Grab the edges of the sprite and pull them to quickly change the dimensions of the sprite’s texture. The current width and height of the texture is displayed in the ProtoSprite window.
- Resizing automatically adjusts the sprite pivot to keep it in the same relative place as before the resize.
- Resizing will automatically trigger a save of the modified texture.
Pivot

Shortcut: C
- Grab the sprite and move it around to adjust its location relative to its pivot. Holding down Ctrl/Cmd while dragging will snap the pivot to pixel perfect intervals. Alternatively the desired pivot values can also be directly entered into the x and y fields in the ProtoSprite window.
- Changing the pivot will automatically trigger a save of the modified texture.
Saving
Remember to save regularly. Saving in this context refers to the texture data that’s loaded in memory being saved to the PNG file on disk. Certain operations such as Resize and Pivot will trigger a save automatically but painting operations must be saved manually (e.g. using Ctrl/Cmd + S). Certain Unity events (such as closing Unity) will also trigger a save of all modified textures. The ProtoSprite window will show a “*” in the title (“ProtoSprite*”) if there are unsaved changes.
Compatibility & Limitations
When a new ProtoSprite is created it is set up to automatically be compatible with the ProtoSprite tools. However, for any already existing textures/sprites they must adhere to the following in order to be editable by the ProtoSprite tools. If a selected object is not compatible with the ProtoSprite tools a message will display in the ProtoSprite window providing the reason for incompatibility.
- SpriteRenderer Draw Mode: Simple
- Texture File Type: PNG
- Texture Size <=2048 and imported size must match source size
- Texture Importer Read/Write: Enabled
- Texture Importer Format: RGBA32
- Sprite must not be packed in a Sprite Atlas unless Sprite Packer Mode is set to Enabled for Builds (so the sprite atlas texture isn’t used while in the Editor)
- Not intended to be used with SpriteSkin or Unity’s sprite vertex deformation/bone tools