Description
Changelog
Reviews (1)
Dear ImGUI is a handy-dandy immediate mode graphical user interface commonly used for tooling and debugging.
NOTICE: After updating the addon or changing engine versions, restart the engine, then toggle the plugin and singleton off and on again.
Supports
- Editor: Godot 4.3+
- Language: GDScript, C#, Rust
- Platform: Windows, Linux, macOS, Web
Usage - GDScript
ImGui is a global Node (ImGuiApi class). Build UI inside its per-frame imgui_layout signal (emitted from Rust):
func _ready() -> void:
ImGui.imgui_layout.connect(self._on_layout)
func _on_layout() -> void:
if ImGui.begin("Window"):
ImGui.text("hello")
if ImGui.button("ok", 0.0, 0.0):
print("clicked")
ImGui.end()
Usage - CSharp
On the .NET build of Godot, drive the same API from C# via the static ImGui wrapper (addons/dear-imgui-godot/dotnet/ImGui.cs). It mirrors the GDScript methods. Connect a handler with ImGui.OnLayout to build UI.
using Godot;inside
public partial class ImGuiExample : Node
{
public override void _Ready() => ImGui.OnLayout(OnLayout);
private void OnLayout()
{
if (ImGui.Begin("Window"))
{
ImGui.Text("hello");
if (ImGui.Button("ok"))
GD.Print("clicked");
}
ImGui.End();
}
}
Usage - Rust
For complete imgui-rs API access, build UI in Rust with with_ui, called from a handler connected to imgui_layout.
use godot::prelude::*;
use crate::with_ui;
#[godot_api]
impl ImGuiExample {
#[func]
fn on_layout(&mut self) {
with_ui(|ui| {
ui.window("Rust window").build(|| {
ui.text("the entire imgui-rs API is available here");
// ui.slider(...), ui.plot_lines(...), ui.input_text(...), etc.
});
});
}
}
Changelog for version 1.17.1
No changelog provided for this version.