With Unity 6 came a wave of exciting new features, but also a fair share of headaches. As I mentioned in my previous post about the MegaPint collection, some features started acting strangely, while others became completely unusable.
After taking the time to dive back into development, I’m happy to share that all of those Unity 6-related issues have now been resolved. In this post, I’ll walk you through the updates and improvements made to MegaPint, so you can get the most out of it again.
Visual Bugfixes
Aside from a few minor UI tweaks, there’s really only one major change worth highlighting. Unity has finally introduced a much better implementation of the ColorInputField.
Previously, to style color fields in line with the MegaPint design, I had to override a large number of attributes and callbacks on Unity’s default color fields. This approach not only felt clunky, but also caused a critical issue in the Screenshot package. The inspector UI could no longer render properly, since those overrides could not be applied to the color field.
With Unity 6’s cleaner UI Toolkit version of this element, I can now style color fields directly using USS classes, just like any other component. As a result, the camera capture component is once again fully functional in Unity 6, and I could get rid of some pesky workarounds.
Changes to the Screenshot Package
While testing the Screenshot package, I discovered another welcome improvement in Unity 6. Now there is a clean way to render transparent images in URP while using post-processing. In earlier versions of Unity, the post-processing shader would always force the alpha channel to a hard value of 1, even if the camera was set to render a transparent background. To work around this, the package relied on a setup wizard that generated a custom copy of the pipeline asset with a modified shader variation – not exactly elegant, but practical.
Unity 6 finally solves this with a simple boolean toggle in the pipeline asset, which directly enables transparent rendering. Thanks to this, I was able to remove the deprecated workaround code and adopt the cleaner, modern approach of adjusting the pipeline asset value when needed. This not only reduced code complexity but also restored full functionality of the Screenshot package in Unity 6.
Feedback Integration
Besides the changes mentioned above and moving more deprecated code over to the new Unity codebase, the collection was finally ready for release. And that’s exactly what I did. I launched version 1.3.2 of the MegaPint collection. But I wasn’t fully satisfied. Even though the package works for now, I don’t always have the time to test every package on each new Unity release. That raised two questions: how can I clearly show which versions of MegaPint works with which Unity versions, and how can I streamline the process of finding bugs?
The second part is simple: YOU. I’ve added a report feature to the base package of MegaPint. With it, you can easily submit suggestions for new features or report bugs and issues. These reports are sent to me anonymously via email, so I can be notified right away when problems occur.
And if a version turns out to be severely compromised, I’ve built another new feature: I can now mark a specific package version as incompatible or buggy for a given Unity release directly in my database. This means that, without requiring any update inside MegaPint itself, all users will instantly see which versions are safe to use with which Unity versions.
With this system, I hope to reduce frustration and be able to react to issues faster and more reliably in the future.
And that wraps it up for this round of updates! Unity 6 may have shaken the glass a bit, but with the fixes, cleanup, and the brand-new reporting system, I feel a lot more confident that we can keep the pint from tipping over in the future.
Thank you for reading – and happy developing!