You are viewing a potentially older version of this package. View all versions.
Snosz-UBImGui-1.0.0 icon

UBImGui

A plugin that allows mod developers to use Dear ImGui in Unity.

By Snosz
Date uploaded 4 days ago
Version 1.0.0
Download link Snosz-UBImGui-1.0.0.zip
Downloads 303
Dependency string Snosz-UBImGui-1.0.0

This mod requires the following mods to function

BepInEx-BepInExPack_PEAK-5.4.75301 icon
BepInEx-BepInExPack_PEAK

BepInEx pack for PEAK. Preconfigured and ready to use.

Preferred version: 5.4.75301

README

UBImGui

A plugin that allows mod developers to use Dear ImGui in Unity.

Supports DX12, DX11 and Vulkan.

Based on the UBImGui repo by MasterSix997.
https://github.com/MasterSix997/UBImGui

Guide for Modders

First add this mod dll as a project reference for your mod. Then you can add a dependency to the mod to ensure your mod runs after UBImGui.

[BepInDependency("com.snosz.ubimgui", BepInDependency.DependencyFlags.HardDependency)]

An example window.

using ImGuiNET;
using UnityEngine;

public class SimpleWindow : MonoBehaviour
{
    private void OnEnable()
    {
        ImGui.Layout += OnLayout;
    }

    private void OnDisable()
    {
        ImGui.Layout -= OnLayout;
    }

    // Fields to be used in the window
    private bool enableFields;
    // As this string is not serialized (public or [SerializeField]), it is necessary to initialize it before using
    private string textValue = "";
    private float sliderValue;
    private Vector3 vector3Value;
    
    private void OnLayout()
    {
        // Begin a new window called "Simple Window"
        // If the window is collapsed, there is no need to create widgets (no need to call ImGui.End())
        if (ImGui.Begin("Simple Window"))
        {
            // Add some text to the window
            ImGui.Text("Im a text");
            
            // If the button is clicked, log a message to the console
            if (ImGui.Button("Click Me!"))
            {
                Debug.Log("Thanks :)");
            }

            // Add a checkbox to enable/disable fields
            ImGui.Checkbox("Toggle Fields", ref enableFields);

            // If fields are enabled, add widgets
            if (enableFields)
            {
                // Add input fields for text, slider, and vector3
                ImGui.InputText("Text Field", ref textValue, 100);
                ImGui.SliderFloat("Slider Field", ref sliderValue, 0, 100);
                ImGui.SliderFloat3("Vector3 Field", ref vector3Value, -10, 10);
            }

            // End the "Simple Window"
            ImGui.End();
        }
    }
}

More info is in the original repo.

CHANGELOG

Changelog

[1.0.0]

  • Initial release