Engine: 实现 Components 和 Scene 模块,包含完整单元测试

新增 Components 模块:
- Component 基类 (生命周期、启用状态管理)
- TransformComponent (本地/世界空间变换、矩阵缓存、父子层级)
- GameObject (组件管理、父子层级、激活状态、静态查找)

新增 Scene 模块:
- Scene (场景管理、对象创建销毁、查找、生命周期)
- SceneManager (单例模式、多场景管理、场景切换)

新增测试:
- test_component.cpp (12 个测试)
- test_transform_component.cpp (35 个测试)
- test_game_object.cpp (26 个测试)
- test_scene.cpp (20 个测试)
- test_scene_manager.cpp (17 个测试)

所有测试均已编译通过。
This commit is contained in:
2026-03-20 20:22:04 +08:00
parent 93139813aa
commit 00f70eccf1
10 changed files with 1164 additions and 1 deletions

View File

@@ -0,0 +1,28 @@
cmake_minimum_required(VERSION 3.15)
project(XCEngine_SceneTests)
set(SCENE_TEST_SOURCES
test_scene.cpp
test_scene_manager.cpp
)
add_executable(xcengine_scene_tests ${SCENE_TEST_SOURCES})
if(MSVC)
set_target_properties(xcengine_scene_tests PROPERTIES
LINK_FLAGS "/NODEFAULTLIB:libcpmt.lib /NODEFAULTLIB:libcmt.lib"
)
endif()
target_link_libraries(xcengine_scene_tests PRIVATE
XCEngine
GTest::gtest
GTest::gtest_main
)
target_include_directories(xcengine_scene_tests PRIVATE
${CMAKE_SOURCE_DIR}/engine/include
)
add_test(NAME SceneTests COMMAND xcengine_scene_tests)