All Projects → Green-Sky → imgui_entt_entity_editor

Green-Sky / imgui_entt_entity_editor

Licence: MIT license
A drop-in entity editor for EnTT with Dear ImGui

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to imgui entt entity editor

Entt
Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
Stars: ✭ 6,017 (+4021.23%)
Mutual labels:  ecs, entity-component-system, entt
Entitas Cpp
Entitas++ is a fast Entity Component System (ECS) C++11 port of Entitas C#
Stars: ✭ 229 (+56.85%)
Mutual labels:  ecs, entity-component-system
Egocs
EgoCS: An Entity (GameObject) Component System framework for Unity3D
Stars: ✭ 211 (+44.52%)
Mutual labels:  ecs, entity-component-system
Spartanengine
Game engine with an emphasis on architectual quality and performance
Stars: ✭ 869 (+495.21%)
Mutual labels:  imgui, entity-component-system
Ape Ecs
Entity-Component-System library for JavaScript.
Stars: ✭ 137 (-6.16%)
Mutual labels:  ecs, entity-component-system
Uecs
Ubpa Entity-Component-System (U ECS) in Unity3D-style
Stars: ✭ 174 (+19.18%)
Mutual labels:  ecs, entity-component-system
Lumos
Cross-Platform C++ 2D/3D game engine
Stars: ✭ 343 (+134.93%)
Mutual labels:  imgui, ecs
Edyn
Edyn is a real-time physics engine organized as an ECS.
Stars: ✭ 113 (-22.6%)
Mutual labels:  ecs, entity-component-system
SpaceWar-ECS
A space war game made with ECS and JobSystem in Unity.
Stars: ✭ 26 (-82.19%)
Mutual labels:  ecs, entity-component-system
ECS
Entity-Component-System
Stars: ✭ 122 (-16.44%)
Mutual labels:  ecs, entity-component-system
ent-comp
A light, fast Entity Component System in JS
Stars: ✭ 25 (-82.88%)
Mutual labels:  ecs, entity-component-system
Flecs
A fast entity component system (ECS) for C & C++
Stars: ✭ 2,201 (+1407.53%)
Mutual labels:  ecs, entity-component-system
Pyro
A linear Entity Component System
Stars: ✭ 125 (-14.38%)
Mutual labels:  ecs, entity-component-system
Awesome Entity Component System
😎 A curated list of Entity-Component-System (ECS) libraries and resources
Stars: ✭ 180 (+23.29%)
Mutual labels:  ecs, entity-component-system
Gdk For Unity Fps Starter Project
SpatialOS GDK for Unity FPS Starter Project
Stars: ✭ 119 (-18.49%)
Mutual labels:  ecs, entity-component-system
Octopuskit
2D ECS game engine in 100% Swift + SwiftUI for iOS, macOS, tvOS
Stars: ✭ 246 (+68.49%)
Mutual labels:  ecs, entity-component-system
rockgo
A developing game server framework,based on Entity Component System(ECS).
Stars: ✭ 617 (+322.6%)
Mutual labels:  ecs, entity-component-system
Entitas Sync Framework
Networking framework for Entitas ECS. Targeted at turnbased games or other slow-paced genres.
Stars: ✭ 98 (-32.88%)
Mutual labels:  ecs, entity-component-system
Entitas Lite
Entitas-Lite is a No-CodeGenerator branch of Entitas, and also a fast & easy ECS framework for C#/Unity.
Stars: ✭ 106 (-27.4%)
Mutual labels:  ecs, entity-component-system
Sequentity
A single-file, immediate-mode sequencer widget for C++17, Dear ImGui and EnTT
Stars: ✭ 134 (-8.22%)
Mutual labels:  imgui, ecs

imgui_entt_entity_editor

A drop-in, single-file entity editor for EnTT, with ImGui as graphical backend. Originally developed for MushMachine.

demo-code (live)

Editor screenshot0

Editor with Entiy-List screenshot1

With Drag and Drop vid

example usage

struct Transform {
    float x = 0.f;
    float y = 0.f;
};

struct Velocity {
    float x = 0.f;
    float y = 0.f;
};

namespace MM {
template <>
void ComponentEditorWidget<Transform>(entt::registry& reg, entt::registry::entity_type e)
{
	auto& t = reg.get<Transform>(e);
	ImGui::DragFloat("x", &t.x, 0.1f);
	ImGui::DragFloat("y", &t.y, 0.1f);
}

template <>
void ComponentEditorWidget<Velocity>(entt::registry& reg, entt::registry::entity_type e)
{
	auto& v = reg.get<Velocity>(e);
	ImGui::DragFloat("x", &v.x, 0.1f);
	ImGui::DragFloat("y", &v.y, 0.1f);
}
}


entt::registry reg;
MM::EntityEditor<entt::entity> editor;

editor.registerComponent<Transform>("Transform");
editor.registerComponent<Velocity>("Velocity");

Dependencies

The editor uses EnTTv3.11.0 and ImGui. (tested with ImGui 1.68, 1.72b, 1.75, 1.78, 1.82, 1.85, 1.87) To use it with EnTTv3.0.0, use the dedicated branch. For specific EnTT version check the tags, if a new EnTT version does not require a update, I won't make a new Release. Releases available for EnTT 3.1.0, 3.1.1, 3.2.0, 3.2.1, 3.2.2, 3.3.x, 3.4.0, 3.6.0-3.8.1, 3.9.0, 3.10.0, 3.11.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].