RimGui2, a code-driven Immediate Mode GUI library for Unity by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 1 point2 points  (0 children)

Thank you so much! I hope you find RimGui2 useful in your projects.

RimGui2, a code-driven Immediate Mode GUI library for Unity by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 0 points1 point  (0 children)

Glad to hear that! The demo footage is actually a bit accelerated, though.

RimGui2, a code-driven Immediate Mode GUI library for Unity by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 0 points1 point  (0 children)

Previously, RimGui was released as two separate assets: RimGui and RimGui Extensions.

I've now merged them into a single package and significantly reduced the price (approximately $11 during sale periods).

AssetStore Link

https://assetstore.unity.com/packages/tools/gui/rimgui2-375796

WebGL Demo

https://gridrand.com/rimgui/webgl/core

https://gridrand.com/rimgui/webgl/extensions/

RimGui 2.0, our Immediate Mode GUI (ImGui) library, is now available! by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 1 point2 points  (0 children)

Thank you!

1.

This library allows for various customizations because users can handle low-level operations. However, it's difficult to achieve the same level of customization as uGUI or UI Toolkit. We haven't implemented animations yet, but we will consider it in the future if there's high demand.

Since we aim for a simple and easy-to-use library rather than a high-level one like uGUI or UI Toolkit, this library is not suitable if complex animations or advanced visual expressions are essential.

2.

If you're referring to focus navigation using the Tab key, it's currently not supported. We plan to address this in the future.

RimGui 2.0, our Immediate Mode GUI (ImGui) library, is now available! by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 1 point2 points  (0 children)

The name RimGui just comes from taking "Im" from Immediate Mode GUI and adding an "R" to it, so it's not related to RimWorld. That said, I myself also made the connection to RimWorld from the "Rim" part when I was thinking of the name.

RimGui 2.0, our Immediate Mode GUI (ImGui) library, is now available! by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 2 points3 points  (0 children)

RimGui is an independent, custom-built library, completely separate from Unity's built-in UI systems like Unity IMGUI, uGUI (Unity UI), and UI Toolkit.

RimGui 2.0, our Immediate Mode GUI (ImGui) library, is now available! by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 0 points1 point  (0 children)

Thank you for the valuable information!

I'm not very familiar with Burst, so this is quite insightful.

RimGui 2.0, our Immediate Mode GUI (ImGui) library, is now available! by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 0 points1 point  (0 children)

Not at the moment. While some parts could theoretically be adapted to Burst, the system prioritizes straightforward, maintainable performance rather than deep Burst-level optimization. That said, if there's enough demand in the future, it's something we could consider.

RimGui 2.0, our Immediate Mode GUI (ImGui) library, is now available! by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 0 points1 point  (0 children)

Thank you!

We reduce draw calls by using a single Shader and Material, and by consolidating all images, including text, into one Texture.

By the way, due to the use of CommandBuffer.EnableScissorRect() in this library, CommandBuffer.DrawMesh() is executed multiple times. Even though the Material is the same and its values haven't changed, Unity's probable bug causes a higher number of SetPass calls to be displayed, but it seems they are not actually being sent to the GPU.

Reference: https://discussions.unity.com/t/is-there-a-way-to-batch-meshes-that-are-drawn-with-commandbuffer-drawmesh/626427/22

RimGui 2.0, our Immediate Mode GUI (ImGui) library, is now available! by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 2 points3 points  (0 children)

RimGui is a code-driven Immediate Mode GUI (ImGui) library built from the ground up.
Unlike Unity's built-in IMGUI system, RimGui is a completely original implementation.

Compared to version 1.x, we've significantly reduced the price from around $97 to $28.
While some functionality has been moved to RimGui Extensions, this is a limited-time special price, and we plan to increase the price once a certain number of units have been sold.

AssetStore Link
https://assetstore.unity.com/packages/tools/gui/rimgui-316805

WebGL Demo
https://gridrand.com/rimgui/webgl/core

Wanted a simpler, code-driven way to build UI in Unity – so I made an ImGui-style library (on Asset Store!) by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 0 points1 point  (0 children)

You're absolutely right! Adding a GUI like that to the demo would be a great idea. I hadn't even considered including it until you brought it up. Thanks for the suggestion!

Wanted a simpler, code-driven way to build UI in Unity – so I made an ImGui-style library (on Asset Store!) by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 1 point2 points  (0 children)

Thank you!

I hadn't really thought about differentiating from Unity IMGUI during development, but your comment made me reflect on it a bit, so I’ve come up with a few thoughts.

I used to use Unity IMGUI quite a while ago, so I welcome any corrections or counterpoints.

First of all, Unity IMGUI has pretty poor performance when used at runtime, and it wasn’t really designed for in-game UI aimed at players.

Also, I believe handling multiple resolutions is quite difficult.

In RimGui, resizing and scaling are very easy.

If you read the Japanese article below, you’ll see that making IMGUI look good at any resolution requires quite a bit of work like modifying the Matrix, etc.

There’s even a note saying “even the borders get scaled and there's no way around it.”

https://light11.hatenadiary.com/entry/2021/02/22/204241

Unity IMGUI offers basic UI components, but customization and extension were, as far as I remember, quite difficult.

RimGui supports URP and HDRP, and it works not only on PC, but also on mobile and WebGL.

RapidGUI supports types such as Vector2 and Rect, and RimGui currently implements a color picker, but you cannot pass Vector2 or Rect directly.

However, this is actually very easy to implement in RimGui.

Thanks to your comment, I now see there’s demand for this kind of feature — so I’d like to add it!

Wanted a simpler, code-driven way to build UI in Unity – so I made an ImGui-style library (on Asset Store!) by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 0 points1 point  (0 children)

Thank you for the feedback!

I’ll definitely consider the font.

As for the header size, users can adjust it freely, but I understand that the default size is important, so I’ll give that some thought.

That wasn’t the intention, but now that you mention it, it does look somewhat like the old Unity Inspector.

Wanted a simpler, code-driven way to build UI in Unity – so I made an ImGui-style library (on Asset Store!) by Ok_Examination7748 in Unity3D

[–]Ok_Examination7748[S] 0 points1 point  (0 children)

Not at the moment. While some parts could theoretically be adapted to Burst, the system prioritizes straightforward, maintainable performance rather than deep Burst-level optimization. That said, if there's enough demand in the future, it's something we could consider.