TexEdit+ is the ultimate time-saving tool for any Unity developer who works with textures and other assets. With its seamless bulk or
single-object editing for all tools, TexEdit+ lets you accomplish tedious and repetitive editing tasks in just a few clicks, saving
you hours of valuable time.
Designed to be both simple and incredibly powerful, TexEdit+ is packed with features that make editing textures, sprites,
assets, and files a breeze. You can even apply texture effects at runtime using the included API.
Whether you're a seasoned Unity developer or just starting out, TexEdit+ is the tool you need to streamline your
workflow and take your projects to the next level. Apply effects to batches of sprites in just a few clicks instead of
editting each sprite individually. Renaming groups of assets or moving them to different folders can now be done in seconds,
instead of renaming files and folders one by one.
Say goodbye to tedious and repetitive tasks and "Hello!" to TexEdit+! This essential tool offers an efficient solution to
editing and managing assets, textures, and sprites with ease.
Features:
Seamless bulk or single-object editting for all tools!
Texture effects calculated on the GPU using compute shaders for maximum performance and responsiveness! Even for large batches of assets.
Fully documented and commented source code included.
API for applying texture effects at runtime.
Exhaustive documentation and tooltips so you always find the setting you are looking for.
Tools Included:
Rename/Move any assets tool.
Rename any files tool (works inside or outside the project).
Copy data between sprites tool (copy pivots, colliders, rigging, etc.).
Extract sprite textures from spritesheet.
Mask/Overlay/Blend texture tools.
Channel packing tool.
Pack textures into a spritesheet/grid.
Drop shadow, blur, crop, outline, flip, and rotate texture effects.
HSV Offset, RGBA offset, gamma correction, contrast/brightness adjustment, invert, and color replacement texture effects.
Links
Guides
This quick start guide is intended to get you using TexEdit+ as quickly as possible.
Trailers
TexEdit+ is the ultimate time-saving tool for easy bulk and single-object editing of textures, assets, and other files; includes texture effects, renaming, sprite editing, and more.
Getting Started
Getting started with TexEdit+ is straightforward. To begin, navigate to the top bar and choose Tools > TexEdit+.
This will open the TexEdit+ window. Inside the window, select the tool you need and fill in the required inputs
with the textures or objects you want to edit. You can choose how to output the results, adjust the settings, and
preview the changes you've made. Once you're satisfied with the settings, click "Confirm" to initiate the operation.
It's that easy!
Tool Overview
General
The general section contains tools for editting various kinds of objects, not just textures. It contains 4 tools.
Rename Assets: Allows you to rename any assets in the project.
Rename Files: Allows you to rename files that are inside or outside of the project.
Move Assets: Allows you to move assets from one location within the project to another.
Copy Sprite Data: Allows you to copy data between sprites. This allows for one-to-many copying, or for many-to-many copying. Allows you to copy pivots, physics colliders, borders, and riggings (sprite mesh and bones).
Sprite Separator: Allows you to extract textures from a sprite sheet. This will iterate through every sprite in the input textures and output them to their own texture asset.
Combination
The combination section contains tools for texture effects that require multiple inputs per output. It contains 4 tools.
Mask: Allows you to apply a mask to the input textures using a seperate mask texture.
Overlay: Allows you to overlay a seperate texture on top of each input texture.
Blend: Allows you to blend between a pair of textures dependent on their alpha channels.
Channel Pack: Allows you to create a new texture that is the result of combining the channels of up to four different input textures.
Grid Packer: Allows you to pack multiple textures together into a spritesheet/grid.
Effects
The effects section contains tools that apply various visual effects to textures. It contains 6 tools.
Drop Shadow: Allows you to generate a drop shadow effect from textures.
Blur: Allows you to preform a Guassian blur on the textures.
Crop: Allows you to automatically or manually crop textures.
Outline: Allows you to generate an outline for textures created using a sobel filter.
Flip: Allows you to horizontally or vertically flip textures.
Rotate: Allows you to rotate textures.
Colors
The effects section contains tools that apply color related visual effects to textures. It contains 6 tools.
HSV Offset: Allows you to offset the Hue, Saturation, and Value of the textures.
RGBA Offset: Allows you to offset the Red, Green, Blue, and Alpha channels of the textures.
Gamma: Allows you to apply gamma correction to the textures.
Contrast: Allows you to adjust the contrast and the brightness of the textures.
Invert: Allows you to invert the colors of a texture.
Color Replace: Allows you to replace a specific color in the textures.
F.A.Q.
What is a regular expression/RegEx?
Regular Expressions (RegEx) are ways of describing certain patterns of text in a way that is far more powerful
than just matching strings. They are widely used in programming and text processing to find and manipulate text
based on certain rules.
Regex patterns are made up of special characters and symbols that represent certain types of characters
or patterns in the text. For example, the symbol "." (a period) represents any single character, while the symbol "*"
represents zero or more occurrences of the preceding character or group. You can also use square brackets to match a single
character out of a set or a range of characters.
Here are some regex examples:
The pattern "Enemy_[0-9]" matches any string containing "Enemy_" followed by a number.
The pattern "\ARed" matches any string starting with the sequence "Red". The "\A" symbol specifies the start of a string, while "\Z" specifies the end.
The pattern "(Human)|(Undead)" matches any string containing either "Human" or "Undead". The "|" character acts as an "or" operator for regex.
Why are my textures getting resized to 2048x2048?
This is because of the Max Size attribute on the textures. Since TexEdit+ needs to read from textures, if the textures size is larger than the max size then
the size that TexEdit+ reads will be clamped by the Max Size attribute. If you want to fix this issue, change the textures maximum size before using TexEdit+.
What is subdirectory matching?
Subdirectory matching is an output settings that allows you use inputs from some directory structure, then output
them in a way that matches that directory structure.
As an example, consider the following directory structure and selected inputs:
If you didn't select any subdirectory matching and attempted to output everything to the "Outputs" folder, then
everything would be added directly into the Outputs folder.
Example output without subdirectory matching
Assets/
Inputs/...
Outputs/
RedArcher.png
RedWarrior.png
RedCleric.png
BlueArcher.png
BlueWarrior.png
BlueCleric.png
However if you set the subdirectory matching folder to match everything relative to "Assets/Inputs", then while outputting,
it will attempt to place the outputs into the same subdirectories as the input, it will also create any missing folders while doing this.
Example output with subdirectory matching on Assets/Inputs
Assets/
Inputs/...
Outputs/
RedTeam/
RedArcher.png
RedWarrior.png
RedCleric.png
BlueTeam/
BlueArcher.png
BlueWarrior.png
BlueCleric.png
Why is Copy Sprite Data missing?
This is because the Copy Sprite Data tool requires you to have the official 2D Sprite package (com.unity.2d.sprite) installed in order to use it.
Thus, to use this tool, navigate to your package manager (Window > Package Manager) and install the 2D Sprite package.
Runtime Usage
Applying texture effects using the runtime API is a straightforward process. All the functions for this are available in the
TexEditPlus namespace, inside the TexEdit static class. Each tool has a function with the same name, and more detailed
information about these functions can be found in Section 7 of the documentation.
Each function follows the same convention, with the following signature (with some small exceptions):
public staticTexture2D %ToolFunctionName%(Texture2D input, %SettingsStruct% settings, string outputName = "")
Here, %ToolFunctionName% and %SettingsStruct% should be replaced with the actual name of
the tool and the type of settings struct used to modify the tool, respectively.
Information about each specific settings struct can be found in section 7, however all settings structs contain a
SettingsStruct.Default property for easily creating copies of the default settings. You can then modify each member
of the settings in order to create the desired effect.
API Reference
All the code for TexEdit+ is under the TexEditPlus namespace.
Functions
All of these functions are contained inside the TexEdit static class.
Combination
public staticTexture2D Mask(Texture2D input, MaskSettings settings, string outputName = "")
public staticTexture2D Overlay(Texture2D input, OverlaySettings settings, string outputName = "")
public staticTexture2D Blend(Texture2D input, BlendSettings settings, string outputName = "")
public staticTexture2D ChannelPack(ChannelPackSettings settings, string outputName = "")
public staticTexture2D GridPacker(Texture2D[] inputs, GridPackerSettings settings, string outputName = "")
Effects
public staticTexture2D DropShadow(Texture2D input, DropShadowSettings settings, string outputName = "")
public staticTexture2D GuassianBlur(Texture2D input, GuassianBlurSettings settings, string outputName = "")
public staticTexture2D Crop(Texture2D input, CropSettings settings, string outputName = "")