Hi! I write my editor tools using OnGUI and OnInspectorGUI methods. Is there a plan to maintain the possibility of creating a custom editor UI using those, or do you think about deprecating the API in the upcoming years?
Hi @ProceduralPixels and thank you for the question.
Our intention is to consolidate our UI systems into a single one so that eventually, when it is ready, UI Toolkit will replace both IMGUI and UGUI. Until that day, we remain committed to maintaining these two systems. We will communicate obsolescence ahead of time to give everyone enough time to adjust.
Is there a particular reason you prefer to use IMGUI instead of UI Toolkit?
Thanks for answering!
I have a few reasons for using IMGUI over the UI Toolkit, and I consider depreciation of IMGUI as a step back. Here is why:
- I’m a developer and developing many custom debugging tools and editor tools using IMGUI during my work. I also developed my custom library to develop GUI layouts more quickly. This allows me to create UI elements quickly without exiting my IDE, which boosts the workflow.
- I’m an asset publisher, and my asset uses custom inspectors and editor windows made with IMGUI. Depreciation of IMGUI will require me to port all of my work to the UI Toolkit, which will be time-consuming. And I need to consider this change from business perspective.
- IMGUI solution is commonly used outside of Unity in the areas that I would also like to work (prototyping, other engines, graphics debugging). UI Toolkit is Unity’s proprietary tech (somewhat reassembles web development, but I don’t want to work in web-dev). Using IMGUI gives me a better perspective as a developer in case I want to move to a different industry where IMGUI is also used.
I’m okay with UI Toolkit being the main way of developing the UI in game, but I’m not a fan of removing IMGUI from the engine, due to the rapid workflow and prototyping possibilities. And I don’t understand why you want to do this (or if you want to do this). What is the reason for that?
Thanks for the feedback.
We understand where you’re coming from. Having to convert existing tools for no apparent reasons is not a good return on investment for your business.
Unity invested in UI Toolkit to allow tool developers, internally and externally, to build more complex workflows. You’re right in saying it’s very efficient to write small UI snippets with IMGUI, but it then scales very poorly, both in performance and maintainability. Before deprecating IMGUI, we’ll need to add a faster way to write UI Toolkit code for very small use cases.
UI Toolkit is also increasingly more capable as a framework, providing better styling and layout, more widgets, and animation. And more will come as we continuously invest in it, with better support for accessibility, visual effects, and vector graphics.
Our goal is to make sure the UI Toolkit provides enough value to developers, so we can eventually focus on a single solution. Keeping three separate UI systems in a complex environment like Unity is expensive and can hurt the user experience.
Hope this brings more clarity on our decision.
Cheers
I understand that we need to move forward sometimes. As long as the UI toolkit provides API designed for quick prototyping, and we are all informed well in advance, I’m all set! Thanks for the response.
Is there any chance that some of these UI-Toolkit improvements will come during the Unity 6 generation cycle?
I would e.g. very much like to use the vector drawing capabilities of UI-Toolkit to make resizable shapes but I need to fill those shapes with a texture, which is not currently possible I believe. From the roadmap at Unite I understood that major improvements will not come before Unity next generation which would still be a few years in the future.
Hi @Milvulus, we’re still evaluating what improvements we’ll be able to release during the Unity 6 generation cycle.
I’m taking note of your request for filling vector shapes with a texture.
Thank you, much appreciated!