Files
XCEngine/editor/src/Managers/SelectionManager.h
ssdfasd 9fae910854 Editor: 更新编辑器面板和UI控件系统
- 添加新的UI控件系统(Core.h, ScalarControls.h, VectorControls.h, UI.h)
- 更新SceneManager支持场景层级管理
- 优化SelectionManager选择管理
- 改进InspectorPanel/GameViewPanel/HierarchyPanel等面板
- 更新RHI文档说明Vulkan实现计划
2026-03-24 20:02:38 +08:00

42 lines
974 B
C++

#pragma once
#include <unordered_set>
#include <XCEngine/Core/Event.h>
#include <XCEngine/Components/GameObject.h>
namespace XCEngine {
namespace Editor {
class SelectionManager {
public:
static SelectionManager& Get() {
static SelectionManager instance;
return instance;
}
::XCEngine::Components::GameObject* GetSelectedEntity() const { return m_selectedEntity; }
void SetSelectedEntity(::XCEngine::Components::GameObject* entity) {
m_selectedEntity = entity;
OnSelectionChanged.Invoke(entity ? entity->GetID() : 0);
}
void ClearSelection() {
SetSelectedEntity(nullptr);
}
bool IsSelected(::XCEngine::Components::GameObject* entity) const {
return m_selectedEntity == entity;
}
::XCEngine::Core::Event<uint64_t> OnSelectionChanged;
private:
SelectionManager() = default;
::XCEngine::Components::GameObject* m_selectedEntity = nullptr;
};
}
}