How To Release Editor Tools On The Unity Asset Store
Before uploading my Camera Composition — Grid Overlay Tool project to the Unity Asset Store, I employed a simple release process utilizing two separate Unity projects. The first project was for exporting a clean .unitypackage and uploading to Unity directly from the editor. The second project was for testing installation and functionality from the user perspective.
Begin by setting up two new projects with Unity Hub:
- Create a new Unity project named RELEASE.
- Create another named TEST.
Optionally group these projects under a subdirectory such as ReleaseTesting.
Export your project’s complete directory structure from your development environment. Check out Unity’s Naming your package documentation for file name examples.
Import Unity Asset Store Tools into your RELEASE project. These tools will be used for project validation and package upload.
Next, import your development project’s source .unitypackage into your RELEASE project.
Navigate to Asset Store Tools > Package Validator and scan your imported project’s directory structure for errors and warnings.
After passing validation, re-export your tool’s directory structure as a fresh .unitypackage from the RELEASE project. This ensures a clean package for use in the TEST project.
At this point you can perform manual testing in the TEST project as if you’re a user of your own editor tool. When testing Camera Composition, I opened each of the demo scenes and ensured all of the tool’s features still worked while monitoring the console for new errors.
Once satisfied, proceed by uploading your package to the Unity Asset Store.
After clicking the Upload button, confirm the package was successfully published to the Unity Publisher Portal.
Finally, confirm the compatible render pipelines and dependencies before submitting your asset for approval by a Curator representing the Unity Asset Store. Good luck!
Have you released an extension or tool for the Unity editor?
What’s your software release process like?
Do you use automated testing along the way?
Let me know in the comments!