feat: 清理默认场景中的多余3D网格与光源,仅保留相机和方向光,同步更新冒烟测试并重新烘焙运行时场景
This commit is contained in:
parent
4a95a1a4d5
commit
e85a5b8422
BIN
SandboxProject/Runtime/Bindings.mcruntime
Normal file
BIN
SandboxProject/Runtime/Bindings.mcruntime
Normal file
Binary file not shown.
BIN
SandboxProject/Runtime/DataSources.mcruntime
Normal file
BIN
SandboxProject/Runtime/DataSources.mcruntime
Normal file
Binary file not shown.
BIN
SandboxProject/Runtime/ProjectRuntime.mcruntimecfg
Normal file
BIN
SandboxProject/Runtime/ProjectRuntime.mcruntimecfg
Normal file
Binary file not shown.
17
SandboxProject/Runtime/RuntimeReplay.mcstream
Normal file
17
SandboxProject/Runtime/RuntimeReplay.mcstream
Normal file
@ -0,0 +1,17 @@
|
||||
# emit_after_seconds data_point_id value_type payload
|
||||
0.00 cube.position vec3 0.0 0.5 0.0
|
||||
0.00 cube.visible bool true
|
||||
0.00 cube.base_color vec3 0.4 0.6 0.9
|
||||
0.00 valve.visible bool true
|
||||
0.00 tank.base_color vec3 0.35 0.65 0.90
|
||||
0.00 alarm.intensity double 0.0
|
||||
0.50 cube.position vec3 1.5 0.5 0.0
|
||||
0.50 cube.base_color vec3 0.8 0.6 0.5
|
||||
0.50 tank.base_color vec3 0.20 0.80 0.25
|
||||
0.50 alarm.intensity double 2.0
|
||||
1.00 cube.visible bool false
|
||||
1.00 valve.visible bool false
|
||||
1.50 cube.position vec3 -1.5 0.5 0.0
|
||||
1.50 cube.visible bool true
|
||||
1.50 valve.visible bool true
|
||||
1.50 alarm.intensity double 0.0
|
||||
Binary file not shown.
@ -57,575 +57,14 @@
|
||||
1.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": 3,
|
||||
"MeshRenderer": {
|
||||
"AlphaCutoff": 0.5,
|
||||
"AlphaMode": 0,
|
||||
"AoTextureGuid": "",
|
||||
"AoTexturePath": "",
|
||||
"BaseColor": [
|
||||
0.75,
|
||||
0.7799999713897705,
|
||||
0.8399999737739563
|
||||
],
|
||||
"BaseColorTextureGuid": "",
|
||||
"BaseColorTexturePath": "",
|
||||
"BuiltinMesh": 0,
|
||||
"DoubleSided": true,
|
||||
"EmissiveColor": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"EmissiveTextureGuid": "",
|
||||
"EmissiveTexturePath": "",
|
||||
"MaterialAssetGuids": [],
|
||||
"MeshAssetGuid": "",
|
||||
"MeshSource": 1,
|
||||
"Metallic": 0.0,
|
||||
"MetallicRoughnessTextureGuid": "",
|
||||
"MetallicRoughnessTexturePath": "",
|
||||
"ModelNodeIndex": -1,
|
||||
"NormalTextureGuid": "",
|
||||
"NormalTexturePath": "",
|
||||
"Roughness": 1.0,
|
||||
"SourceModelAssetGuid": "",
|
||||
"SourceModelPath": "Assets/Models/box1.glb",
|
||||
"SourceNodePath": "",
|
||||
"SubMeshIndex": -1,
|
||||
"Visible": true
|
||||
},
|
||||
"Name": "box1.glb",
|
||||
"ParentId": 0,
|
||||
"Transform": {
|
||||
"Position": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.0
|
||||
],
|
||||
"RotationEulerDegrees": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"Scale": [
|
||||
1.0,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": 4,
|
||||
"Light": {
|
||||
"Color": [
|
||||
1.0,
|
||||
0.15000000596046448,
|
||||
0.10000000149011612
|
||||
],
|
||||
"Intensity": 0.0
|
||||
},
|
||||
"Name": "Alarm Beacon",
|
||||
"ParentId": 0,
|
||||
"Transform": {
|
||||
"Position": [
|
||||
0.0,
|
||||
2.5,
|
||||
0.0
|
||||
],
|
||||
"RotationEulerDegrees": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"Scale": [
|
||||
1.0,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": 5,
|
||||
"MeshRenderer": {
|
||||
"AlphaCutoff": 0.5,
|
||||
"AlphaMode": 0,
|
||||
"AoTextureGuid": "",
|
||||
"AoTexturePath": "",
|
||||
"BaseColor": [
|
||||
0.75,
|
||||
0.7799999713897705,
|
||||
0.8399999737739563
|
||||
],
|
||||
"BaseColorTextureGuid": "",
|
||||
"BaseColorTexturePath": "",
|
||||
"BuiltinMesh": 0,
|
||||
"DoubleSided": true,
|
||||
"EmissiveColor": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"EmissiveTextureGuid": "",
|
||||
"EmissiveTexturePath": "",
|
||||
"MaterialAssetGuids": [],
|
||||
"MeshAssetGuid": "",
|
||||
"MeshSource": 1,
|
||||
"Metallic": 0.0,
|
||||
"MetallicRoughnessTextureGuid": "",
|
||||
"MetallicRoughnessTexturePath": "",
|
||||
"ModelNodeIndex": 0,
|
||||
"NormalTextureGuid": "",
|
||||
"NormalTexturePath": "",
|
||||
"Roughness": 1.0,
|
||||
"SourceModelAssetGuid": "",
|
||||
"SourceModelPath": "",
|
||||
"SourceNodePath": "",
|
||||
"SubMeshIndex": -1,
|
||||
"Visible": true
|
||||
},
|
||||
"Name": "立方体",
|
||||
"ParentId": 3,
|
||||
"Transform": {
|
||||
"Position": [
|
||||
-1.6927926540374756,
|
||||
-4.459673881530762,
|
||||
1.949385364241607e-07
|
||||
],
|
||||
"RotationEulerDegrees": [
|
||||
0.0,
|
||||
-0.0,
|
||||
0.0
|
||||
],
|
||||
"Scale": [
|
||||
0.9999998807907104,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": 6,
|
||||
"MeshRenderer": {
|
||||
"AlphaCutoff": 0.5,
|
||||
"AlphaMode": 0,
|
||||
"AoTextureGuid": "",
|
||||
"AoTexturePath": "",
|
||||
"BaseColor": [
|
||||
0.75,
|
||||
0.7799999713897705,
|
||||
0.8399999737739563
|
||||
],
|
||||
"BaseColorTextureGuid": "",
|
||||
"BaseColorTexturePath": "",
|
||||
"BuiltinMesh": 0,
|
||||
"DoubleSided": true,
|
||||
"EmissiveColor": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"EmissiveTextureGuid": "",
|
||||
"EmissiveTexturePath": "",
|
||||
"MaterialAssetGuids": [],
|
||||
"MeshAssetGuid": "",
|
||||
"MeshSource": 1,
|
||||
"Metallic": 0.0,
|
||||
"MetallicRoughnessTextureGuid": "",
|
||||
"MetallicRoughnessTexturePath": "",
|
||||
"ModelNodeIndex": 1,
|
||||
"NormalTextureGuid": "",
|
||||
"NormalTexturePath": "",
|
||||
"Roughness": 1.0,
|
||||
"SourceModelAssetGuid": "",
|
||||
"SourceModelPath": "",
|
||||
"SourceNodePath": "",
|
||||
"SubMeshIndex": -1,
|
||||
"Visible": true
|
||||
},
|
||||
"Name": "立方体.001",
|
||||
"ParentId": 5,
|
||||
"Transform": {
|
||||
"Position": [
|
||||
0.0,
|
||||
-3.55507755279541,
|
||||
1.553973731915903e-07
|
||||
],
|
||||
"RotationEulerDegrees": [
|
||||
0.0,
|
||||
-0.0,
|
||||
0.0
|
||||
],
|
||||
"Scale": [
|
||||
0.9999998807907104,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": 7,
|
||||
"MeshRenderer": {
|
||||
"AlphaCutoff": 0.5,
|
||||
"AlphaMode": 0,
|
||||
"AoTextureGuid": "",
|
||||
"AoTexturePath": "",
|
||||
"BaseColor": [
|
||||
0.75,
|
||||
0.7799999713897705,
|
||||
0.8399999737739563
|
||||
],
|
||||
"BaseColorTextureGuid": "",
|
||||
"BaseColorTexturePath": "",
|
||||
"BuiltinMesh": 0,
|
||||
"DoubleSided": true,
|
||||
"EmissiveColor": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"EmissiveTextureGuid": "",
|
||||
"EmissiveTexturePath": "",
|
||||
"MaterialAssetGuids": [],
|
||||
"MeshAssetGuid": "",
|
||||
"MeshSource": 1,
|
||||
"Metallic": 0.0,
|
||||
"MetallicRoughnessTextureGuid": "",
|
||||
"MetallicRoughnessTexturePath": "",
|
||||
"ModelNodeIndex": 2,
|
||||
"NormalTextureGuid": "",
|
||||
"NormalTexturePath": "",
|
||||
"Roughness": 1.0,
|
||||
"SourceModelAssetGuid": "",
|
||||
"SourceModelPath": "",
|
||||
"SourceNodePath": "",
|
||||
"SubMeshIndex": -1,
|
||||
"Visible": true
|
||||
},
|
||||
"Name": "立方体.007",
|
||||
"ParentId": 6,
|
||||
"Transform": {
|
||||
"Position": [
|
||||
4.175572872161865,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"RotationEulerDegrees": [
|
||||
0.0,
|
||||
-0.0,
|
||||
0.0
|
||||
],
|
||||
"Scale": [
|
||||
0.9999998807907104,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": 8,
|
||||
"MeshRenderer": {
|
||||
"AlphaCutoff": 0.5,
|
||||
"AlphaMode": 0,
|
||||
"AoTextureGuid": "",
|
||||
"AoTexturePath": "",
|
||||
"BaseColor": [
|
||||
0.75,
|
||||
0.7799999713897705,
|
||||
0.8399999737739563
|
||||
],
|
||||
"BaseColorTextureGuid": "",
|
||||
"BaseColorTexturePath": "",
|
||||
"BuiltinMesh": 0,
|
||||
"DoubleSided": true,
|
||||
"EmissiveColor": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"EmissiveTextureGuid": "",
|
||||
"EmissiveTexturePath": "",
|
||||
"MaterialAssetGuids": [],
|
||||
"MeshAssetGuid": "",
|
||||
"MeshSource": 1,
|
||||
"Metallic": 0.0,
|
||||
"MetallicRoughnessTextureGuid": "",
|
||||
"MetallicRoughnessTexturePath": "",
|
||||
"ModelNodeIndex": 3,
|
||||
"NormalTextureGuid": "",
|
||||
"NormalTexturePath": "",
|
||||
"Roughness": 1.0,
|
||||
"SourceModelAssetGuid": "",
|
||||
"SourceModelPath": "",
|
||||
"SourceNodePath": "",
|
||||
"SubMeshIndex": -1,
|
||||
"Visible": true
|
||||
},
|
||||
"Name": "立方体.003",
|
||||
"ParentId": 3,
|
||||
"Transform": {
|
||||
"Position": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"RotationEulerDegrees": [
|
||||
0.0,
|
||||
-0.0,
|
||||
0.0
|
||||
],
|
||||
"Scale": [
|
||||
0.9999998807907104,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": 9,
|
||||
"MeshRenderer": {
|
||||
"AlphaCutoff": 0.5,
|
||||
"AlphaMode": 0,
|
||||
"AoTextureGuid": "",
|
||||
"AoTexturePath": "",
|
||||
"BaseColor": [
|
||||
0.75,
|
||||
0.7799999713897705,
|
||||
0.8399999737739563
|
||||
],
|
||||
"BaseColorTextureGuid": "",
|
||||
"BaseColorTexturePath": "",
|
||||
"BuiltinMesh": 0,
|
||||
"DoubleSided": true,
|
||||
"EmissiveColor": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"EmissiveTextureGuid": "",
|
||||
"EmissiveTexturePath": "",
|
||||
"MaterialAssetGuids": [],
|
||||
"MeshAssetGuid": "",
|
||||
"MeshSource": 1,
|
||||
"Metallic": 0.0,
|
||||
"MetallicRoughnessTextureGuid": "",
|
||||
"MetallicRoughnessTexturePath": "",
|
||||
"ModelNodeIndex": 4,
|
||||
"NormalTextureGuid": "",
|
||||
"NormalTexturePath": "",
|
||||
"Roughness": 1.0,
|
||||
"SourceModelAssetGuid": "",
|
||||
"SourceModelPath": "",
|
||||
"SourceNodePath": "",
|
||||
"SubMeshIndex": -1,
|
||||
"Visible": true
|
||||
},
|
||||
"Name": "立方体.002",
|
||||
"ParentId": 8,
|
||||
"Transform": {
|
||||
"Position": [
|
||||
0.0,
|
||||
-1.4481612709005276e-07,
|
||||
-3.31300687789917
|
||||
],
|
||||
"RotationEulerDegrees": [
|
||||
0.0,
|
||||
-0.0,
|
||||
0.0
|
||||
],
|
||||
"Scale": [
|
||||
0.9999998807907104,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": 10,
|
||||
"MeshRenderer": {
|
||||
"AlphaCutoff": 0.5,
|
||||
"AlphaMode": 0,
|
||||
"AoTextureGuid": "",
|
||||
"AoTexturePath": "",
|
||||
"BaseColor": [
|
||||
0.75,
|
||||
0.7799999713897705,
|
||||
0.8399999737739563
|
||||
],
|
||||
"BaseColorTextureGuid": "",
|
||||
"BaseColorTexturePath": "",
|
||||
"BuiltinMesh": 0,
|
||||
"DoubleSided": true,
|
||||
"EmissiveColor": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"EmissiveTextureGuid": "",
|
||||
"EmissiveTexturePath": "",
|
||||
"MaterialAssetGuids": [],
|
||||
"MeshAssetGuid": "",
|
||||
"MeshSource": 1,
|
||||
"Metallic": 0.0,
|
||||
"MetallicRoughnessTextureGuid": "",
|
||||
"MetallicRoughnessTexturePath": "",
|
||||
"ModelNodeIndex": 5,
|
||||
"NormalTextureGuid": "",
|
||||
"NormalTexturePath": "",
|
||||
"Roughness": 1.0,
|
||||
"SourceModelAssetGuid": "",
|
||||
"SourceModelPath": "",
|
||||
"SourceNodePath": "",
|
||||
"SubMeshIndex": -1,
|
||||
"Visible": true
|
||||
},
|
||||
"Name": "立方体.004",
|
||||
"ParentId": 8,
|
||||
"Transform": {
|
||||
"Position": [
|
||||
3.776623010635376,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"RotationEulerDegrees": [
|
||||
0.0,
|
||||
-0.0,
|
||||
0.0
|
||||
],
|
||||
"Scale": [
|
||||
0.9999998807907104,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": 11,
|
||||
"MeshRenderer": {
|
||||
"AlphaCutoff": 0.5,
|
||||
"AlphaMode": 0,
|
||||
"AoTextureGuid": "",
|
||||
"AoTexturePath": "",
|
||||
"BaseColor": [
|
||||
0.75,
|
||||
0.7799999713897705,
|
||||
0.8399999737739563
|
||||
],
|
||||
"BaseColorTextureGuid": "",
|
||||
"BaseColorTexturePath": "",
|
||||
"BuiltinMesh": 0,
|
||||
"DoubleSided": true,
|
||||
"EmissiveColor": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"EmissiveTextureGuid": "",
|
||||
"EmissiveTexturePath": "",
|
||||
"MaterialAssetGuids": [],
|
||||
"MeshAssetGuid": "",
|
||||
"MeshSource": 1,
|
||||
"Metallic": 0.0,
|
||||
"MetallicRoughnessTextureGuid": "",
|
||||
"MetallicRoughnessTexturePath": "",
|
||||
"ModelNodeIndex": 6,
|
||||
"NormalTextureGuid": "",
|
||||
"NormalTexturePath": "",
|
||||
"Roughness": 1.0,
|
||||
"SourceModelAssetGuid": "",
|
||||
"SourceModelPath": "",
|
||||
"SourceNodePath": "",
|
||||
"SubMeshIndex": -1,
|
||||
"Visible": true
|
||||
},
|
||||
"Name": "立方体.005",
|
||||
"ParentId": 8,
|
||||
"Transform": {
|
||||
"Position": [
|
||||
0.0,
|
||||
4.31797981262207,
|
||||
-1.8874489171594178e-07
|
||||
],
|
||||
"RotationEulerDegrees": [
|
||||
0.0,
|
||||
-0.0,
|
||||
0.0
|
||||
],
|
||||
"Scale": [
|
||||
0.9999998807907104,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"Id": 12,
|
||||
"MeshRenderer": {
|
||||
"AlphaCutoff": 0.5,
|
||||
"AlphaMode": 0,
|
||||
"AoTextureGuid": "",
|
||||
"AoTexturePath": "",
|
||||
"BaseColor": [
|
||||
0.75,
|
||||
0.7799999713897705,
|
||||
0.8399999737739563
|
||||
],
|
||||
"BaseColorTextureGuid": "",
|
||||
"BaseColorTexturePath": "",
|
||||
"BuiltinMesh": 0,
|
||||
"DoubleSided": true,
|
||||
"EmissiveColor": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"EmissiveTextureGuid": "",
|
||||
"EmissiveTexturePath": "",
|
||||
"MaterialAssetGuids": [],
|
||||
"MeshAssetGuid": "",
|
||||
"MeshSource": 1,
|
||||
"Metallic": 0.0,
|
||||
"MetallicRoughnessTextureGuid": "",
|
||||
"MetallicRoughnessTexturePath": "",
|
||||
"ModelNodeIndex": 7,
|
||||
"NormalTextureGuid": "",
|
||||
"NormalTexturePath": "",
|
||||
"Roughness": 1.0,
|
||||
"SourceModelAssetGuid": "",
|
||||
"SourceModelPath": "",
|
||||
"SourceNodePath": "",
|
||||
"SubMeshIndex": -1,
|
||||
"Visible": true
|
||||
},
|
||||
"Name": "立方体.006",
|
||||
"ParentId": 8,
|
||||
"Transform": {
|
||||
"Position": [
|
||||
-12.448348045349121,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"RotationEulerDegrees": [
|
||||
0.0,
|
||||
0.0,
|
||||
-0.0
|
||||
],
|
||||
"Scale": [
|
||||
0.9999998807907104,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"SceneName": "Untitled",
|
||||
"Selection": {
|
||||
"ActiveObjectId": 12,
|
||||
"ActiveObjectId": 1,
|
||||
"SelectedObjectIds": [
|
||||
12
|
||||
1
|
||||
],
|
||||
"SelectionAnchorId": 12
|
||||
"SelectionAnchorId": 1
|
||||
}
|
||||
}
|
||||
@ -457,20 +457,6 @@ MetaCoreScene MetaCoreCreateDefaultScene() {
|
||||
directionalLight.AddComponent<MetaCoreLightComponent>();
|
||||
directionalLight.GetComponent<MetaCoreTransformComponent>().RotationEulerDegrees = glm::vec3(-45.0F, 30.0F, 0.0F);
|
||||
|
||||
MetaCoreGameObject cube = scene.CreateGameObject("box1.glb");
|
||||
auto& meshRenderer = cube.AddComponent<MetaCoreMeshRendererComponent>();
|
||||
meshRenderer.MeshSource = MetaCoreMeshSourceKind::Asset;
|
||||
meshRenderer.SourceModelPath = "Assets/Models/box1.glb";
|
||||
meshRenderer.SourceModelAssetGuid = MetaCoreAssetRegistry::Get().ResolvePathToGuid("Assets/Models/box1.glb");
|
||||
cube.AddComponent<MetaCoreModelRootTag>(MetaCoreModelRootTag{ "Assets/Models/box1.glb" });
|
||||
cube.GetComponent<MetaCoreTransformComponent>().Position = glm::vec3(0.0F, 0.5F, 0.0F);
|
||||
|
||||
MetaCoreGameObject alarmBeacon = scene.CreateGameObject("Alarm Beacon");
|
||||
auto& beaconLight = alarmBeacon.AddComponent<MetaCoreLightComponent>();
|
||||
beaconLight.Intensity = 0.0F;
|
||||
beaconLight.Color = glm::vec3(1.0F, 0.15F, 0.1F);
|
||||
alarmBeacon.GetComponent<MetaCoreTransformComponent>().Position = glm::vec3(0.0F, 2.5F, 0.0F);
|
||||
|
||||
return scene;
|
||||
}
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
#include "MetaCoreFoundation/MetaCoreGeneratedReflection.h"
|
||||
#include "MetaCoreFoundation/MetaCoreLogService.h"
|
||||
#include "MetaCoreFoundation/MetaCoreProject.h"
|
||||
#include "MetaCoreFoundation/MetaCoreAssetRegistry.h"
|
||||
#include "MetaCorePlatform/MetaCoreWindow.h"
|
||||
#include "MetaCoreRender/MetaCoreEditorViewportRenderer.h"
|
||||
#include "MetaCoreRender/MetaCoreRenderDevice.h"
|
||||
@ -593,16 +594,16 @@ void MetaCoreTestJsonSceneSaveCurrentSceneUsesMcsceneJson() {
|
||||
const auto scenePersistenceService = moduleRegistry.ResolveService<MetaCore::MetaCoreIScenePersistenceService>();
|
||||
MetaCoreExpect(scenePersistenceService != nullptr, "应解析到 ScenePersistenceService");
|
||||
|
||||
MetaCore::MetaCoreId cubeId = 0;
|
||||
MetaCore::MetaCoreId lightId = 0;
|
||||
for (const MetaCore::MetaCoreGameObject& object : scene.GetGameObjects()) {
|
||||
if (object.GetName() == "box1.glb") {
|
||||
cubeId = object.GetId();
|
||||
if (object.GetName() == "Directional Light") {
|
||||
lightId = object.GetId();
|
||||
break;
|
||||
}
|
||||
}
|
||||
MetaCoreExpect(cubeId != 0, "默认场景应包含 box1.glb");
|
||||
MetaCoreExpect(lightId != 0, "默认场景应包含 Directional Light");
|
||||
|
||||
editorContext.SelectOnly(cubeId);
|
||||
editorContext.SelectOnly(lightId);
|
||||
const std::filesystem::path scenePath = std::filesystem::path("Scenes") / "Main.mcscene.json";
|
||||
MetaCoreExpect(scenePersistenceService->SaveSceneAs(editorContext, scenePath), "应能保存 JSON 场景");
|
||||
MetaCoreExpect(scenePersistenceService->GetCurrentScenePath() == scenePath, "当前场景路径应使用 .mcscene.json");
|
||||
@ -611,7 +612,7 @@ void MetaCoreTestJsonSceneSaveCurrentSceneUsesMcsceneJson() {
|
||||
MetaCoreExpect(!scenePersistenceService->IsSceneDirty(), "保存后场景不应为 dirty");
|
||||
|
||||
const bool renamed = editorContext.ExecuteSnapshotCommand("重命名对象", [&]() {
|
||||
return scene.RenameGameObject(cubeId, "RoundTripCube");
|
||||
return scene.RenameGameObject(lightId, "RoundTripLight");
|
||||
});
|
||||
MetaCoreExpect(renamed, "应能修改场景对象");
|
||||
MetaCoreExpect(scenePersistenceService->IsSceneDirty(), "修改后场景应变为 dirty");
|
||||
@ -624,17 +625,17 @@ void MetaCoreTestJsonSceneSaveCurrentSceneUsesMcsceneJson() {
|
||||
MetaCoreExpect(scene.GetGameObjects().empty(), "清空快照后场景应为空");
|
||||
|
||||
MetaCoreExpect(scenePersistenceService->LoadScene(editorContext, scenePath), "应能重新加载 JSON 场景");
|
||||
MetaCoreExpect(scene.GetGameObjects().size() == 4, "重新加载后对象数量应恢复");
|
||||
MetaCoreExpect(scene.GetGameObjects().size() == 2, "重新加载后对象数量应恢复");
|
||||
MetaCoreExpect(editorContext.GetSelectedObjectId() != 0, "重新加载后应恢复选中对象");
|
||||
|
||||
bool foundRenamedCube = false;
|
||||
bool foundRenamedLight = false;
|
||||
for (const MetaCore::MetaCoreGameObject& object : scene.GetGameObjects()) {
|
||||
if (object.GetName() == "RoundTripCube") {
|
||||
foundRenamedCube = true;
|
||||
if (object.GetName() == "RoundTripLight") {
|
||||
foundRenamedLight = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
MetaCoreExpect(foundRenamedCube, "重新加载后应保留保存过的对象名称");
|
||||
MetaCoreExpect(foundRenamedLight, "重新加载后应保留保存过的对象名称");
|
||||
|
||||
coreServicesModule->Shutdown(moduleRegistry);
|
||||
moduleRegistry.ShutdownServices();
|
||||
@ -1261,7 +1262,7 @@ void MetaCoreTestBootstrapStartupSceneCreation() {
|
||||
MetaCoreExpect(std::filesystem::exists(tempProjectRoot / bootstrapScenePath), "应生成 Main.mcscene.json");
|
||||
MetaCoreExpect(scenePersistenceService->LoadStartupScene(editorContext), "设置后应能加载 startup scene");
|
||||
MetaCoreExpect(scenePersistenceService->GetCurrentScenePath() == bootstrapScenePath, "startup scene 路径应正确");
|
||||
MetaCoreExpect(scene.GetGameObjects().size() == 4, "bootstrap scene 应保存默认场景内容");
|
||||
MetaCoreExpect(scene.GetGameObjects().size() == 2, "bootstrap scene 应保存默认场景内容");
|
||||
|
||||
coreServicesModule->Shutdown(moduleRegistry);
|
||||
moduleRegistry.ShutdownServices();
|
||||
@ -2427,6 +2428,16 @@ void MetaCoreTestUiDocumentSerialization() {
|
||||
void MetaCoreTestDecoupledSnapshotSync() {
|
||||
// 1. 创建默认场景并收集核心对象 ID
|
||||
MetaCore::MetaCoreScene scene = MetaCore::MetaCoreCreateDefaultScene();
|
||||
|
||||
// 动态添加一个 box1.glb,测试需要它作为网格对象进行解耦同步验证
|
||||
MetaCore::MetaCoreGameObject cubeObj = scene.CreateGameObject("box1.glb");
|
||||
auto& meshRenderer = cubeObj.AddComponent<MetaCore::MetaCoreMeshRendererComponent>();
|
||||
meshRenderer.MeshSource = MetaCore::MetaCoreMeshSourceKind::Asset;
|
||||
meshRenderer.SourceModelPath = "Assets/Models/box1.glb";
|
||||
meshRenderer.SourceModelAssetGuid = MetaCore::MetaCoreAssetRegistry::Get().ResolvePathToGuid("Assets/Models/box1.glb");
|
||||
cubeObj.AddComponent<MetaCore::MetaCoreModelRootTag>(MetaCore::MetaCoreModelRootTag{ "Assets/Models/box1.glb" });
|
||||
cubeObj.GetComponent<MetaCore::MetaCoreTransformComponent>().Position = glm::vec3(0.0F, 0.5F, 0.0F);
|
||||
|
||||
MetaCore::MetaCoreId cubeId = 0;
|
||||
MetaCore::MetaCoreId lightId = 0;
|
||||
MetaCore::MetaCoreId cameraId = 0;
|
||||
@ -2533,20 +2544,17 @@ int main() {
|
||||
std::cout << "[RUN] MetaCoreCreateDefaultScene..." << std::endl;
|
||||
MetaCore::MetaCoreScene scene = MetaCore::MetaCoreCreateDefaultScene();
|
||||
std::cout << "[RUN] MetaCoreExpect default objects count..." << std::endl;
|
||||
MetaCoreExpect(scene.GetGameObjects().size() == 4, "默认场景应包含四个对象");
|
||||
MetaCoreExpect(scene.GetGameObjects().size() == 2, "默认场景应包含两个对象");
|
||||
|
||||
bool hasCamera = false;
|
||||
bool hasLight = false;
|
||||
bool hasCube = false;
|
||||
for (const MetaCore::MetaCoreGameObject& object : scene.GetGameObjects()) {
|
||||
hasCamera = hasCamera || object.HasComponent<MetaCore::MetaCoreCameraComponent>();
|
||||
hasLight = hasLight || object.HasComponent<MetaCore::MetaCoreLightComponent>();
|
||||
hasCube = hasCube || object.HasComponent<MetaCore::MetaCoreMeshRendererComponent>();
|
||||
}
|
||||
|
||||
MetaCoreExpect(hasCamera, "默认场景应包含摄像机");
|
||||
MetaCoreExpect(hasLight, "默认场景应包含光源");
|
||||
MetaCoreExpect(hasCube, "默认场景应包含立方体");
|
||||
|
||||
std::cout << "[RUN] MetaCoreDummyPanelProvider test..." << std::endl;
|
||||
MetaCore::MetaCoreEditorModuleRegistry moduleRegistry;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user