diff --git a/Assets/_Scenes/CQB/Room 1.unity b/Assets/_Scenes/CQB/Room 1.unity index f398761..5dd5040 100644 --- a/Assets/_Scenes/CQB/Room 1.unity +++ b/Assets/_Scenes/CQB/Room 1.unity @@ -2955,6 +2955,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: myRoom: {fileID: 11400000, guid: 106f2f3bbf55fdc4d99252211dfdd3f2, type: 2} + sceneId: Room1 doors: [] furnitures: [] portals: [] diff --git a/Assets/_Scenes/CQB/Room 10.unity b/Assets/_Scenes/CQB/Room 10.unity index 590cb51..2851607 100644 --- a/Assets/_Scenes/CQB/Room 10.unity +++ b/Assets/_Scenes/CQB/Room 10.unity @@ -857,6 +857,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: myRoom: {fileID: 11400000, guid: 6d3b5143823bea947a16fa39bd25e8fe, type: 2} + sceneId: Room10 doors: [] furnitures: [] portals: [] diff --git a/Assets/_Scenes/CQB/Room 11.unity b/Assets/_Scenes/CQB/Room 11.unity index c856683..a3f0bb8 100644 --- a/Assets/_Scenes/CQB/Room 11.unity +++ b/Assets/_Scenes/CQB/Room 11.unity @@ -3849,6 +3849,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: myRoom: {fileID: 11400000, guid: 127a97df26bad4d48bf36078232c9ea4, type: 2} + sceneId: Room11 doors: [] furnitures: [] portals: [] diff --git a/Assets/_Scenes/CQB/Room 12.unity b/Assets/_Scenes/CQB/Room 12.unity index 7e846ee..451c104 100644 --- a/Assets/_Scenes/CQB/Room 12.unity +++ b/Assets/_Scenes/CQB/Room 12.unity @@ -6935,6 +6935,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: myRoom: {fileID: 11400000, guid: 96ba4924b1e9c194cb75224a5b6daed3, type: 2} + sceneId: Room12 doors: [] furnitures: [] portals: [] diff --git a/Assets/_Scenes/CQB/Room 2.unity b/Assets/_Scenes/CQB/Room 2.unity index dcbc2e6..86dacf4 100644 --- a/Assets/_Scenes/CQB/Room 2.unity +++ b/Assets/_Scenes/CQB/Room 2.unity @@ -3072,6 +3072,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: myRoom: {fileID: 11400000, guid: 3b5ba897189d3f94086ca5ee07c84dee, type: 2} + sceneId: Room2 doors: [] furnitures: [] portals: [] diff --git a/Assets/_Scenes/CQB/Room 3.unity b/Assets/_Scenes/CQB/Room 3.unity index 35f7741..143cdc2 100644 --- a/Assets/_Scenes/CQB/Room 3.unity +++ b/Assets/_Scenes/CQB/Room 3.unity @@ -397,6 +397,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: myRoom: {fileID: 11400000, guid: b597535da1eba4243940c6c0f1b655de, type: 2} + sceneId: Room3 doors: [] furnitures: [] portals: [] diff --git a/Assets/_Scenes/CQB/Room 4.unity b/Assets/_Scenes/CQB/Room 4.unity index a91cef3..199095c 100644 --- a/Assets/_Scenes/CQB/Room 4.unity +++ b/Assets/_Scenes/CQB/Room 4.unity @@ -1610,6 +1610,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: myRoom: {fileID: 11400000, guid: 190315b6186ca5b4ea35ff95dca0ed9d, type: 2} + sceneId: Room4 doors: [] furnitures: [] portals: [] diff --git a/Assets/_Scenes/CQB/Room 5.unity b/Assets/_Scenes/CQB/Room 5.unity index 3aef4a2..37a1dba 100644 --- a/Assets/_Scenes/CQB/Room 5.unity +++ b/Assets/_Scenes/CQB/Room 5.unity @@ -1922,6 +1922,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: myRoom: {fileID: 11400000, guid: 8bb570b290a409b429dc8311bdd7bbb8, type: 2} + sceneId: Room5 doors: [] furnitures: [] portals: [] diff --git a/Assets/_Scenes/CQB/Room 6.unity b/Assets/_Scenes/CQB/Room 6.unity index 5712ea3..846adb2 100644 --- a/Assets/_Scenes/CQB/Room 6.unity +++ b/Assets/_Scenes/CQB/Room 6.unity @@ -2106,6 +2106,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: myRoom: {fileID: 11400000, guid: ba7cc6620201c27439368b153b8cdcf0, type: 2} + sceneId: Room6 doors: [] furnitures: [] portals: [] diff --git a/Assets/_Scenes/CQB/Room 7.unity b/Assets/_Scenes/CQB/Room 7.unity index 9255674..590248e 100644 --- a/Assets/_Scenes/CQB/Room 7.unity +++ b/Assets/_Scenes/CQB/Room 7.unity @@ -2599,6 +2599,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: myRoom: {fileID: 11400000, guid: 3e6afc347cc11954a9536886bcf00751, type: 2} + sceneId: Room7 doors: [] furnitures: [] portals: [] diff --git a/Assets/_Scenes/CQB/Room 8.unity b/Assets/_Scenes/CQB/Room 8.unity index 5cd35ac..9833f5f 100644 --- a/Assets/_Scenes/CQB/Room 8.unity +++ b/Assets/_Scenes/CQB/Room 8.unity @@ -4058,6 +4058,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: myRoom: {fileID: 11400000, guid: 2b865aae0dfdcb640a6b00e0ce3d34c0, type: 2} + sceneId: Room8 doors: [] furnitures: [] portals: [] diff --git a/Assets/_Scenes/CQB/Room 9.unity b/Assets/_Scenes/CQB/Room 9.unity index b90d825..cca033d 100644 --- a/Assets/_Scenes/CQB/Room 9.unity +++ b/Assets/_Scenes/CQB/Room 9.unity @@ -11781,6 +11781,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: myRoom: {fileID: 11400000, guid: 3341f8aacfc463340a026cb1051f6e6c, type: 2} + sceneId: Room9 doors: [] furnitures: [] portals: [] diff --git a/Assets/_Scenes/EnteringRoomsTrainer.unity b/Assets/_Scenes/EnteringRoomsTrainer.unity new file mode 100644 index 0000000..2ec80be --- /dev/null +++ b/Assets/_Scenes/EnteringRoomsTrainer.unity @@ -0,0 +1,770 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 1 + m_PVRFilteringGaussRadiusAO: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &1039256585 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1039256589} + - component: {fileID: 1039256588} + - component: {fileID: 1039256587} + - component: {fileID: 1039256586} + - component: {fileID: 1039256590} + - component: {fileID: 1039256591} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &1039256586 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039256585} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1039256587 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039256585} + 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: 31321ba15b8f8eb4c954353edc038b1d, 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 &1039256588 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039256585} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1039256589 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039256585} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1039256590 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039256585} + m_Enabled: 0 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a414e41b5eb32f489ad37f31d24a9d0, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1039256591 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039256585} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8983945cca89adc46aab1638d1823d76, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &1203254197 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 454586362093781695, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 454586362093781695, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 454586363013833002, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 454586363013833002, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 454586363013833002, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 42.21 + objectReference: {fileID: 0} + - target: {fileID: 454586363013833002, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 454586363013833002, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -23 + objectReference: {fileID: 0} + - target: {fileID: 711874375355372565, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 711874375355372565, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 711874375355372565, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 827336434697486484, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 827336434697486484, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 827336434697486484, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 827336434697486484, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2096087249121209608, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2372364542277592973, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2372364542277592973, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2372364542531027992, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2372364542531027992, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2372364542531027992, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 63.78 + objectReference: {fileID: 0} + - target: {fileID: 2372364542531027992, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 45.89 + objectReference: {fileID: 0} + - target: {fileID: 2372364542531027992, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -23 + objectReference: {fileID: 0} + - target: {fileID: 2509200301365282504, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2509200301365282504, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2509200301365282504, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2509200301365282504, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3503166844991407117, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: offlinePosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3577501535338948537, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3577501535338948537, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6299181119493716916, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6299181119493716916, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6299181119493716916, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 36.8 + objectReference: {fileID: 0} + - target: {fileID: 6299181119493716916, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 6299181119493716916, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -23 + objectReference: {fileID: 0} + - target: {fileID: 6299181120315349025, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6299181120315349025, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6666687303926437473, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6666687303926437473, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6666687303926437473, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6666687303926437473, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7020043307626416877, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7020043307626416877, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7020043308476213624, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7020043308476213624, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7020043308476213624, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 42.01 + objectReference: {fileID: 0} + - target: {fileID: 7020043308476213624, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 7020043308476213624, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -23 + objectReference: {fileID: 0} + - target: {fileID: 7600416357546044615, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7600416357546044615, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7600416357546044615, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 62.76 + objectReference: {fileID: 0} + - target: {fileID: 7600416357546044615, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 45.379997 + objectReference: {fileID: 0} + - target: {fileID: 7600416357546044615, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -23 + objectReference: {fileID: 0} + - target: {fileID: 7600416357936713554, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7600416357936713554, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7622460198587092014, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7622460198587092014, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7622460198587092014, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 36.8 + objectReference: {fileID: 0} + - target: {fileID: 7622460198587092014, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 40 + objectReference: {fileID: 0} + - target: {fileID: 7622460198587092014, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -23 + objectReference: {fileID: 0} + - target: {fileID: 7622460199406481339, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7622460199406481339, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8268635517507059789, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8268635517507059789, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8268635517507059789, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8268635517507059789, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8324656376034772630, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8324656376034772630, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8324656376034772630, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8324656376034772630, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8460637990670501396, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8460637990670501396, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8460637990827091329, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8460637990827091329, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8460637990827091329, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 62.76 + objectReference: {fileID: 0} + - target: {fileID: 8460637990827091329, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 45.379997 + objectReference: {fileID: 0} + - target: {fileID: 8460637990827091329, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -23 + objectReference: {fileID: 0} + - target: {fileID: 8585990886882328085, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8716202226868291108, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8716202226868291108, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8716202226868291108, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8716202226868291108, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8716202226868291108, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8716202226868291108, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8716202226868291108, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8716202226868291108, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8716202226868291108, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8716202226868291108, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8716202226868291111, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_Name + value: XR Interaction Setup (MP Variant) + objectReference: {fileID: 0} + - target: {fileID: 8798636447145251062, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8798636447145251062, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8798636447145251062, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 82.3 + objectReference: {fileID: 0} + - target: {fileID: 8798636447145251062, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 55.15 + objectReference: {fileID: 0} + - target: {fileID: 8798636447145251062, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -23 + objectReference: {fileID: 0} + - target: {fileID: 8798636447962674019, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8798636447962674019, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9050835495748891254, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9050835495748891254, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9050835495748891254, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9050835495748891254, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 0387ad92654f0bf44b203a53c628c88f, type: 3} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1203254197} + - {fileID: 1039256589} diff --git a/Assets/_Scenes/EnteringRoomsTrainer.unity.meta b/Assets/_Scenes/EnteringRoomsTrainer.unity.meta new file mode 100644 index 0000000..f9eb406 --- /dev/null +++ b/Assets/_Scenes/EnteringRoomsTrainer.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 78e36c78dac19c5479c35bbdcd23c65b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Scenes/TestScene.unity b/Assets/_Scenes/TestScene.unity index 5a52d75..816a2d9 100644 --- a/Assets/_Scenes/TestScene.unity +++ b/Assets/_Scenes/TestScene.unity @@ -251,6 +251,50 @@ Transform: type: 3} m_PrefabInstance: {fileID: 79248791} m_PrefabAsset: {fileID: 0} +--- !u!1 &80522954 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 80522956} + - component: {fileID: 80522955} + m_Layer: 0 + m_Name: SupabaseManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &80522955 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 80522954} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8983945cca89adc46aab1638d1823d76, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &80522956 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 80522954} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &96559178 GameObject: m_ObjectHideFlags: 0 @@ -427,7 +471,7 @@ MonoBehaviour: myMeshRenderer: {fileID: 96559182} _currentTexLeft: {fileID: 0} _currentTexRight: {fileID: 0} - _currentDistanceBlend: 1 + _currentDistanceBlend: 0 --- !u!23 &96559182 MeshRenderer: m_ObjectHideFlags: 0 @@ -451,7 +495,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 244748528} + - {fileID: 1428015756} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -611,7 +655,7 @@ Transform: type: 3} m_PrefabInstance: {fileID: 233303118} m_PrefabAsset: {fileID: 0} ---- !u!21 &244748528 +--- !u!21 &239161713 Material: serializedVersion: 8 m_ObjectHideFlags: 0 @@ -2135,6 +2179,148 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 0.05, y: 0.08308394, z: 0.112000704} m_Center: {x: 0, y: -0.038458027, z: -0.07217586} +--- !u!21 &1428015756 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: PortalMat (for Surface) + m_Shader: {fileID: -6465566751694194690, guid: a47a55574e258ae4f97fad14d64ff151, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _Albedo: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TexLeft: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _TexRight: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlbedoAlpha: 1 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _FadeColorBlend: 0 + - _ForceEye: 0 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + - _flipY: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _FadeColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + - _Tiling_And_Offset: {r: 1, g: 1, b: 0, a: 0} + - _WorldDir: {r: 0, g: 0, b: 0, a: 0} + - _WorldPos: {r: 0, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!1 &1458267113 stripped GameObject: m_CorrespondingSourceObject: {fileID: -3108558970342502765, guid: 805f7bec56abd4043a2a57eb410ef0d8, @@ -2837,6 +3023,24 @@ PrefabInstance: insertIndex: -1 addedObject: {fileID: 403561637} m_SourcePrefab: {fileID: 100100000, guid: 0387ad92654f0bf44b203a53c628c88f, type: 3} +--- !u!4 &1613093887 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8007766467027369979, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + m_PrefabInstance: {fileID: 1613093886} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1613093888 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8007766467320921882, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + m_PrefabInstance: {fileID: 1613093886} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1613093889 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 8716202226868291108, guid: 0387ad92654f0bf44b203a53c628c88f, + type: 3} + m_PrefabInstance: {fileID: 1613093886} + m_PrefabAsset: {fileID: 0} --- !u!1 &1625334271 stripped GameObject: m_CorrespondingSourceObject: {fileID: -4855443175197248698, guid: 805f7bec56abd4043a2a57eb410ef0d8, @@ -3129,7 +3333,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 1854424811} + - {fileID: 239161713} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -3482,148 +3686,57 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1849376806} m_PrefabAsset: {fileID: 0} ---- !u!21 &1854424811 -Material: - serializedVersion: 8 +--- !u!1 &2089505612 +GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: PortalMat (for Surface) - m_Shader: {fileID: -6465566751694194690, guid: a47a55574e258ae4f97fad14d64ff151, - type: 3} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: -1 - stringTagMap: {} - disabledShaderPasses: - - MOTIONVECTORS - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: - - _Albedo: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BaseMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _BumpMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailAlbedoMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailMask: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _DetailNormalMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _EmissionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MainTex: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _MetallicGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _OcclusionMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _ParallaxMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _SpecGlossMap: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _TexLeft: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - _TexRight: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - unity_Lightmaps: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - unity_LightmapsInd: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - unity_ShadowMasks: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - m_Ints: [] - m_Floats: - - _AddPrecomputedVelocity: 0 - - _AlbedoAlpha: 1 - - _AlphaClip: 0 - - _AlphaToMask: 0 - - _Blend: 0 - - _BlendModePreserveSpecular: 1 - - _BumpScale: 1 - - _ClearCoatMask: 0 - - _ClearCoatSmoothness: 0 - - _Cull: 2 - - _Cutoff: 0.5 - - _DetailAlbedoMapScale: 1 - - _DetailNormalMapScale: 1 - - _DstBlend: 0 - - _DstBlendAlpha: 0 - - _EnvironmentReflections: 1 - - _FadeColorBlend: 1 - - _ForceEye: 0 - - _GlossMapScale: 0 - - _Glossiness: 0 - - _GlossyReflections: 0 - - _Metallic: 0 - - _OcclusionStrength: 1 - - _Parallax: 0.005 - - _QueueControl: 0 - - _QueueOffset: 0 - - _ReceiveShadows: 1 - - _Smoothness: 0.5 - - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 1 - - _SrcBlend: 1 - - _SrcBlendAlpha: 1 - - _Surface: 0 - - _WorkflowMode: 1 - - _ZWrite: 1 - - _flipY: 0 - m_Colors: - - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - - _Color: {r: 1, g: 1, b: 1, a: 1} - - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - - _FadeColor: {r: 0, g: 0, b: 0, a: 1} - - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} - - _Tiling_And_Offset: {r: 1, g: 1, b: 0, a: 0} - - _WorldDir: {r: 0, g: 0, b: 0, a: 0} - - _WorldPos: {r: 0, g: 0, b: 0, a: 0} - m_BuildTextureStacks: [] - m_AllowLocking: 1 + serializedVersion: 6 + m_Component: + - component: {fileID: 2089505614} + - component: {fileID: 2089505613} + m_Layer: 0 + m_Name: GhostRecorder(Supabase) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2089505613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2089505612} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: acfd4230ec07a824b980e2dd17ca8031, type: 3} + m_Name: + m_EditorClassIdentifier: + test: 0 + SceneId: + SampleRate: 0.05 + TrackedObjects: + - {fileID: 1613093889} + - {fileID: 1613093888} + - {fileID: 1613093887} +--- !u!4 &2089505614 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2089505612} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 23.456, y: 3.0748777, z: -4.5933065} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2142215747 GameObject: m_ObjectHideFlags: 0 @@ -3710,3 +3823,5 @@ SceneRoots: - {fileID: 1521882907} - {fileID: 1787202039} - {fileID: 1803869868} + - {fileID: 80522956} + - {fileID: 2089505614} diff --git a/Assets/_Scripts/CQB Training/RoomPrefs.cs b/Assets/_Scripts/CQB Training/RoomPrefs.cs index 431bff5..84cc068 100644 --- a/Assets/_Scripts/CQB Training/RoomPrefs.cs +++ b/Assets/_Scripts/CQB Training/RoomPrefs.cs @@ -6,6 +6,7 @@ using UnityEngine; [CreateAssetMenu] public class RoomPrefs : ScriptableObject { + public string sceneId; public bool doors = false; public bool furniture = true; public bool portals = false; diff --git a/Assets/_Scripts/GhostSystem/ConverterStructs.cs b/Assets/_Scripts/GhostSystem/ConverterStructs.cs new file mode 100644 index 0000000..2237ee8 --- /dev/null +++ b/Assets/_Scripts/GhostSystem/ConverterStructs.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[Serializable] +public struct Vector3DTO +{ + public float x; + public float y; + public float z; + + public Vector3DTO(Vector3 v) + { + x = v.x; + y = v.y; + z = v.z; + } + + public Vector3 ToVector3() => new Vector3(x, y, z); +} + +[Serializable] +public struct QuaternionDTO +{ + public float x; + public float y; + public float z; + public float w; + + public QuaternionDTO(Quaternion q) + { + x = q.x; + y = q.y; + z = q.z; + w = q.w; + } + + public Quaternion ToQuaternion() => new Quaternion(x, y, z, w); +} + +[System.Serializable] +public class Vector3Serializable +{ + public float x; + public float y; + public float z; + + public Vector3Serializable() { } + + public Vector3Serializable(Vector3 vec) + { + x = vec.x; + y = vec.y; + z = vec.z; + } + + public Vector3 ToVector3() + { + return new Vector3(x, y, z); + } +} + +[System.Serializable] +public class QuaternionSerializable +{ + public float x; + public float y; + public float z; + public float w; + + public QuaternionSerializable() { } + + public QuaternionSerializable(Quaternion quat) + { + x = quat.x; + y = quat.y; + z = quat.z; + w = quat.w; + } + + public Quaternion ToQuaternion() + { + return new Quaternion(x, y, z, w); + } +} + + diff --git a/Assets/_Scripts/GhostSystem/ConverterStructs.cs.meta b/Assets/_Scripts/GhostSystem/ConverterStructs.cs.meta new file mode 100644 index 0000000..6e085c1 --- /dev/null +++ b/Assets/_Scripts/GhostSystem/ConverterStructs.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 3ea3278ea48dfa24e94a08dcaff5041c \ No newline at end of file diff --git a/Assets/_Scripts/GhostSystem/FrameModel.cs b/Assets/_Scripts/GhostSystem/FrameModel.cs new file mode 100644 index 0000000..e4cb636 --- /dev/null +++ b/Assets/_Scripts/GhostSystem/FrameModel.cs @@ -0,0 +1,41 @@ +using Postgrest.Attributes; +using Postgrest.Models; +using UnityEngine; +using Newtonsoft.Json; +using System; + +namespace GhostSystem +{ + [Table("object_positions")] + public class FrameModel : BaseModel + { + + [Column("user_id")] + public string UserId { get; set; } + + [Column("scene_id")] + public string SceneId { get; set; } + + [Column("object_id")] + public string ObjectId { get; set; } + + [Column("timestamp")] + public string Timestamp { get; set; } // ISO 8601 string + + [Column("position")] + public string PositionJson { get; set; } // stored as JSONB + + [Column("rotation")] + public string RotationJson { get; set; } // stored as JSONB + + [JsonIgnore] + public DateTime TimestampParsed => DateTime.Parse(Timestamp).ToUniversalTime(); + + [JsonIgnore] + public Vector3 Position => JsonConvert.DeserializeObject(PositionJson).ToVector3(); + [JsonIgnore] + public Quaternion Rotation => JsonConvert.DeserializeObject(RotationJson).ToQuaternion(); + + } +} + diff --git a/Assets/_Scripts/GhostSystem/FrameModel.cs.meta b/Assets/_Scripts/GhostSystem/FrameModel.cs.meta new file mode 100644 index 0000000..fe0e442 --- /dev/null +++ b/Assets/_Scripts/GhostSystem/FrameModel.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 101e569ac87f30543a231b553aa2ec95 \ No newline at end of file diff --git a/Assets/_Scripts/GhostSystem/GhostFrame.cs b/Assets/_Scripts/GhostSystem/GhostFrame.cs new file mode 100644 index 0000000..3b14b55 --- /dev/null +++ b/Assets/_Scripts/GhostSystem/GhostFrame.cs @@ -0,0 +1,26 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace GhostSystem +{ + [System.Serializable] + public class GhostFrame + { + public string SceneId; + public string ObjectId; + public System.DateTime Timestamp; + public Vector3 Position; + public Quaternion Rotation; + + public GhostFrame(string sceneId, string objectId, Vector3 pos, Quaternion rot) + { + SceneId = sceneId; + ObjectId = objectId; + Position = pos; + Rotation = rot; + Timestamp = System.DateTime.UtcNow; + } + } +} + diff --git a/Assets/_Scripts/GhostSystem/GhostFrame.cs.meta b/Assets/_Scripts/GhostSystem/GhostFrame.cs.meta new file mode 100644 index 0000000..f35331a --- /dev/null +++ b/Assets/_Scripts/GhostSystem/GhostFrame.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8cbeee9cd1185344abb805e24491a4df \ No newline at end of file diff --git a/Assets/_Scripts/GhostSystem/GhostRecorderBatch.cs b/Assets/_Scripts/GhostSystem/GhostRecorderBatch.cs new file mode 100644 index 0000000..3c31e5c --- /dev/null +++ b/Assets/_Scripts/GhostSystem/GhostRecorderBatch.cs @@ -0,0 +1,129 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.Threading.Tasks; +using Newtonsoft.Json; +using System; + +namespace GhostSystem +{ + public class GhostRecorderBatch : MonoBehaviour + { + public bool test = false; + public string SceneId; + public float SampleRate = 0.05f; + public List TrackedObjects; + + private float _timer; + private bool _isRecording; + + private bool supabaseReady = false; + private bool sceneIdReady = false; + + private async void OnEnable() + { + SupabaseManager.OnSuperbaseReady += HandleSupabaseReady; + RoomManager.OnSceneIdReady += HandleSceneIdReady; + } + + private void OnDisable() + { + SupabaseManager.OnSuperbaseReady -= HandleSupabaseReady; + RoomManager.OnSceneIdReady -= HandleSceneIdReady; + } + + private void HandleSupabaseReady() + { + supabaseReady = true; + } + + private void HandleSceneIdReady(string id) + { + SceneId = id; + sceneIdReady = true; + } + + private async void Update() + { + if (test) await TestInsert(); + if (!_isRecording) return; + + _timer += Time.deltaTime; + if (_timer >= SampleRate) + { + _timer = 0f; + foreach (var obj in TrackedObjects) + { + var frame = new GhostFrame(SceneId, obj.name, obj.position, obj.rotation); + await InsertFrame(frame); + } + } + } + + private async Task InsertFrame(GhostFrame frame) + { + var position = new Vector3Serializable + { + x = frame.Position.x, + y = frame.Position.y, + z = frame.Position.z + }; + var rotation = new QuaternionSerializable + { + x = frame.Rotation.x, + y = frame.Rotation.y, + z = frame.Rotation.z, + w = frame.Rotation.w + }; + + var data = new FrameModel + { + UserId = SupabaseManager.instance.userId, + SceneId = frame.SceneId, + ObjectId = frame.ObjectId, + Timestamp = frame.Timestamp.ToString("o"), + PositionJson = JsonConvert.SerializeObject(position), + RotationJson = JsonConvert.SerializeObject(rotation) + }; + + Debug.Log($"Insert frame with user_id: {SupabaseManager.instance.userId}"); + + await SupabaseManager.instance.supabase.From().Insert(data); + } + + public void StartRecording() + { + if (!supabaseReady || !sceneIdReady) return; + _isRecording = true; + Debug.Log($"Recording {SceneId}"); + } + + public void StopRecording() + { + _isRecording = false; + sceneIdReady = false; + Debug.Log($"Stop recording: {SceneId}"); + } + + private async Task TestInsert() + { + var pos = new Vector3Serializable { x = 1f, y = 2f, z = 3f }; + var rot = new QuaternionSerializable { x = 0f, y = 0f, z = 0f, w = 1f }; + + var data = new FrameModel + { + UserId = SupabaseManager.instance.userId, + SceneId = "testScene", + ObjectId = "testObject", + Timestamp = DateTime.UtcNow.ToString("o"), + PositionJson = JsonConvert.SerializeObject(pos), + RotationJson = JsonConvert.SerializeObject(rot) + }; + + Debug.Log(JsonConvert.SerializeObject(data)); // Schau hier, ob es nur Strings sind. + + await SupabaseManager.instance.supabase.From().Insert(data); + } + } +} + diff --git a/Assets/_Scripts/GhostSystem/GhostRecorderBatch.cs.meta b/Assets/_Scripts/GhostSystem/GhostRecorderBatch.cs.meta new file mode 100644 index 0000000..6738ff2 --- /dev/null +++ b/Assets/_Scripts/GhostSystem/GhostRecorderBatch.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: acfd4230ec07a824b980e2dd17ca8031 \ No newline at end of file diff --git a/Assets/_Scripts/GhostSystem/GhostReplayManager.cs b/Assets/_Scripts/GhostSystem/GhostReplayManager.cs new file mode 100644 index 0000000..b748919 --- /dev/null +++ b/Assets/_Scripts/GhostSystem/GhostReplayManager.cs @@ -0,0 +1,231 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using System.Linq; +using System.Threading.Tasks; +using System; +using System.Reactive; +using UnityEngine.UI; + +namespace GhostSystem +{ + public class GhostReplayManager : MonoBehaviour + { + [Header("Replay Settings")] + public string SceneId; + public string UserFilter = null; // optional: filtere nach User-ID + public bool Loop = true; + public DateTime selectedStartTime; + public DateSelector dateSelector; + + [Header("Target Objects")] + public List TrackedObjects; + + [Header("Playback")] + public float PlaybackSpeed = 1f; + public bool AutoStart = true; + public Slider playbackSlider; + private bool isScrubbing = false; + + private bool isPlaying = false; + private float playbackTime = 0f; + private float totalDuration = 0f; + + private Dictionary> objectTracks = new(); + + private bool supabaseReady = false; + private bool sceneIdReady = false; + private string loadedSceneId; + + [Serializable] + public class TrackedObjectBinding + { + public string objectId; + public GameObject targetObject; + } + + private async void OnEnable() + { + SupabaseManager.OnSuperbaseReady += HandleSupabaseReady; + RoomManager.OnSceneIdReady += HandleSceneIdReady; + } + + private void OnDisable() + { + SupabaseManager.OnSuperbaseReady -= HandleSupabaseReady; + RoomManager.OnSceneIdReady -= HandleSceneIdReady; + } + + private void HandleSupabaseReady() + { + supabaseReady = true; + TryInitializeReplay(); + } + + private void HandleSceneIdReady(string id) + { + sceneIdReady = true; + loadedSceneId = id; + TryInitializeReplay(); + } + + private async void TryInitializeReplay() + { + if (!supabaseReady || !sceneIdReady) return; + + SceneId = loadedSceneId; + + await LoadFrames(); + StartReplay(); + } + + public async Task LoadFrames() + { + Debug.Log("SceneId used in query: " + SceneId); + + var query = SupabaseManager.instance.supabase + .From() + .Filter("scene_id", Postgrest.Constants.Operator.Equals, SceneId) + .Filter("timestamp", Postgrest.Constants.Operator.GreaterThanOrEqual, dateSelector.selectedDateTime().ToString("o")) + .Order("timestamp", Postgrest.Constants.Ordering.Ascending); + + if (!string.IsNullOrEmpty(UserFilter)) + query = query.Filter("user_id", Postgrest.Constants.Operator.Equals, UserFilter); + + var result = await query.Get(); + var frames = result.Models; + Debug.LogError("Frames: " + frames.Count); + + objectTracks.Clear(); + foreach (var frame in frames) + { + if (!objectTracks.ContainsKey(frame.ObjectId)) + objectTracks[frame.ObjectId] = new List(); + + objectTracks[frame.ObjectId].Add(frame); + //Debug.Log($"Loaded frame: {frame.ObjectId} at {frame.Timestamp}"); + Debug.Log($"Loaded frame: {frame.ObjectId} at {frame.TimestampParsed} Pos: {frame.Position}"); + Debug.Log($"Parsed timestamp: {frame.Timestamp} -> {frame.TimestampParsed.ToString("o")}" + "Pos JSON: " + frame.PositionJson); + + } + Debug.LogWarning("Got the Data!"); + Debug.LogWarning(objectTracks.Count); + + // Gesamtzeit berechnen (in Sekunden) + if (frames.Count > 1) + { + totalDuration = (float)(frames.Last().TimestampParsed - frames.First().TimestampParsed).TotalSeconds; + } + } + + public void StartReplay() // Für das Play UI-Element, um das Replay zu starten + { + isPlaying = true; + playbackTime = 0f; + Debug.LogError("Replay started: total duration = " + totalDuration); + } + + public void PauseReplay() => isPlaying = false; // Für das Pause UI-Element, um das Replay zu pausieren + + public void StopReplay() // Für das Stop UI-Element, um das Replay zu beenden + { + isPlaying = false; + playbackTime = 0f; + } + + public void SetPlaybackTime(float time) // Für das Slider UI-Element zum Scrubben + { + playbackTime = Mathf.Clamp(time, 0f, totalDuration); + } + + private void Update() + { + if (!isPlaying || objectTracks.Count == 0) + return; + + playbackTime += Time.deltaTime * PlaybackSpeed; + + if (playbackTime > totalDuration) + { + if (Loop) + playbackTime = 0f; + else + isPlaying = false; + } + + DateTime currentTimestamp = objectTracks.Values + .SelectMany(list => list) + .First().TimestampParsed + TimeSpan.FromSeconds(playbackTime); + + foreach (var binding in TrackedObjects) + { + if (!objectTracks.ContainsKey(binding.objectId)) + continue; + + var frames = objectTracks[binding.objectId]; + if (frames.Count < 2) + continue; + + FrameModel a = null, b = null; + + for (int i = 0; i < frames.Count - 1; i++) + { + var tA = frames[i].TimestampParsed; + var tB = frames[i + 1].TimestampParsed; + + if (tA <= currentTimestamp && tB >= currentTimestamp) + { + a = frames[i]; + b = frames[i + 1]; + break; + } + } + + if (a != null && b != null) + { + double tA = a.TimestampParsed.Subtract(DateTime.UnixEpoch).TotalSeconds; + double tB = b.TimestampParsed.Subtract(DateTime.UnixEpoch).TotalSeconds; + double tCurrent = currentTimestamp.Subtract(DateTime.UnixEpoch).TotalSeconds; + + float t = Mathf.Clamp01((float)((tCurrent - tA) / (tB - tA))); + + Vector3 pos = Vector3.Lerp(a.Position, b.Position, t); + Quaternion rot = Quaternion.Slerp(a.Rotation, b.Rotation, t); + + binding.targetObject.transform.SetPositionAndRotation(pos, rot); + } + } + + if (!isScrubbing && playbackSlider != null && totalDuration > 0f) + { + playbackSlider.value = playbackTime / totalDuration; + } + } + + /*public void OnSliderValueChanged(float value) + { + if (totalDuration <= 0f) return; + isScrubbing = true; + SetPlaybackTime(value * totalDuration); + }*/ + public void SetSliderScrubValue(float sliderValue) + { + if (isScrubbing) + SetPlaybackTime(sliderValue * totalDuration); + } + + + public void OnSliderStartDrag() + { + isScrubbing = true; + } + + public void OnSliderEndDrag() + { + isScrubbing = false; + SetPlaybackTime(playbackSlider.value * totalDuration); + } + + } +} + diff --git a/Assets/_Scripts/GhostSystem/GhostReplayManager.cs.meta b/Assets/_Scripts/GhostSystem/GhostReplayManager.cs.meta new file mode 100644 index 0000000..6d32ca8 --- /dev/null +++ b/Assets/_Scripts/GhostSystem/GhostReplayManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 151f4fc8945972545b4591ce05f59a2a \ No newline at end of file diff --git a/Assets/_Scripts/Utility/DateSelector.cs b/Assets/_Scripts/Utility/DateSelector.cs new file mode 100644 index 0000000..0b648e5 --- /dev/null +++ b/Assets/_Scripts/Utility/DateSelector.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class DateSelector : MonoBehaviour +{ + public int selectedYear; + public int selectedMonth; + public int selectedDay; + public int selectedHour; + public int selectedMinute; + + public void SetYear(int yearIndex) + { + selectedYear = yearIndex; // Achtung: ggf. +Offset je nach Dropdown-Inhalt + } + + public void SetMonth(int monthIndex) + { + selectedMonth = monthIndex + 1; // Januar = 0 in Dropdown → Monat = 1 + } + + public void SetDay(int dayIndex) + { + selectedDay = dayIndex + 1; // 1–31 + } + + public void SetHour(int hourIndex) + { + selectedHour = hourIndex; // 0–23 + } + + public void SetMinute(int minuteIndex) + { + selectedMinute = minuteIndex; // 0–59 + } + public DateTime selectedDateTime() + { + DateTime dateAndTime = new DateTime(selectedYear, selectedMonth, selectedDay, selectedHour, selectedMinute, 0, DateTimeKind.Utc); + return dateAndTime; + } + +} diff --git a/Assets/_Scripts/Utility/DateSelector.cs.meta b/Assets/_Scripts/Utility/DateSelector.cs.meta new file mode 100644 index 0000000..2a869c9 --- /dev/null +++ b/Assets/_Scripts/Utility/DateSelector.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 5912b0e3f147f7a47b85ed9c539c7ff9 \ No newline at end of file diff --git a/Assets/_Scripts/Utility/RoomManager.cs b/Assets/_Scripts/Utility/RoomManager.cs index 095917f..71106f3 100644 --- a/Assets/_Scripts/Utility/RoomManager.cs +++ b/Assets/_Scripts/Utility/RoomManager.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -5,29 +6,41 @@ using UnityEngine; public class RoomManager : MonoBehaviour { public RoomPrefs myRoom; + public string sceneId; public List doors; public List furnitures; public List portals; public List enemies; + public static event Action OnSceneIdReady; // um das Replay erst auszulösen, wenn die SceneId da ist, die nun über die RoomPrefs festgelegt wird. + public void Awake() { - if (!myRoom.doors && myRoom.furniture && !myRoom.portals && !myRoom.enemies) return; + if (myRoom == null) + { + Debug.LogError("RoomPrefs is not assigned in RoomManager."); + return; + } + + //if (!myRoom.doors && myRoom.furniture && !myRoom.portals && !myRoom.enemies) return; if (myRoom.doors) { foreach (GameObject door in doors) door.SetActive(true); } if (!myRoom.furniture) { - foreach(GameObject f in furnitures) f.SetActive(false); + foreach (GameObject f in furnitures) f.SetActive(false); } if (myRoom.portals) { - foreach(GameObject portal in portals) portal.SetActive(true); + foreach (GameObject portal in portals) portal.SetActive(true); } if (myRoom.enemies) { - foreach ( GameObject enemy in enemies) enemy.SetActive(true); + foreach (GameObject enemy in enemies) enemy.SetActive(true); } + sceneId = myRoom.sceneId; + OnSceneIdReady?.Invoke(sceneId); + } -} +} \ No newline at end of file diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index 0441bee..f8afc07 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -14,10 +14,10 @@ EditorBuildSettings: - enabled: 0 path: Assets/_Scenes/SampleScene Copy.unity guid: d1d4beef77e60314b84afec3230e2311 - - enabled: 0 + - enabled: 1 path: Assets/_Scenes/TestScene.unity guid: 95fce99b6a2e1fa448d27ff8d88c7bef - - enabled: 1 + - enabled: 0 path: Assets/_Scenes/NetworkTest.unity guid: b5976c62b73452e43a494b19eee50119 m_configObjects: