diff --git a/App/main.cpp b/App/main.cpp index be5bdf4..3d5b497 100644 --- a/App/main.cpp +++ b/App/main.cpp @@ -48,13 +48,17 @@ protected: // 模型资产(AssetManager 负责加载/缓存/生命周期,返回句柄) // SunTemple:FBX + DDS 压缩贴图(DdsLoader 验证场景) + const auto model = GetAssets().LoadModel("assets/models/backpack/backpack.obj"); const auto temple = GetAssets().LoadModel("assets/models/SunTemple/SunTemple.fbx"); + m_Spinners.push_back(scene.CreateEntity("backpack")); + m_Spinners[0].AddComponent(MeshRendererComponent{model}); + // 地面:程序化纯色平面(半边长 15,中心 y=-2) const auto ground = GetAssets().CreatePlane(15.0f, 140, 140, 145); m_Ground = scene.CreateEntity("Ground"); - m_Ground.AddComponent() + m_Ground.GetComponent() // 出生即有,直接取 .SetPosition(glm::vec3(0.0f, -0.5f, 0.0f)) .Compose(); m_Ground.AddComponent(MeshRendererComponent{ground}); @@ -66,9 +70,9 @@ protected: camera.camera.SetPosition(glm::vec3(0.0f, 0.0f, 7.0f)); // 神庙实体 × 1( FBX 单位较大,缩放到场景尺度) - { + if (0){ auto e = scene.CreateEntity("SunTemple"); - e.AddComponent() + e.GetComponent() .SetScale(glm::vec3(0.05f)) .Compose(); e.AddComponent(MeshRendererComponent{temple}); diff --git a/Engine/src/ECS/Scene.cpp b/Engine/src/ECS/Scene.cpp index d687a0b..eab9e58 100644 --- a/Engine/src/ECS/Scene.cpp +++ b/Engine/src/ECS/Scene.cpp @@ -11,8 +11,9 @@ namespace Engine::ECS { EntityHandle Scene::CreateEntity(std::string name) { Entity e = m_Registry.create(); - // IdComponent 自动挂载:每个实体出生即有稳定 UUID + // 出生即有:UUID(稳定身份)+ Transform(空间存在性,Unity 语义) m_Registry.emplace(e, IdComponent{UUID::New()}); + m_Registry.emplace(e); if (!name.empty()) { m_Registry.emplace(e, NameComponent{std::move(name)}); }