mirror of
https://github.com/kevinporetti/UnrealImGui.git
synced 2025-01-18 08:20:32 +00:00
84 lines
4.3 KiB
Markdown
84 lines
4.3 KiB
Markdown
Unreal ImGui
|
|
============
|
|
|
|
[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE.md)
|
|
|
|
Unreal ImGui is an Unreal Engine 4 plug-in which integrates [Dear ImGui](https://github.com/ocornut/imgui) framework developed by Omar Cornut.
|
|
|
|
Dear ImGui simplifies and helps with creation of quality visualisation and debugging tools for your Unreal projects.
|
|
|
|
|
|
Status
|
|
------
|
|
Supported engine version: 4.20.2*
|
|
|
|
\* *Plugin has been tested and if necessary updated to compile and work with this engine version. As long as possible I will try to maintain backward compatibility of existing features and possibly but not necessarily when adding new features. Right now it should be at least backward compatible with the engine version 4.15.*
|
|
|
|
|
|
About
|
|
-----
|
|
|
|
This plug-in adds to Unreal project ImGui module. Adding it as as a dependency to other modules enables them to use Dear ImGui framework.
|
|
|
|
The base aim of the project is to provide a basic integration of Dear ImGui, without imposing any patters how it should be used in projects.
|
|
|
|
This is a work in progress but it supports key Unreal features, like Multi-PIE sessions etc.
|
|
|
|
When running Multi-PIE session, each world gets its own ImGui context to draw world specific data. When world update begins contexts are switched automatically, so using ImGui during objects update should be as easy as calling ImGui API functions.
|
|
|
|
For scenarios where automatic context switching above is not enough I'm planning to add mechanism allowing to explicitly select contexts. After that I plan to add example project, more usability features, better documentation and integration of Remote ImGui which enables using ImGui from a browser and to investigate possibility of opening ImGui for Blueprints.
|
|
|
|
|
|
How to use it
|
|
-------------
|
|
|
|
To use this plug-in, you will need a C++ Unreal project.
|
|
|
|
Content of this repository needs to be placed in *Plugins* directory under project's root: */Plugins/ImGui*. After you compile and run you should notice that *ImGui* module is now available.
|
|
|
|
To use that in other modules you will need to declare it as a public or private dependency in those modules' Build.cs files:
|
|
|
|
```
|
|
PublicDependencyModuleNames.AddRange(new string[] { "ImGui" });
|
|
```
|
|
or
|
|
|
|
```
|
|
PrivateDependencyModuleNames.AddRange(new string[] { "ImGui" });
|
|
```
|
|
|
|
You should now be able to use ImGui.
|
|
|
|
|
|
### Console variables
|
|
|
|
- **ImGui.InputEnabled** - Enable or disable ImGui input mode. 0: disabled (default); 1: enabled, input is routed to ImGui and with a few exceptions is consumed. Note: this is going to be supported by a keyboard short-cut, but in the meantime ImGui input can be enabled/disabled using console.
|
|
- **ImGui.DrawMouseCursor** - Whether or not mouse cursor in input mode should be drawn by ImGui. 0: disabled, hardware cursor will be used (default); 1: enabled, ImGui will take care for drawing mouse cursor.
|
|
- **ImGui.ShowDemo** - Show ImGui demo. 0: disabled (default); 1: enabled.
|
|
- **ImGui.Debug.Widget** - Show self-debug for the widget that renders ImGui output. 0: disabled (default); 1: enabled.
|
|
|
|
|
|
### Canvas Map Mode
|
|
|
|
When input mode is enabled, it is possible to activate *Canvas Map Mode* (better name welcomed) by pressing and holding `Left Shift` + `Left Alt` keys. In this mode it is possible to drag ImGui canvas and change its scale. It can be helpful to temporarily reach areas of canvas that otherwise would be inaccessible and to change what part of the canvas should be visible in normal mode.
|
|
|
|
In canvas map mode:
|
|
- **Mouse Wheel** - to zoom in and out.
|
|
- **Right Mouse Button** - to drag ImGui canvas (not available at maximum zoom out).
|
|
- **Middle Mouse Button** - to drag frame that represents part of the ImGui canvas that is visible in normal mode (only available after zooming out). To start dragging mouse needs to be in the centre of that frame.
|
|
- It is still possible to use remaining keys and gestures to use ImGui, but primary goal is to select part of the canvas visible in normal mode.
|
|
- Releasing `Left Shift` and/or `Left Alt` key switches back to normal mode and automatically sets scale to 1.
|
|
|
|
|
|
See also
|
|
--------
|
|
|
|
- [Dear ImGui](https://github.com/ocornut/imgui)
|
|
- [An Introduction to UE4 Plugins](https://wiki.unrealengine.com/An_Introduction_to_UE4_Plugins).
|
|
|
|
|
|
License
|
|
-------
|
|
|
|
Unreal ImGui is licensed under the MIT License, see LICENSE for more information.
|