From 3e31a8e3cf5091b72714de4f53e5bf504c6aa480 Mon Sep 17 00:00:00 2001 From: Tim Date: Sun, 27 Apr 2025 17:22:41 +0200 Subject: [PATCH] Make the Bike Load on-demand, will break ModelExploder --- README.md | 5 + .../Assets/Scenes/SampleScene.unity | 540 +----------------- .../Assets/Scripts/Models/Definitions.cs | 9 +- .../Assets/Scripts/Models/Model.cs | 9 +- .../Assets/Scripts/Models/ModelBehaviour.cs | 2 +- .../Assets/Scripts/Models/ModelList.cs | 78 ++- vr-configurator/Assets/Scripts/Models/Port.cs | 4 +- 7 files changed, 64 insertions(+), 583 deletions(-) diff --git a/README.md b/README.md index 0e7f2da..4de6a61 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,11 @@ * ChildModel ("wheel", Reifenmodell) - ... +## Adding Models +1. Add Mesh (.obj/.fbx) & Material to Assets/Resources/ +2. (Optional) Add Port IDs in [Definitions.cs](/vr-configurator/Assets/Scripts/Models/Definitions.cs) +3. Define Models in [ModelList.cs](/vr-configurator/Assets/Scripts/Models/ModelList.cs) + ## Contributors - Max Luca Schmidt - Florian Speicher diff --git a/vr-configurator/Assets/Scenes/SampleScene.unity b/vr-configurator/Assets/Scenes/SampleScene.unity index 541223f..90b27ca 100644 --- a/vr-configurator/Assets/Scenes/SampleScene.unity +++ b/vr-configurator/Assets/Scenes/SampleScene.unity @@ -25700,19 +25700,19 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: bikeParts: - - part: {fileID: 1054164786111242677} + - part: {fileID: 0} explodeDirection: {x: 0, y: -1, z: 0} - - part: {fileID: 2865394407085681856} + - part: {fileID: 0} explodeDirection: {x: -1, y: 0, z: 0} - - part: {fileID: 7095972245112083558} + - part: {fileID: 0} explodeDirection: {x: 1, y: 0, z: 0} - - part: {fileID: 8979100604151245410} + - part: {fileID: 0} explodeDirection: {x: 0, y: 1, z: 0} - - part: {fileID: 8979100604151245410} + - part: {fileID: 0} explodeDirection: {x: 0, y: 1, z: 0} - - part: {fileID: 5156012375493846295} + - part: {fileID: 0} explodeDirection: {x: 0, y: 0, z: -1} - - part: {fileID: 5267813504575054804} + - part: {fileID: 0} explodeDirection: {x: 0, y: 0, z: 1} explosionDistance: 1 explosionSpeed: 2 @@ -26695,42 +26695,6 @@ Transform: m_Children: [] m_Father: {fileID: 1408306876} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &36843658363099064 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7095972245112083558} - - component: {fileID: 6287592808238488965} - - component: {fileID: 686021536787918075} - m_Layer: 0 - m_Name: Pedal_R - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!1 &65118634482224989 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5156012375493846295} - - component: {fileID: 8785243618755943418} - - component: {fileID: 3170635253692359686} - m_Layer: 0 - m_Name: Wheel_B - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 --- !u!1 &635547659324016994 GameObject: m_ObjectHideFlags: 0 @@ -26750,66 +26714,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!23 &686021536787918075 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 36843658363099064} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 3f0438abbf599464ab68c0998808a76b, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!4 &1054164786111242677 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4956684105035449024} - serializedVersion: 2 - m_LocalRotation: {x: -0.0000005523351, y: -0.000000119209275, z: 0.0000000437114, w: 1} - m_LocalPosition: {x: 0.007933513, y: 0.44340572, z: -0.16142645} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4167280744235935536} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!33 &1286141610436487884 MeshFilter: m_ObjectHideFlags: 0 @@ -26818,14 +26722,6 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6541453644100210917} m_Mesh: {fileID: 1918613174686994728, guid: 0462c71270f87cd4ab04b49dc157d6ff, type: 3} ---- !u!33 &1721698302579877505 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8761314634276183315} - m_Mesh: {fileID: 3255905351707407981, guid: e3a436e0ac6013f41999e23f2cc91370, type: 3} --- !u!23 &1896872467895719795 MeshRenderer: m_ObjectHideFlags: 0 @@ -26871,52 +26767,6 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!23 &1911111898470859288 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2888342728937813527} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 04831b0bba159ed47af586ccb6e43617, type: 2} - - {fileID: 2100000, guid: 3f0438abbf599464ab68c0998808a76b, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!23 &2570646523283659308 MeshRenderer: m_ObjectHideFlags: 0 @@ -26963,156 +26813,6 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!23 &2799955826918749539 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4956684105035449024} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 3f0438abbf599464ab68c0998808a76b, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!4 &2865394407085681856 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8761314634276183315} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.12521766, y: 0.5490288, z: -0.31202698} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4167280744235935536} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &2866941539162008038 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4034173787367650775} - m_Mesh: {fileID: -4640979610182688294, guid: e3a436e0ac6013f41999e23f2cc91370, type: 3} ---- !u!1 &2888342728937813527 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5267813504575054804} - - component: {fileID: 8993057894131717739} - - component: {fileID: 1911111898470859288} - m_Layer: 0 - m_Name: Wheel_F - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!23 &3170635253692359686 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 65118634482224989} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 04831b0bba159ed47af586ccb6e43617, type: 2} - - {fileID: 2100000, guid: 3f0438abbf599464ab68c0998808a76b, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &4034173787367650775 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8979100604151245410} - - component: {fileID: 2866941539162008038} - - component: {fileID: 5278058269548896719} - m_Layer: 0 - m_Name: Steer - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 --- !u!4 &4167280744235935536 Transform: m_ObjectHideFlags: 0 @@ -27125,33 +26825,9 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1054164786111242677} - - {fileID: 2865394407085681856} - - {fileID: 7095972245112083558} - - {fileID: 8979100604151245410} - - {fileID: 5156012375493846295} - - {fileID: 5267813504575054804} + m_Children: [] m_Father: {fileID: 1519836176} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &4956684105035449024 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1054164786111242677} - - component: {fileID: 8606479699357494212} - - component: {fileID: 2799955826918749539} - m_Layer: 0 - m_Name: Pedal - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 --- !u!4 &4993107373397872358 Transform: m_ObjectHideFlags: 0 @@ -27167,81 +26843,6 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 20, y: 180, z: 0} ---- !u!4 &5156012375493846295 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 65118634482224989} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.014312984, y: 0.46732223, z: -0.7874681} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4167280744235935536} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!4 &5267813504575054804 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2888342728937813527} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.019842627, y: 0.4673225, z: 0.94621235} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4167280744235935536} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &5278058269548896719 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4034173787367650775} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 3f0438abbf599464ab68c0998808a76b, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &5835772783336047336 MeshFilter: m_ObjectHideFlags: 0 @@ -27262,14 +26863,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: fd4fcdc40e7716b4fb712ddf70bf60d0, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!33 &6287592808238488965 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 36843658363099064} - m_Mesh: {fileID: -1159910841360783040, guid: e3a436e0ac6013f41999e23f2cc91370, type: 3} --- !u!1 &6541453644100210917 GameObject: m_ObjectHideFlags: 0 @@ -27288,123 +26881,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &7095972245112083558 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 36843658363099064} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.14108433, y: 0.3393247, z: -0.011543915} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4167280744235935536} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!23 &8403588594932381931 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8761314634276183315} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RayTracingAccelStructBuildFlagsOverride: 0 - m_RayTracingAccelStructBuildFlags: 1 - m_SmallMeshCulling: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 3f0438abbf599464ab68c0998808a76b, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &8606479699357494212 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4956684105035449024} - m_Mesh: {fileID: 8065566641825402270, guid: e3a436e0ac6013f41999e23f2cc91370, type: 3} ---- !u!1 &8761314634276183315 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2865394407085681856} - - component: {fileID: 1721698302579877505} - - component: {fileID: 8403588594932381931} - m_Layer: 0 - m_Name: Pedal_L - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!33 &8785243618755943418 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 65118634482224989} - m_Mesh: {fileID: 3198540174145334802, guid: e3a436e0ac6013f41999e23f2cc91370, type: 3} ---- !u!4 &8979100604151245410 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4034173787367650775} - serializedVersion: 2 - m_LocalRotation: {x: -0.26338428, y: -0, z: -0, w: 0.96469104} - m_LocalPosition: {x: 0.0029895906, y: 1.2147132, z: 0.48607054} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 4167280744235935536} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &8993057894131717739 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2888342728937813527} - m_Mesh: {fileID: -4163810863384186614, guid: e3a436e0ac6013f41999e23f2cc91370, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 diff --git a/vr-configurator/Assets/Scripts/Models/Definitions.cs b/vr-configurator/Assets/Scripts/Models/Definitions.cs index fca928c..fc7e56c 100644 --- a/vr-configurator/Assets/Scripts/Models/Definitions.cs +++ b/vr-configurator/Assets/Scripts/Models/Definitions.cs @@ -1,6 +1,9 @@ -using JetBrains.Annotations; - -public class Definitions +public class Definitions { + public const string PORT_BIKE_SPROCKET = "bikeSprocket"; + public const string PORT_BIKE_PEDAL_L = "bikePedalL"; + public const string PORT_BIKE_PEDAL_R = "bikePedalR"; + public const string PORT_BIKE_STEER = "bikeSteer"; public const string PORT_BIKE_WHEEL = "bikeWheel"; + public const string PORT_BIKE_DRIVER = "bikeDriver"; } diff --git a/vr-configurator/Assets/Scripts/Models/Model.cs b/vr-configurator/Assets/Scripts/Models/Model.cs index 5988aef..d1210a0 100644 --- a/vr-configurator/Assets/Scripts/Models/Model.cs +++ b/vr-configurator/Assets/Scripts/Models/Model.cs @@ -46,8 +46,13 @@ public class Model // bike:wheel:num GameObject child = new GameObject(parent.name + ":" + port.port + ":" + i); ChildModelBehaviour cmb = child.AddComponent(); - - var model = cmb.GetComponent().getById(port.defaultId); + + var mm = Object.FindAnyObjectByType(); + if (mm == null) + { + Debug.LogError("ModelManager not found"); + } + var model = mm.getById(port.defaultId); if (model.mesh == null) { diff --git a/vr-configurator/Assets/Scripts/Models/ModelBehaviour.cs b/vr-configurator/Assets/Scripts/Models/ModelBehaviour.cs index 0788f42..754b2e4 100644 --- a/vr-configurator/Assets/Scripts/Models/ModelBehaviour.cs +++ b/vr-configurator/Assets/Scripts/Models/ModelBehaviour.cs @@ -52,7 +52,7 @@ public class ModelBehaviour : MonoBehaviour public void UpdateChild(int childNum, string id) { - var newChildModel = GetComponent().getById(id); + var newChildModel = FindAnyObjectByType().getById(id); children[childNum].GetComponent().UpdateModel(newChildModel); } diff --git a/vr-configurator/Assets/Scripts/Models/ModelList.cs b/vr-configurator/Assets/Scripts/Models/ModelList.cs index 07e3e3b..64d3bef 100644 --- a/vr-configurator/Assets/Scripts/Models/ModelList.cs +++ b/vr-configurator/Assets/Scripts/Models/ModelList.cs @@ -11,13 +11,14 @@ public class ModelList Resources.Load("Bicycle/Models/Low-Poly Bicycle # 5"), new Material(Shader.Find("VR/SpatialMapping/Occlusion")), new List - { - new Port(Definitions.PORT_BIKE_WHEEL, new Vector3(10,0,0), "bike30inchAlloy"), - new Port(Definitions.PORT_BIKE_WHEEL, new Vector3(-10,0,0), "bike30inchAlloy"), - new Port("bikePedalL", new Vector3(0,10,0), "bikePedalL"), - new Port("bikePedalR", new Vector3(0,-10,0), "bikePedalR"), - new Port("bikeB", new Vector3(0f,1f,0f), new Quaternion(0f,45f,0f,0f), "name1"), - new Port("driver", new Vector3(0f,1.6f,0f), "bacteria"), + { //please dont ask about the numbers + new Port(Definitions.PORT_BIKE_SPROCKET, new Vector3(0.007933f,0.444f,-0.1614f), "idBikeSprocket"), + new Port(Definitions.PORT_BIKE_PEDAL_L, new Vector3(-0.1252177f,0.5490288f,-0.312027f), "idBikePedalL_1"), + new Port(Definitions.PORT_BIKE_PEDAL_R, new Vector3(0.1410843f,0.3393247f, -0.01154391f), "idBikePedalR_1"), + new Port(Definitions.PORT_BIKE_STEER, new Vector3(0.002989591f,1.214713f,0.4860705f), Quaternion.Euler(-30f,0f,0f), "idBikeHandlebars"), + new Port(Definitions.PORT_BIKE_WHEEL, new Vector3(-0.01431298f,0.4673222f,-0.7874681f), "idBikeWheel_Back1"), + new Port(Definitions.PORT_BIKE_WHEEL, new Vector3(0.01984263f,0.4673225f,0.9462124f), "idBikeWheel_Front1"), + new Port(Definitions.PORT_BIKE_DRIVER, new Vector3(0f,1.25f,-0.65f), Quaternion.Euler(70f,0f,0f), "nuke"), } ) }; @@ -30,8 +31,8 @@ public class ModelList null ), new ChildModel( - "driver", "Virus", "virus", - Resources.Load("Plagues/Mesh/Virus"), + "driver", "ICBM", "nuke", + Resources.Load("Plagues/Mesh/Nuke"), new Material(Shader.Find("VR/SpatialMapping/Occlusion")), null ), @@ -59,41 +60,35 @@ public class ModelList { // i love importing .fbx, maybe refactor this function some day ChildModels.AddRange(ModelLoader.LoadChildModels( - new string[] // port + new string[6] // port { - "bikeB", - "bikeB", - "bikeB", - "bikeB", - "bikeB", - "bikeB", - "bikeB", - "bikeB" + Definitions.PORT_BIKE_SPROCKET, + Definitions.PORT_BIKE_PEDAL_L, + Definitions.PORT_BIKE_PEDAL_R, + Definitions.PORT_BIKE_STEER, + Definitions.PORT_BIKE_WHEEL, + Definitions.PORT_BIKE_WHEEL, }, - new string[] //human name + new string[6] //human name { - "name1", - "name2", - "name3", - "name4", - "name5", - "name6", - "name7", - "name8", + "Sprocket", + "Left Pedal", + "Right Pedal", + "Handlebars", + "Back Wheel", + "Front Wheel", }, - new string[] //id + new string[6] //id { - "id1", - "id2", - "id3", - "id4", - "id5", - "id6", - "id7", - "id8", + "idBikeSprocket", + "idBikePedalL_1", + "idBikePedalR_1", + "idBikeHandlebars", + "idBikeWheel_Back1", + "idBikeWheel_Front1", }, Resources.LoadAll("Bicycle/Models/Low-Poly Bicycle # 5"), - new Material[] //mat + new Material[6] //mat { new Material(Shader.Find("VR/SpatialMapping/Occlusion")), new Material(Shader.Find("VR/SpatialMapping/Occlusion")), @@ -101,10 +96,8 @@ public class ModelList new Material(Shader.Find("VR/SpatialMapping/Occlusion")), new Material(Shader.Find("VR/SpatialMapping/Occlusion")), new Material(Shader.Find("VR/SpatialMapping/Occlusion")), - new Material(Shader.Find("VR/SpatialMapping/Occlusion")), - new Material(Shader.Find("VR/SpatialMapping/Occlusion")), }, - new List[] // ports + new List[6] // ports { null, null, @@ -112,9 +105,8 @@ public class ModelList null, null, null, - null, - null, - } + }, + 1 //skip the first mesh, which is the basemodel )); } } \ No newline at end of file diff --git a/vr-configurator/Assets/Scripts/Models/Port.cs b/vr-configurator/Assets/Scripts/Models/Port.cs index eb2132c..b749677 100644 --- a/vr-configurator/Assets/Scripts/Models/Port.cs +++ b/vr-configurator/Assets/Scripts/Models/Port.cs @@ -11,8 +11,8 @@ public class Port public void apply(Transform target) { - target.position = position; - target.rotation = rotation; + target.localPosition = position; + target.localRotation = rotation; target.localScale = scale; }