diff --git a/Assets/Prefabs/Hider.prefab b/Assets/Prefabs/Hider.prefab index 28684b9..cc52247 100644 --- a/Assets/Prefabs/Hider.prefab +++ b/Assets/Prefabs/Hider.prefab @@ -72,6 +72,10 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 8574096554986372233, guid: 97017ed3bb40aff4e885440d9a7336ee, type: 3} + propertyPath: scopedModes + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] diff --git a/Assets/Prefabs/Hunter.prefab b/Assets/Prefabs/Hunter.prefab index 91589cb..e793b83 100644 --- a/Assets/Prefabs/Hunter.prefab +++ b/Assets/Prefabs/Hunter.prefab @@ -80,6 +80,10 @@ PrefabInstance: propertyPath: role value: 1 objectReference: {fileID: 0} + - target: {fileID: 8574096554986372233, guid: 97017ed3bb40aff4e885440d9a7336ee, type: 3} + propertyPath: scopedModes + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity new file mode 100644 index 0000000..614b869 --- /dev/null +++ b/Assets/Scenes/Lobby.unity @@ -0,0 +1,364 @@ +%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: 2 + 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 &968373997 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 968374001} + - component: {fileID: 968374000} + - component: {fileID: 968373999} + - component: {fileID: 968373998} + m_Layer: 0 + m_Name: Floor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &968373998 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 968373997} + 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: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &968373999 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 968373997} + 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_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + 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_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &968374000 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 968373997} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &968374001 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 968373997} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1, z: 0} + m_LocalScale: {x: 10, y: 1, z: 10} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2141865149 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2141865153} + - component: {fileID: 2141865152} + - component: {fileID: 2141865151} + - component: {fileID: 2141865150} + - component: {fileID: 2141865154} + m_Layer: 0 + m_Name: Start Match + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &2141865150 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2141865149} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2141865151 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2141865149} + 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_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + 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_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2141865152 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2141865149} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &2141865153 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2141865149} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3.89, 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 &2141865154 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2141865149} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dbc3790cccc4958458bb38d883b69afb, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::StartMatchTrigger +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 968374001} + - {fileID: 2141865153} diff --git a/Assets/Scenes/Lobby.unity.meta b/Assets/Scenes/Lobby.unity.meta new file mode 100644 index 0000000..0571125 --- /dev/null +++ b/Assets/Scenes/Lobby.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3d1c04c698b4f32438a69661b90ff58b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity new file mode 100644 index 0000000..26fe956 --- /dev/null +++ b/Assets/Scenes/Main.unity @@ -0,0 +1,1058 @@ +%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: 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: 5 + m_PVRFilteringGaussRadiusAO: 2 + 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 &172071430 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 172071436} + - component: {fileID: 172071435} + - component: {fileID: 172071434} + - component: {fileID: 172071433} + - component: {fileID: 172071432} + - component: {fileID: 172071431} + m_Layer: 0 + m_Name: ThirdPersonCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &172071431 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172071430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: df129be8fadab79498bd429a59bb98e4, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::ThirdPersonOrbitInput + lookMode: 0 + horizontalSensitivity: 0.1 + verticalSensitivity: 0.075 + invertY: 0 + rotationSmoothing: 20 + enableZoom: 1 + zoomSpeed: 0.25 + zoomSmoothing: 10 + minRadius: 0.5 + maxRadius: 8 + manageCursor: 1 +--- !u!114 &172071432 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172071430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dbe43d662878a7c43bcd44d43c9e2094, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineDeoccluder + CollideAgainst: + serializedVersion: 2 + m_Bits: 1 + IgnoreTag: Player + TransparentLayers: + serializedVersion: 2 + m_Bits: 0 + MinimumDistanceFromTarget: 0.5 + AvoidObstacles: + Enabled: 1 + DistanceLimit: 0 + MinimumOcclusionTime: 0 + CameraRadius: 0.07 + UseFollowTarget: + Enabled: 0 + YOffset: 0 + Strategy: 0 + MaximumEffort: 4 + SmoothingTime: 0.05 + Damping: 0.2 + DampingWhenOccluded: 0.1 + ShotQualityEvaluation: + Enabled: 0 + OptimalDistance: 10 + NearLimit: 5 + FarLimit: 30 + MaxQualityBoost: 0.2 +--- !u!114 &172071433 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172071430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f38bda98361e1de48a4ca2bd86ea3c17, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineRotationComposer + Composition: + ScreenPosition: {x: 0, y: 0} + DeadZone: + Enabled: 0 + Size: {x: 0.2, y: 0.2} + HardLimits: + Enabled: 0 + Size: {x: 0.8, y: 0.8} + Offset: {x: 0, y: 0} + CenterOnActivate: 1 + TargetOffset: {x: 0, y: 0, z: 0} + Damping: {x: 0.5, y: 0.5} + Lookahead: + Enabled: 0 + Time: 0 + Smoothing: 0 + IgnoreY: 0 +--- !u!114 &172071434 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172071430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3b5d7c088409d9a40b7b09aa707777f8, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineOrbitalFollow + TargetOffset: {x: 0, y: 0, z: 0} + TrackerSettings: + BindingMode: 4 + PositionDamping: {x: 1, y: 1, z: 1} + AngularDampingMode: 0 + RotationDamping: {x: 1, y: 1, z: 1} + QuaternionDamping: 1 + OrbitStyle: 0 + Radius: 4.5 + Orbits: + Top: + Radius: 2 + Height: 5 + Center: + Radius: 4 + Height: 2.25 + Bottom: + Radius: 2.5 + Height: 0.1 + SplineCurvature: 0.5 + RecenteringTarget: 2 + HorizontalAxis: + Value: 0 + Center: 0 + Range: {x: -180, y: 180} + Wrap: 1 + Recentering: + Enabled: 0 + Wait: 1 + Time: 2 + Restrictions: 0 + VerticalAxis: + Value: 15 + Center: 12 + Range: {x: -88, y: 89} + Wrap: 0 + Recentering: + Enabled: 0 + Wait: 1 + Time: 2 + Restrictions: 0 + RadialAxis: + Value: 1 + Center: 1 + Range: {x: 1, y: 1} + Wrap: 0 + Recentering: + Enabled: 0 + Wait: 1 + Time: 2 + Restrictions: 0 +--- !u!114 &172071435 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172071430} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineCamera + Priority: + Enabled: 0 + m_Value: 0 + OutputChannel: 1 + StandbyUpdate: 2 + m_StreamingVersion: 20241001 + m_LegacyPriority: 0 + Target: + TrackingTarget: {fileID: 0} + LookAtTarget: {fileID: 0} + CustomLookAtTarget: 0 + Lens: + FieldOfView: 45 + OrthographicSize: 10 + NearClipPlane: 0.1 + FarClipPlane: 5000 + Dutch: 0 + ModeOverride: 0 + PhysicalProperties: + GateFit: 2 + SensorSize: {x: 21.946, y: 16.002} + LensShift: {x: 0, y: 0} + FocusDistance: 10 + Iso: 200 + ShutterSpeed: 0.005 + Aperture: 16 + BladeCount: 5 + Curvature: {x: 2, y: 11} + BarrelClipping: 0.25 + Anamorphism: 0 + BlendHint: 0 +--- !u!4 &172071436 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 172071430} + serializedVersion: 2 + m_LocalRotation: {x: 0.1305262, y: 2.1996925e-11, z: -4.1198815e-12, w: 0.9914449} + m_LocalPosition: {x: 0, y: 3.0396857, z: -4.3466663} + 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 &284910513 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 284910517} + - component: {fileID: 284910516} + - component: {fileID: 284910515} + - component: {fileID: 284910514} + - component: {fileID: 284910518} + m_Layer: 0 + m_Name: NetworkManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &284910514 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 284910513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 519095f0598dfdf4ebe457561f77771c, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::NetworkBootstrap + showGui: 1 + enableHotkeys: 1 +--- !u!114 &284910515 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 284910513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6960e84d07fb87f47956e7a81d71c4e6, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.Transports.UTP.UnityTransport + m_ProtocolType: 0 + m_UseWebSockets: 0 + m_UseEncryption: 0 + m_MaxPacketQueueSize: 128 + m_MaxPayloadSize: 6144 + m_HeartbeatTimeoutMS: 500 + m_ConnectTimeoutMS: 1000 + m_MaxConnectAttempts: 60 + m_DisconnectTimeoutMS: 30000 + ConnectionData: + Address: 127.0.0.1 + Port: 7777 + WebSocketPath: + ServerListenAddress: 0.0.0.0 + ClientBindPort: 0 + DebugSimulator: + PacketDelayMS: 0 + PacketJitterMS: 0 + PacketDropRate: 0 +--- !u!114 &284910516 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 284910513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 593a2fe42fa9d37498c96f9a383b6521, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkManager + NetworkManagerExpanded: 0 + NetworkConfig: + ProtocolVersion: 0 + NetworkTransport: {fileID: 284910515} + PlayerPrefab: {fileID: 5384024074013944205, guid: 97017ed3bb40aff4e885440d9a7336ee, type: 3} + Prefabs: + NetworkPrefabsLists: + - {fileID: 11400000, guid: 231a4db0603e8994f9e13e19108d58d1, type: 2} + TickRate: 30 + ClientConnectionBufferTimeout: 10 + ConnectionApproval: 0 + ConnectionData: + EnableTimeResync: 0 + TimeResyncInterval: 30 + EnsureNetworkVariableLengthSafety: 0 + EnableSceneManagement: 1 + ForceSamePrefabs: 1 + RecycleNetworkIds: 1 + NetworkIdRecycleDelay: 120 + RpcHashSize: 0 + LoadSceneTimeOut: 120 + SpawnTimeout: 10 + EnableNetworkLogs: 1 + NetworkTopology: 0 + UseCMBService: 0 + AutoSpawnPlayerPrefabClientSide: 1 + NetworkProfilingMetrics: 1 + OldPrefabList: [] + RunInBackground: 1 + LogLevel: 1 +--- !u!4 &284910517 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 284910513} + 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 &284910518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 284910513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c5a1205b169c81541ae07e8f32fd3673, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::MatchManager + lobbySceneName: Lobby + matchSceneName: Test Map + hunterPrefab: {fileID: 3510981371713521867, guid: cf153a3aea3d5da4f9d4cdbff0be8180, type: 3} + hiderPrefab: {fileID: 5508335275054701003, guid: 6b0b58e8352625343951db00beb8cb0a, type: 3} + matchSpawnCenter: {x: 0, y: 1, z: 0} +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585547} + - component: {fileID: 330585548} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.13333334, g: 0.2, b: 0.26666668, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.1 + far clip plane: 5000 + field of view: 45 + orthographic: 0 + orthographic size: 10 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + serializedVersion: 2 + m_LocalRotation: {x: 0.1305262, y: 2.1832952e-11, z: -2.8743629e-12, w: 0.9914449} + m_LocalPosition: {x: 0, y: 3.0396857, z: -4.3466663} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0} +--- !u!114 &330585547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 +--- !u!114 &330585548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineBrain + ShowDebugText: 0 + ShowCameraFrustum: 1 + IgnoreTimeScale: 0 + WorldUpOverride: {fileID: 0} + ChannelMask: -1 + UpdateMethod: 2 + BlendUpdateMethod: 1 + LensModeOverride: + Enabled: 0 + DefaultMode: 2 + DefaultBlend: + Style: 1 + Time: 2 + CustomCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + CustomBlends: {fileID: 11400000, guid: 47b57a7fe51fd154e975311ad293878a, type: 2} +--- !u!134 &539493728 +PhysicsMaterial: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ' (Instance)' + serializedVersion: 2 + m_DynamicFriction: 0.6 + m_StaticFriction: 0.6 + m_Bounciness: 0 + m_FrictionCombine: 0 + m_BounceCombine: 0 +--- !u!1 &582951479 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 582951482} + - component: {fileID: 582951481} + - component: {fileID: 582951480} + m_Layer: 0 + m_Name: FirstPersonCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &582951480 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 582951479} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 43b8f1dc43642294f99fab0aaabf6197, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::FirstPersonController + cameraTarget: {fileID: 0} + hiddenRenderers: + - {fileID: 0} + horizontalSensitivity: 0.1 + verticalSensitivity: 0.075 + invertY: 0 + maxPitch: 89 + lookSmoothTime: 0.04 + activePriority: 100 + inactivePriority: -100 +--- !u!114 &582951481 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 582951479} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineCamera + Priority: + Enabled: 1 + m_Value: -100 + OutputChannel: 1 + StandbyUpdate: 2 + m_StreamingVersion: 20241001 + m_LegacyPriority: 0 + Target: + TrackingTarget: {fileID: 0} + LookAtTarget: {fileID: 0} + CustomLookAtTarget: 0 + Lens: + FieldOfView: 45 + OrthographicSize: 10 + NearClipPlane: 0.1 + FarClipPlane: 5000 + Dutch: 0 + ModeOverride: 0 + PhysicalProperties: + GateFit: 2 + SensorSize: {x: 21.946, y: 16.002} + LensShift: {x: 0, y: 0} + FocusDistance: 10 + Iso: 200 + ShutterSpeed: 0.005 + Aperture: 16 + BladeCount: 5 + Curvature: {x: 2, y: 11} + BarrelClipping: 0.25 + Anamorphism: 0 + BlendHint: 0 +--- !u!4 &582951482 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 582951479} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.875, 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 &1282734303 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1282734307} + - component: {fileID: 1282734306} + - component: {fileID: 1282734305} + - component: {fileID: 1282734304} + m_Layer: 0 + m_Name: FreeCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1282734304 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282734303} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5ca7cff7542b53b498f0a9834786b9e0, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::FreeCamController + moveSpeed: 5 + sprintMultiplier: 2 + horizontalSensitivity: 0.1 + verticalSensitivity: 0.075 + invertY: 0 + maxPitch: 89 + moveSmoothTime: 0.2 + lookSmoothTime: 0.1 + activePriority: 100 + inactivePriority: -100 +--- !u!143 &1282734305 +CharacterController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282734303} + m_Material: {fileID: 539493728} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Height: 0.21 + m_Radius: 0.1 + m_SlopeLimit: 59 + m_StepOffset: 0.1 + m_SkinWidth: 0.01 + m_MinMoveDistance: 0.001 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &1282734306 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282734303} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineCamera + Priority: + Enabled: 1 + m_Value: -100 + OutputChannel: 1 + StandbyUpdate: 2 + m_StreamingVersion: 20241001 + m_LegacyPriority: 0 + Target: + TrackingTarget: {fileID: 0} + LookAtTarget: {fileID: 0} + CustomLookAtTarget: 0 + Lens: + FieldOfView: 45 + OrthographicSize: 10 + NearClipPlane: 0.1 + FarClipPlane: 5000 + Dutch: 0 + ModeOverride: 0 + PhysicalProperties: + GateFit: 2 + SensorSize: {x: 21.946, y: 16.002} + LensShift: {x: 0, y: 0} + FocusDistance: 10 + Iso: 200 + ShutterSpeed: 0.005 + Aperture: 16 + BladeCount: 5 + Curvature: {x: 2, y: 11} + BarrelClipping: 0.25 + Anamorphism: 0 + BlendHint: 0 +--- !u!4 &1282734307 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1282734303} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, 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 &1516578026 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1516578028} + - component: {fileID: 1516578027} + m_Layer: 0 + m_Name: GameManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1516578027 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1516578026} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 730466b26610d95498d22ab748d855a7, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::GameModeManager + player: {fileID: 0} + cameraInput: {fileID: 172071431} + painter: {fileID: 0} + freeCam: {fileID: 1282734304} + firstPerson: {fileID: 582951480} + switchKey: 3 + startModeIndex: 0 +--- !u!4 &1516578028 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1516578026} + 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 &2009475132 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2009475134} + - component: {fileID: 2009475133} + m_Layer: 0 + m_Name: FrameRateLimiter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2009475133 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009475132} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd08e354312b3b14d8f2573ae830c513, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::FrameRateLimiter + limitFrameRate: 1 + targetFps: 60 + disableVSyncWhenLimiting: 1 + vSyncCountWhenUnlimited: 2 +--- !u!4 &2009475134 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2009475132} + 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 &2025317890 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2025317892} + - component: {fileID: 2025317891} + m_Layer: 0 + m_Name: PaintHUD + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2025317891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2025317890} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0635b02a5454ec408df3a69b04f85a7, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::PaintHud + persistHud: 1 + hudSaveId: + modeManager: {fileID: 0} + painter: {fileID: 0} + layoutPrefab: {fileID: 3563111358790320208, guid: fa9dc2ea9e2c9ac4f815f666014804c8, type: 3} +--- !u!4 &2025317892 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2025317890} + 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!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1516578028} + - {fileID: 2009475134} + - {fileID: 330585546} + - {fileID: 582951482} + - {fileID: 172071436} + - {fileID: 1282734307} + - {fileID: 2025317892} + - {fileID: 284910517} diff --git a/Assets/Scenes/SampleScene.unity.meta b/Assets/Scenes/Main.unity.meta similarity index 100% rename from Assets/Scenes/SampleScene.unity.meta rename to Assets/Scenes/Main.unity.meta diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/Test Map.unity similarity index 91% rename from Assets/Scenes/SampleScene.unity rename to Assets/Scenes/Test Map.unity index 06c81c5..cba4c94 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/Test Map.unity @@ -25,7 +25,7 @@ RenderSettings: m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} m_AmbientIntensity: 1 m_AmbientMode: 0 - m_SubtractiveShadowColor: {r: 0.41960785, g: 0.47843137, b: 0.627451, a: 1} + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} m_SkyboxMaterial: {fileID: 2100000, guid: 63c7f212f60aadc47945b935dc40e7c0, type: 2} m_HaloStrength: 0.5 m_FlareStrength: 1 @@ -68,7 +68,7 @@ LightmapSettings: m_TextureCompression: 1 m_ReflectionCompression: 2 m_MixedBakeMode: 2 - m_BakeBackend: 1 + m_BakeBackend: 2 m_PVRSampling: 1 m_PVRDirectSampleCount: 32 m_PVRSampleCount: 512 @@ -85,8 +85,8 @@ LightmapSettings: m_PVREnvironmentMIS: 1 m_PVRCulling: 1 m_PVRFilteringGaussRadiusDirect: 1 - m_PVRFilteringGaussRadiusIndirect: 5 - m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringGaussRadiusIndirect: 1 + m_PVRFilteringGaussRadiusAO: 1 m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 @@ -538,241 +538,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 4922444305696846, guid: ac1cc01cb5dbf5d4f869c403b38f8a21, type: 3} m_PrefabInstance: {fileID: 607565146} m_PrefabAsset: {fileID: 0} ---- !u!1 &172071430 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 172071436} - - component: {fileID: 172071435} - - component: {fileID: 172071434} - - component: {fileID: 172071433} - - component: {fileID: 172071432} - - component: {fileID: 172071431} - m_Layer: 0 - m_Name: ThirdPersonCamera - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &172071431 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172071430} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: df129be8fadab79498bd429a59bb98e4, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::ThirdPersonOrbitInput - persistCamera: 1 - cameraSaveId: - lookMode: 0 - horizontalSensitivity: 0.1 - verticalSensitivity: 0.075 - invertY: 0 - rotationSmoothing: 20 - enableZoom: 1 - zoomSpeed: 0.25 - zoomSmoothing: 10 - minRadius: 0.5 - maxRadius: 8 - manageCursor: 1 ---- !u!114 &172071432 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172071430} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dbe43d662878a7c43bcd44d43c9e2094, type: 3} - m_Name: - m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineDeoccluder - CollideAgainst: - serializedVersion: 2 - m_Bits: 1 - IgnoreTag: Player - TransparentLayers: - serializedVersion: 2 - m_Bits: 0 - MinimumDistanceFromTarget: 0.5 - AvoidObstacles: - Enabled: 1 - DistanceLimit: 0 - MinimumOcclusionTime: 0 - CameraRadius: 0.07 - UseFollowTarget: - Enabled: 0 - YOffset: 0 - Strategy: 0 - MaximumEffort: 4 - SmoothingTime: 0.05 - Damping: 0.2 - DampingWhenOccluded: 0.1 - ShotQualityEvaluation: - Enabled: 0 - OptimalDistance: 10 - NearLimit: 5 - FarLimit: 30 - MaxQualityBoost: 0.2 ---- !u!114 &172071433 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172071430} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f38bda98361e1de48a4ca2bd86ea3c17, type: 3} - m_Name: - m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineRotationComposer - Composition: - ScreenPosition: {x: 0, y: 0} - DeadZone: - Enabled: 0 - Size: {x: 0.2, y: 0.2} - HardLimits: - Enabled: 0 - Size: {x: 0.8, y: 0.8} - Offset: {x: 0, y: 0} - CenterOnActivate: 1 - TargetOffset: {x: 0, y: 0, z: 0} - Damping: {x: 0.5, y: 0.5} - Lookahead: - Enabled: 0 - Time: 0 - Smoothing: 0 - IgnoreY: 0 ---- !u!114 &172071434 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172071430} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3b5d7c088409d9a40b7b09aa707777f8, type: 3} - m_Name: - m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineOrbitalFollow - TargetOffset: {x: 0, y: 0, z: 0} - TrackerSettings: - BindingMode: 4 - PositionDamping: {x: 1, y: 1, z: 1} - AngularDampingMode: 0 - RotationDamping: {x: 1, y: 1, z: 1} - QuaternionDamping: 1 - OrbitStyle: 0 - Radius: 4.5 - Orbits: - Top: - Radius: 2 - Height: 5 - Center: - Radius: 4 - Height: 2.25 - Bottom: - Radius: 2.5 - Height: 0.1 - SplineCurvature: 0.5 - RecenteringTarget: 2 - HorizontalAxis: - Value: 0 - Center: 0 - Range: {x: -180, y: 180} - Wrap: 1 - Recentering: - Enabled: 0 - Wait: 1 - Time: 2 - Restrictions: 0 - VerticalAxis: - Value: 15 - Center: 12 - Range: {x: -88, y: 89} - Wrap: 0 - Recentering: - Enabled: 0 - Wait: 1 - Time: 2 - Restrictions: 0 - RadialAxis: - Value: 1 - Center: 1 - Range: {x: 1, y: 1} - Wrap: 0 - Recentering: - Enabled: 0 - Wait: 1 - Time: 2 - Restrictions: 0 ---- !u!114 &172071435 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172071430} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} - m_Name: - m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineCamera - Priority: - Enabled: 0 - m_Value: 0 - OutputChannel: 1 - StandbyUpdate: 2 - m_StreamingVersion: 20241001 - m_LegacyPriority: 0 - Target: - TrackingTarget: {fileID: 0} - LookAtTarget: {fileID: 0} - CustomLookAtTarget: 0 - Lens: - FieldOfView: 45 - OrthographicSize: 10 - NearClipPlane: 0.1 - FarClipPlane: 5000 - Dutch: 0 - ModeOverride: 0 - PhysicalProperties: - GateFit: 2 - SensorSize: {x: 21.946, y: 16.002} - LensShift: {x: 0, y: 0} - FocusDistance: 10 - Iso: 200 - ShutterSpeed: 0.005 - Aperture: 16 - BladeCount: 5 - Curvature: {x: 2, y: 11} - BarrelClipping: 0.25 - Anamorphism: 0 - BlendHint: 0 ---- !u!4 &172071436 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 172071430} - serializedVersion: 2 - m_LocalRotation: {x: 0.1305262, y: 2.1996925e-11, z: -4.1198815e-12, w: 0.9914449} - m_LocalPosition: {x: 0, y: 3.0396857, z: -4.3466663} - 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 &200502118 GameObject: m_ObjectHideFlags: 0 @@ -1218,130 +983,6 @@ Transform: m_Children: [] m_Father: {fileID: 347639557} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &284910513 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 284910517} - - component: {fileID: 284910516} - - component: {fileID: 284910515} - - component: {fileID: 284910514} - m_Layer: 0 - m_Name: NetworkManager - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &284910514 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 284910513} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 519095f0598dfdf4ebe457561f77771c, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::NetworkBootstrap - showGui: 1 - enableHotkeys: 1 - hunterPrefab: {fileID: 3510981371713521867, guid: cf153a3aea3d5da4f9d4cdbff0be8180, type: 3} - hiderPrefab: {fileID: 5508335275054701003, guid: 6b0b58e8352625343951db00beb8cb0a, type: 3} - selectedRole: 0 ---- !u!114 &284910515 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 284910513} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 6960e84d07fb87f47956e7a81d71c4e6, type: 3} - m_Name: - m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.Transports.UTP.UnityTransport - m_ProtocolType: 0 - m_UseWebSockets: 0 - m_UseEncryption: 0 - m_MaxPacketQueueSize: 128 - m_MaxPayloadSize: 6144 - m_HeartbeatTimeoutMS: 500 - m_ConnectTimeoutMS: 1000 - m_MaxConnectAttempts: 60 - m_DisconnectTimeoutMS: 30000 - ConnectionData: - Address: 127.0.0.1 - Port: 7777 - WebSocketPath: - ServerListenAddress: 0.0.0.0 - ClientBindPort: 0 - DebugSimulator: - PacketDelayMS: 0 - PacketJitterMS: 0 - PacketDropRate: 0 ---- !u!114 &284910516 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 284910513} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 593a2fe42fa9d37498c96f9a383b6521, type: 3} - m_Name: - m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkManager - NetworkManagerExpanded: 0 - NetworkConfig: - ProtocolVersion: 0 - NetworkTransport: {fileID: 284910515} - PlayerPrefab: {fileID: 5384024074013944205, guid: 97017ed3bb40aff4e885440d9a7336ee, type: 3} - Prefabs: - NetworkPrefabsLists: - - {fileID: 11400000, guid: 231a4db0603e8994f9e13e19108d58d1, type: 2} - TickRate: 30 - ClientConnectionBufferTimeout: 10 - ConnectionApproval: 0 - ConnectionData: - EnableTimeResync: 0 - TimeResyncInterval: 30 - EnsureNetworkVariableLengthSafety: 0 - EnableSceneManagement: 1 - ForceSamePrefabs: 1 - RecycleNetworkIds: 1 - NetworkIdRecycleDelay: 120 - RpcHashSize: 0 - LoadSceneTimeOut: 120 - SpawnTimeout: 10 - EnableNetworkLogs: 1 - NetworkTopology: 0 - UseCMBService: 0 - AutoSpawnPlayerPrefabClientSide: 1 - NetworkProfilingMetrics: 1 - OldPrefabList: [] - RunInBackground: 1 - LogLevel: 1 ---- !u!4 &284910517 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 284910513} - 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 &286369291 GameObject: m_ObjectHideFlags: 0 @@ -1516,176 +1157,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 487926, guid: ee48f88c40d1b4b68a784312431358fa, type: 3} m_PrefabInstance: {fileID: 303815064} m_PrefabAsset: {fileID: 0} ---- !u!1 &330585543 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 330585546} - - component: {fileID: 330585545} - - component: {fileID: 330585544} - - component: {fileID: 330585547} - - component: {fileID: 330585548} - m_Layer: 0 - m_Name: Main Camera - m_TagString: MainCamera - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!81 &330585544 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_Enabled: 1 ---- !u!20 &330585545 -Camera: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_Enabled: 1 - serializedVersion: 2 - m_ClearFlags: 1 - m_BackGroundColor: {r: 0.13333334, g: 0.2, b: 0.26666668, a: 0} - m_projectionMatrixMode: 1 - m_GateFitMode: 2 - m_FOVAxisMode: 0 - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_FocalLength: 50 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - m_SensorSize: {x: 36, y: 24} - m_LensShift: {x: 0, y: 0} - m_NormalizedViewPortRect: - serializedVersion: 2 - x: 0 - y: 0 - width: 1 - height: 1 - near clip plane: 0.1 - far clip plane: 5000 - field of view: 45 - orthographic: 0 - orthographic size: 10 - m_Depth: -1 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingPath: -1 - m_TargetTexture: {fileID: 0} - m_TargetDisplay: 0 - m_TargetEye: 3 - m_HDR: 1 - m_AllowMSAA: 1 - m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 - m_OcclusionCulling: 1 - m_StereoConvergence: 10 - m_StereoSeparation: 0.022 ---- !u!4 &330585546 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - serializedVersion: 2 - m_LocalRotation: {x: 0.1305262, y: 2.1832952e-11, z: -2.8743629e-12, w: 0.9914449} - m_LocalPosition: {x: 0, y: 3.0396857, z: -4.3466663} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 40, y: 0, z: 0} ---- !u!114 &330585547 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} - m_Name: - m_EditorClassIdentifier: - m_RenderShadows: 1 - m_RequiresDepthTextureOption: 2 - m_RequiresOpaqueTextureOption: 2 - m_CameraType: 0 - m_Cameras: [] - m_RendererIndex: -1 - m_VolumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - m_VolumeTrigger: {fileID: 0} - m_VolumeFrameworkUpdateModeOption: 2 - m_RenderPostProcessing: 1 - m_Antialiasing: 0 - m_AntialiasingQuality: 2 - m_StopNaN: 0 - m_Dithering: 0 - m_ClearDepth: 1 - m_AllowXRRendering: 1 - m_AllowHDROutput: 1 - m_UseScreenCoordOverride: 0 - m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} - m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} - m_RequiresDepthTexture: 0 - m_RequiresColorTexture: 0 - m_TaaSettings: - m_Quality: 3 - m_FrameInfluence: 0.1 - m_JitterScale: 1 - m_MipBias: 0 - m_VarianceClampScale: 0.9 - m_ContrastAdaptiveSharpening: 0 - m_Version: 2 ---- !u!114 &330585548 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 330585543} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3} - m_Name: - m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineBrain - ShowDebugText: 0 - ShowCameraFrustum: 1 - IgnoreTimeScale: 0 - WorldUpOverride: {fileID: 0} - ChannelMask: -1 - UpdateMethod: 2 - BlendUpdateMethod: 1 - LensModeOverride: - Enabled: 0 - DefaultMode: 2 - DefaultBlend: - Style: 1 - Time: 2 - CustomCurve: - serializedVersion: 2 - m_Curve: [] - m_PreInfinity: 2 - m_PostInfinity: 2 - m_RotationOrder: 4 - CustomBlends: {fileID: 11400000, guid: 47b57a7fe51fd154e975311ad293878a, type: 2} --- !u!1 &347639556 GameObject: m_ObjectHideFlags: 0 @@ -2370,19 +1841,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 433010, guid: ac92cfb4db971489da14157130119008, type: 3} m_PrefabInstance: {fileID: 505084142} m_PrefabAsset: {fileID: 0} ---- !u!134 &539493728 -PhysicsMaterial: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: ' (Instance)' - serializedVersion: 2 - m_DynamicFriction: 0.6 - m_StaticFriction: 0.6 - m_Bounciness: 0 - m_FrictionCombine: 0 - m_BounceCombine: 0 --- !u!1001 &551852894 PrefabInstance: m_ObjectHideFlags: 0 @@ -2635,104 +2093,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 477104, guid: 6aacb349af157442ebc4e122e8d6b9bd, type: 3} m_PrefabInstance: {fileID: 580280589} m_PrefabAsset: {fileID: 0} ---- !u!1 &582951479 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 582951482} - - component: {fileID: 582951481} - - component: {fileID: 582951480} - m_Layer: 0 - m_Name: FirstPersonCamera - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &582951480 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 582951479} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 43b8f1dc43642294f99fab0aaabf6197, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::FirstPersonController - cameraTarget: {fileID: 0} - hiddenRenderers: - - {fileID: 0} - horizontalSensitivity: 0.1 - verticalSensitivity: 0.075 - invertY: 0 - maxPitch: 89 - lookSmoothTime: 0.04 - activePriority: 100 - inactivePriority: -100 ---- !u!114 &582951481 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 582951479} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} - m_Name: - m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineCamera - Priority: - Enabled: 1 - m_Value: -100 - OutputChannel: 1 - StandbyUpdate: 2 - m_StreamingVersion: 20241001 - m_LegacyPriority: 0 - Target: - TrackingTarget: {fileID: 0} - LookAtTarget: {fileID: 0} - CustomLookAtTarget: 0 - Lens: - FieldOfView: 45 - OrthographicSize: 10 - NearClipPlane: 0.1 - FarClipPlane: 5000 - Dutch: 0 - ModeOverride: 0 - PhysicalProperties: - GateFit: 2 - SensorSize: {x: 21.946, y: 16.002} - LensShift: {x: 0, y: 0} - FocusDistance: 10 - Iso: 200 - ShutterSpeed: 0.005 - Aperture: 16 - BladeCount: 5 - Curvature: {x: 2, y: 11} - BarrelClipping: 0.25 - Anamorphism: 0 - BlendHint: 0 ---- !u!4 &582951482 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 582951479} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1.875, 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!1001 &607565146 PrefabInstance: m_ObjectHideFlags: 0 @@ -5097,130 +4457,6 @@ MonoBehaviour: nz: 15 bits: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000e0790000000080e701000000009e0700000000780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000780000000080e701000000009e0700000000781e00000000e0010000000000000000000000800700000000781e00000000e0790000000080e701000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000e0790000000080e701000000009e070000000078000000000000000000000000e001000000009e0700000000781e00000000e07900000000800700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800700000000781e00000000e0790000000080e701000000001e000000000000000000000000780000000080e701000000009e0700000000781e00000000e00100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e001000000009e0700000000781e00000000e0790000000080070000000000000000000000001e00000000e0790000000080e701000000009e0700000000780000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000780000000080e701000000009e0700000000781e00000000e0010000000000000000000000800700000000781e00000000e0790000000080e701000000001e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e00000000e0790000000080e701000000009e070000000078000000000000000000000000e001000000009e0700000000781e00000000e07900000000800700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800700000000781e00000000e0790000000080e701000000001e000000000000000000000000780000000080e701000000009e0700000000781e00000000e00100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e001000000009e0700000000781e00000000e0790000000080070000000000000000000000001e00000000e0f9ffffffffffe701000000009e0700000000780400000000801000000000004200000000000801000000002004000000008010000000000042000000000008010000000020040000000080100000000000420000000000080100000000200400000000801000000000004200000000000801000000002004000000008010000000000042000000000008010000000020040000000080780000000080e7ffffffffff9fffffffffff7f1e00000000e001000000000000000000000080070000000078feffffffffff790000000080e701000000001e01000000002004000000008010000000000042000000000008010000000020040000000080100000000000420000000000080100000000200400000000801000000000004200000000000801000000002004000000008010000000000042000000000008010000000020040000000080100000000000420000000000080100000000201e00000000e0f9ffffffffffe7ffffffffff9f070000000078000000000000000000000000e001000000009effffffffff7f1e00000000e0790000000080470000000000080100000000200400000000801000000000004200000000000801000000002004000000008010000000000042000000000008010000000020040000000080100000000000420000000000080100000000200400000000801000000000004200000000000801000000002004000000008010000000000042000000000088070000000078fefffffffffff9ffffffffffe701000000001e000000000000000000000000780000000080e7ffffffffff9f0700000000781e00000000e01100000000004200000000000801000000002004000000008010000000000042000000000008010000000020040000000080100000000000420000000000080100000000200400000000801000000000004200000000000801000000002004000000008010000000000042000000000008010000000020040000000080100000000000e201000000009effffffffff7ffeffffffffff7900000000800700000000000080a003f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 insideCount: 2891 ---- !u!1 &1282734303 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1282734307} - - component: {fileID: 1282734306} - - component: {fileID: 1282734305} - - component: {fileID: 1282734304} - m_Layer: 0 - m_Name: FreeCamera - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1282734304 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1282734303} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5ca7cff7542b53b498f0a9834786b9e0, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::FreeCamController - moveSpeed: 5 - sprintMultiplier: 2 - horizontalSensitivity: 0.1 - verticalSensitivity: 0.075 - invertY: 0 - maxPitch: 89 - moveSmoothTime: 0.2 - lookSmoothTime: 0.1 - activePriority: 100 - inactivePriority: -100 ---- !u!143 &1282734305 -CharacterController: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1282734303} - m_Material: {fileID: 539493728} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Height: 0.21 - m_Radius: 0.1 - m_SlopeLimit: 59 - m_StepOffset: 0.1 - m_SkinWidth: 0.01 - m_MinMoveDistance: 0.001 - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &1282734306 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1282734303} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3} - m_Name: - m_EditorClassIdentifier: Unity.Cinemachine::Unity.Cinemachine.CinemachineCamera - Priority: - Enabled: 1 - m_Value: -100 - OutputChannel: 1 - StandbyUpdate: 2 - m_StreamingVersion: 20241001 - m_LegacyPriority: 0 - Target: - TrackingTarget: {fileID: 0} - LookAtTarget: {fileID: 0} - CustomLookAtTarget: 0 - Lens: - FieldOfView: 45 - OrthographicSize: 10 - NearClipPlane: 0.1 - FarClipPlane: 5000 - Dutch: 0 - ModeOverride: 0 - PhysicalProperties: - GateFit: 2 - SensorSize: {x: 21.946, y: 16.002} - LensShift: {x: 0, y: 0} - FocusDistance: 10 - Iso: 200 - ShutterSpeed: 0.005 - Aperture: 16 - BladeCount: 5 - Curvature: {x: 2, y: 11} - BarrelClipping: 0.25 - Anamorphism: 0 - BlendHint: 0 ---- !u!4 &1282734307 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1282734303} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, 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!1001 &1317768121 PrefabInstance: m_ObjectHideFlags: 0 @@ -5978,57 +5214,6 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1504466454} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!1 &1516578026 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1516578028} - - component: {fileID: 1516578027} - m_Layer: 0 - m_Name: GameManager - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1516578027 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1516578026} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 730466b26610d95498d22ab748d855a7, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::GameModeManager - player: {fileID: 0} - cameraInput: {fileID: 172071431} - painter: {fileID: 0} - freeCam: {fileID: 1282734304} - firstPerson: {fileID: 582951480} - switchKey: 3 - startModeIndex: 0 ---- !u!4 &1516578028 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1516578026} - 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!1001 &1552360427 PrefabInstance: m_ObjectHideFlags: 0 @@ -7680,103 +6865,6 @@ Transform: m_Children: [] m_Father: {fileID: 686187287} m_LocalEulerAnglesHint: {x: 20, y: 0, z: 0} ---- !u!1 &2009475132 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2009475134} - - component: {fileID: 2009475133} - m_Layer: 0 - m_Name: FrameRateLimiter - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &2009475133 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2009475132} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: dd08e354312b3b14d8f2573ae830c513, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::FrameRateLimiter - limitFrameRate: 1 - targetFps: 60 - disableVSyncWhenLimiting: 1 - vSyncCountWhenUnlimited: 2 ---- !u!4 &2009475134 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2009475132} - 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 &2025317890 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2025317892} - - component: {fileID: 2025317891} - m_Layer: 0 - m_Name: PaintHUD - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &2025317891 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2025317890} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d0635b02a5454ec408df3a69b04f85a7, type: 3} - m_Name: - m_EditorClassIdentifier: Assembly-CSharp::PaintHud - persistHud: 1 - hudSaveId: - modeManager: {fileID: 0} - painter: {fileID: 0} - layoutPrefab: {fileID: 3563111358790320208, guid: fa9dc2ea9e2c9ac4f815f666014804c8, type: 3} ---- !u!4 &2025317892 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2025317890} - 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!1001 &2036710344 PrefabInstance: m_ObjectHideFlags: 0 @@ -7889,16 +6977,8 @@ Transform: SceneRoots: m_ObjectHideFlags: 0 m_Roots: - - {fileID: 1516578028} - - {fileID: 2009475134} - - {fileID: 330585546} - - {fileID: 582951482} - - {fileID: 172071436} - - {fileID: 1282734307} - {fileID: 832575519} - {fileID: 410087041} - - {fileID: 2025317892} - {fileID: 686187287} - {fileID: 489277934} - {fileID: 347639557} - - {fileID: 284910517} diff --git a/Assets/Scenes/Test Map.unity.meta b/Assets/Scenes/Test Map.unity.meta new file mode 100644 index 0000000..95decaf --- /dev/null +++ b/Assets/Scenes/Test Map.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 427f9e7bc57fb6e49a9233fc60022383 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/GameModeManager.cs b/Assets/Scripts/GameModeManager.cs index 5c6f7ad..f16ec50 100644 --- a/Assets/Scripts/GameModeManager.cs +++ b/Assets/Scripts/GameModeManager.cs @@ -137,8 +137,12 @@ public class GameModeManager : MonoBehaviour if (!localPlayer) return; player = localPlayer; - // The painter lives on the player (per-avatar), so bind the local one. - if (!painter) painter = localPlayer.GetComponentInChildren(true); + // The painter lives on the player (per-avatar), so bind the local one - UNCONDITIONALLY. On a + // lobby->match respawn the previous avatar is despawned and the role variant spawned in the same + // server frame; the old painter is Destroy-pending (still non-null) when this runs, so a + // `if (!painter)` guard would keep the stale reference and the new avatar's painter would never be + // mode-toggled - it would paint in every mode. Always re-point to the freshly spawned avatar. + painter = localPlayer.GetComponentInChildren(true); PainterChanged?.Invoke(painter); Transform camTarget = localPlayer.transform.Find("CameraTarget"); @@ -157,11 +161,16 @@ public class GameModeManager : MonoBehaviour ActiveMode?.Exit(); _activeIndex = -1; + // Lobby/neutral avatar (base Player prefab) -> full mode set; match avatar (Hunter/Hider + // variant) -> only its role's modes. Baked per prefab, so no replicated-phase timing race. var setup = localPlayer.GetComponent(); - PlayerRole role = setup ? setup.Role : PlayerRole.Hider; - BuildModes(role); + if (setup && setup.ScopedModes) + BuildModes(setup.Role); + else + BuildModes(null); - // Each role list is ordered so index 0 is its start mode (Hunter -> First Person, Hider -> Player Control). + // Role lists are ordered so index 0 is the start mode (Hunter -> First Person, Hider -> Player + // Control); the full lobby set starts at Player Control too. SwitchTo(0); } diff --git a/Assets/Scripts/MatchManager.cs b/Assets/Scripts/MatchManager.cs new file mode 100644 index 0000000..7cf5cf4 --- /dev/null +++ b/Assets/Scripts/MatchManager.cs @@ -0,0 +1,282 @@ +using System.Collections; +using System.Collections.Generic; +using Unity.Netcode; +using UnityEngine; +using UnityEngine.SceneManagement; + +/// +/// Server-authoritative match flow. Lives on the persistent NetworkManager object in the boot scene +/// (Main), which stays loaded the whole session (NetworkManager, cameras, HUD). The gameplay scenes +/// (Lobby, Test Map) are loaded ADDITIVELY through NGO's scene manager so Main is never torn down. +/// +/// Two design pillars make the persistent-Main + additive-gameplay model actually work: +/// +/// 1. Clients sync ADDITIVELY ( = +/// ). The NGO default (Single) would unload every scene the +/// connecting client already has - including its own Main (cameras/HUD/managers) - and reload the +/// server's active scene in single mode, which also crashes the player-object scene migration +/// (MoveGameObjectToScene "Destination scene is not valid"). Additive keeps the client's Main and +/// layers the server's scenes on top. Must be set on the server before any client connects; it is +/// auto-propagated to clients via the synchronize event. +/// +/// 2. Players are spawned by THIS manager, not by NGO auto-spawn. NGO would auto-spawn the player the +/// instant a peer connects, into whatever scene is active right then - for the host that is Main +/// (the additive Lobby load is still in flight), which has no floor, so the host falls into the +/// void. We disable auto-spawn (null out ) and instead +/// spawn the neutral Player prefab into the gameplay scene only once it is loaded, so avatars always +/// land on a floor. Main therefore holds zero network objects. +/// +/// Flow: server start -> additive sync mode set -> Lobby loaded additively -> Player spawned for every +/// connected peer (full mode set, including First Person). Late joiners spawn on connect into the +/// already-loaded scene. The host walks into the Start Match trigger -> : one +/// random connected client is rolled Hunter, the rest Hider; the Lobby is unloaded and Test Map loaded +/// (strictly serialized - an NGO constraint, only one scene op in flight); then every player object is +/// despawned and respawned as its role's prefab variant. +/// +/// Not a NetworkBehaviour by design: every state change rides existing NGO replication (additive scene +/// sync + player-object spawn/despawn), so there is no in-scene NetworkObject hash matching or custom +/// RPC to get wrong. The phase here is server-local guard state; clients infer their mode set from the +/// spawned avatar (), not from a replicated phase, so there +/// is no spawn-vs-phase timing race. +/// +[DisallowMultipleComponent] +public class MatchManager : MonoBehaviour +{ + public enum MatchPhase { Lobby, Transitioning, InMatch } + + public static MatchManager Instance { get; private set; } + + [Header("Scenes (must be in Build Settings)")] + [SerializeField] private string lobbySceneName = "Lobby"; + [SerializeField] private string matchSceneName = "Test Map"; + + [Header("Role prefab variants (must be registered network prefabs)")] + [SerializeField] private GameObject hunterPrefab; + [SerializeField] private GameObject hiderPrefab; + + [Header("Spawn")] + [Tooltip("World position lobby avatars are spawned at (raised a touch above the floor so gravity " + + "settles them). Per-client ring fan-out is applied on top (NetworkPlayerSetup.PlaceOnSpawnRing).")] + [SerializeField] private Vector3 lobbySpawnCenter = new Vector3(0f, 1f, 0f); + + [Tooltip("World position the respawned match avatars are placed at on the match map; per-client ring " + + "fan-out is applied on top (NetworkPlayerSetup.PlaceOnSpawnRing).")] + [SerializeField] private Vector3 matchSpawnCenter = new Vector3(0f, 1f, 0f); + + /// Server-local phase guard. Not replicated - see class summary. + public MatchPhase Phase { get; private set; } = MatchPhase.Lobby; + + private NetworkManager _net; + private GameObject _playerPrefab; // captured from NetworkConfig.PlayerPrefab; auto-spawn is then disabled so we spawn manually into a loaded scene + private bool _hooked; + private bool _sceneReady; // server-only: a gameplay scene (lobby/map) is loaded & active, so it is safe to spawn avatars + + private void Awake() + { + if (Instance && Instance != this) { Destroy(this); return; } + Instance = this; + _net = GetComponent(); + if (!_net) _net = FindFirstObjectByType(); + + // Disable NGO auto-spawn (decided purely by PlayerPrefab != null on both host and remote paths). + // We keep the reference and spawn manually once a floored scene exists. Runtime-only mutation - + // the scene asset still carries PlayerPrefab, so there is no asset diff. + if (_net != null) + { + _playerPrefab = _net.NetworkConfig.PlayerPrefab; + _net.NetworkConfig.PlayerPrefab = null; + } + } + + private void OnEnable() + { + if (!_net) _net = FindFirstObjectByType(); + if (!_net) return; + _net.OnServerStarted += OnServerStarted; + _net.OnClientStarted += OnClientStarted; + _net.OnServerStopped += OnNetStopped; + _net.OnClientStopped += OnNetStopped; + } + + private void OnDisable() + { + if (_net) + { + _net.OnServerStarted -= OnServerStarted; + _net.OnClientStarted -= OnClientStarted; + _net.OnServerStopped -= OnNetStopped; + _net.OnClientStopped -= OnNetStopped; + _net.OnClientConnectedCallback -= OnClientConnected; + if (_net.SceneManager != null) _net.SceneManager.OnSceneEvent -= OnSceneEvent; + } + if (Instance == this) Instance = null; + } + + private void OnServerStarted() + { + HookSceneManager(); + + // Keep the connecting client's already-loaded scenes (its Main) and layer ours on top. + // Must run before any client synchronizes; auto-propagates to clients. See class summary. + if (_net.SceneManager != null) + _net.SceneManager.SetClientSynchronizationMode(LoadSceneMode.Additive); + + Phase = MatchPhase.Lobby; + _sceneReady = false; + + // Spawn late joiners on connect (server-side callback). Re-hook defensively in case of re-host. + _net.OnClientConnectedCallback -= OnClientConnected; + _net.OnClientConnectedCallback += OnClientConnected; + + StartCoroutine(LoadLobbyRoutine()); + } + + private void OnClientStarted() => HookSceneManager(); + + private void OnNetStopped(bool _) + { + _hooked = false; + _sceneReady = false; + Phase = MatchPhase.Lobby; + if (_net) _net.OnClientConnectedCallback -= OnClientConnected; + } + + private void HookSceneManager() + { + if (_hooked || _net == null || _net.SceneManager == null) return; + _net.SceneManager.OnSceneEvent += OnSceneEvent; + _hooked = true; + } + + // Keep the freshly loaded gameplay scene the ACTIVE scene on every machine (lighting / skybox / + // instantiation context) - NGO additive loads don't promote the active scene on their own. + private void OnSceneEvent(SceneEvent e) + { + if (e.SceneEventType != SceneEventType.LoadComplete) return; + if (e.SceneName != lobbySceneName && e.SceneName != matchSceneName) return; + if (e.Scene.IsValid() && e.Scene.isLoaded) SceneManager.SetActiveScene(e.Scene); + } + + private IEnumerator LoadLobbyRoutine() + { + yield return SceneOp(() => _net.SceneManager.LoadScene(lobbySceneName, LoadSceneMode.Additive), + SceneEventType.LoadEventCompleted, lobbySceneName); + + // Lobby is loaded and active on the server: now it is safe to spawn the already-connected + // peers (the host, plus anyone who connected while the load was in flight). + _sceneReady = true; + foreach (ulong id in new List(_net.ConnectedClientsIds)) SpawnPlayerFor(id, lobbySpawnCenter); + } + + // Server-side: a peer finished connecting. If a gameplay scene is already up, spawn it now; + // otherwise LoadLobbyRoutine (lobby) or RespawnAll (mid-transition) covers it (the PlayerObject + // guard in SpawnPlayerFor prevents a double spawn). + private void OnClientConnected(ulong clientId) + { + if (_net == null || !_net.IsServer) return; + // During the Lobby->Test Map swap the active scene briefly falls back to Main (no floor); defer + // and let RespawnAll spawn this joiner once the map is loaded. + if (!_sceneReady || Phase == MatchPhase.Transitioning) return; + Vector3 at = Phase == MatchPhase.InMatch ? matchSpawnCenter : lobbySpawnCenter; + SpawnPlayerFor(clientId, at); + } + + // Spawns the neutral Player avatar for a client into the currently active gameplay scene. No-op if + // the client already owns a player object (double-spawn guard) or has since disconnected. + private void SpawnPlayerFor(ulong clientId, Vector3 at) + { + if (!_playerPrefab) + { + Debug.LogError("[MatchManager] Player prefab missing (was NetworkConfig.PlayerPrefab assigned?) - cannot spawn.", this); + return; + } + if (!_net.ConnectedClients.TryGetValue(clientId, out var client)) return; + if (client.PlayerObject) return; + + var go = Instantiate(_playerPrefab, at, Quaternion.identity); + go.GetComponent().SpawnAsPlayerObject(clientId); + } + + /// Server-only. Starts the match: roll roles, swap Lobby -> Test Map, respawn as variants. + /// Safe to call repeatedly (only acts once, while still in the lobby phase). + public void StartMatch() + { + if (_net == null || !_net.IsServer) return; + if (Phase != MatchPhase.Lobby) return; // double-start / not-in-lobby guard + if (!hunterPrefab || !hiderPrefab) + { + Debug.LogError("[MatchManager] Role prefabs not assigned - cannot start match.", this); + return; + } + + var ids = new List(_net.ConnectedClientsIds); + if (ids.Count == 0) return; + + Phase = MatchPhase.Transitioning; + ulong hunterId = ids[Random.Range(0, ids.Count)]; + Debug.Log($"[MatchManager] Starting match. Hunter = client {hunterId}, {ids.Count} player(s).", this); + + StartCoroutine(MatchSequence(hunterId)); + } + + private IEnumerator MatchSequence(ulong hunterId) + { + var sm = _net.SceneManager; + + // 1. Unload the lobby (strictly serialized: one scene op in flight at a time). + Scene lobby = SceneManager.GetSceneByName(lobbySceneName); + if (lobby.IsValid() && lobby.isLoaded) + yield return SceneOp(() => sm.UnloadScene(lobby), SceneEventType.UnloadEventCompleted, lobbySceneName); + + // 2. Load the match map. + yield return SceneOp(() => sm.LoadScene(matchSceneName, LoadSceneMode.Additive), + SceneEventType.LoadEventCompleted, matchSceneName); + + // 3. Respawn every player as its rolled role's prefab variant. + RespawnAll(hunterId); + + Phase = MatchPhase.InMatch; + Debug.Log("[MatchManager] Match started.", this); + } + + // Runs an NGO scene op and waits for its server-side completion event. NGO rejects a new op while one + // is in flight, so callers must await this before issuing the next. + private IEnumerator SceneOp(System.Func op, SceneEventType completed, string sceneName) + { + bool done = false; + void OnEvt(SceneEvent e) + { + if (e.SceneEventType == completed && e.SceneName == sceneName) done = true; + } + + _net.SceneManager.OnSceneEvent += OnEvt; + SceneEventProgressStatus status = op(); + if (status != SceneEventProgressStatus.Started) + { + Debug.LogWarning($"[MatchManager] Scene op on '{sceneName}' returned {status}.", this); + _net.SceneManager.OnSceneEvent -= OnEvt; + yield break; + } + + while (!done) yield return null; + _net.SceneManager.OnSceneEvent -= OnEvt; + } + + private void RespawnAll(ulong hunterId) + { + var ids = new List(_net.ConnectedClientsIds); + foreach (ulong id in ids) + { + if (!_net.ConnectedClients.TryGetValue(id, out var client)) continue; + GameObject prefab = (id == hunterId) ? hunterPrefab : hiderPrefab; + + // Despawn the lobby avatar first so the client has no stale player object when the variant + // claims the slot (avoids NGO's "already has a player object" reassign warning). + NetworkObject old = client.PlayerObject; + if (old) old.Despawn(true); + + var go = Instantiate(prefab, matchSpawnCenter, Quaternion.identity); + go.GetComponent().SpawnAsPlayerObject(id); + } + } +} diff --git a/Assets/Scripts/MatchManager.cs.meta b/Assets/Scripts/MatchManager.cs.meta new file mode 100644 index 0000000..2e03553 --- /dev/null +++ b/Assets/Scripts/MatchManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c5a1205b169c81541ae07e8f32fd3673 \ No newline at end of file diff --git a/Assets/Scripts/MeshPainter.cs b/Assets/Scripts/MeshPainter.cs index 611c11b..80fae8d 100644 --- a/Assets/Scripts/MeshPainter.cs +++ b/Assets/Scripts/MeshPainter.cs @@ -49,8 +49,10 @@ public partial class MeshPainter : MonoBehaviour OnSurface } - /// When false, mouse painting is ignored. Toggled by the GameModeManager. - public bool PaintingEnabled { get; set; } = true; + /// When false, mouse painting is ignored. Driven by the GameModeManager (true only in + /// PaintMode on the local owner). Defaults OFF so a painter that is not (yet) managed by a mode - + /// the pre-spawn window, a remote replica, or any binding gap - never paints from local input. + public bool PaintingEnabled { get; set; } = false; [Header("Backend")] [Tooltip("ON = GPU painting (fast), OFF = CPU painting. Can be toggled live in Play mode.")] diff --git a/Assets/Scripts/NetworkBootstrap.cs b/Assets/Scripts/NetworkBootstrap.cs index 3423d68..eb638d3 100644 --- a/Assets/Scripts/NetworkBootstrap.cs +++ b/Assets/Scripts/NetworkBootstrap.cs @@ -5,12 +5,12 @@ using UnityEngine.InputSystem; #endif /// -/// Dev-only connection harness for local multiplayer testing across the junction-mirror clones: -/// pick a role (Hunter/Hider) in the panel, then one instance clicks Host and the others click -/// Client (loopback 127.0.0.1 via the configured UnityTransport). The chosen role rides along as the -/// connection-approval payload, so the server spawns that role's prefab variant for the connection. -/// Hotkeys: H = Host, C = Client, J = Server, K = Shutdown. Purely a testing scaffold - replace with -/// real lobby/menu UI later. Attach to the same GameObject as the NetworkManager. +/// Dev-only connection harness for local multiplayer testing across the junction-mirror clones: one +/// instance clicks Host and the others click Client (loopback 127.0.0.1 via the configured +/// UnityTransport). Everyone spawns as the neutral Player prefab into the Lobby; roles (Hunter/Hider) +/// are rolled and applied by when the match starts, not here. Hotkeys: +/// H = Host, C = Client, J = Server, K = Shutdown. Purely a testing scaffold - replace with real +/// lobby/menu UI later. Attach to the same GameObject as the NetworkManager. /// [RequireComponent(typeof(NetworkManager))] [DisallowMultipleComponent] @@ -22,51 +22,9 @@ public class NetworkBootstrap : MonoBehaviour [Tooltip("Allow the H/C/J/K keyboard shortcuts.")] public bool enableHotkeys = true; - [Header("Role prefabs")] - [Tooltip("Prefab spawned for a connection that picked Hunter. Must be registered as a network prefab.")] - [SerializeField] private GameObject hunterPrefab; - - [Tooltip("Prefab spawned for a connection that picked Hider. Must be registered as a network prefab.")] - [SerializeField] private GameObject hiderPrefab; - - [Tooltip("Role this instance connects as. Toggle it in the dev panel before hosting/joining.")] - [SerializeField] private PlayerRole selectedRole = PlayerRole.Hider; - private NetworkManager _net; - private void Awake() - { - _net = GetComponent(); - - // Per-connection prefab selection needs connection approval: the callback maps the role byte - // the joiner sent to the matching prefab hash. Enabled here so the scene asset needn't carry it. - _net.NetworkConfig.ConnectionApproval = true; - _net.ConnectionApprovalCallback = ApprovalCheck; - } - - /// Stamps the chosen role into the connection payload, then starts the given mode. - /// StartHost runs approval on its own client too, so the host's role is read from this same payload. - private void StartAs(System.Func start) - { - _net.NetworkConfig.ConnectionData = new[] { (byte)selectedRole }; - start(); - } - - private void ApprovalCheck(NetworkManager.ConnectionApprovalRequest request, - NetworkManager.ConnectionApprovalResponse response) - { - PlayerRole role = (request.Payload != null && request.Payload.Length > 0) - ? (PlayerRole)request.Payload[0] - : PlayerRole.Hider; - - GameObject prefab = role == PlayerRole.Hunter ? hunterPrefab : hiderPrefab; - var netObj = prefab ? prefab.GetComponent() : null; - - response.Approved = true; - response.CreatePlayerObject = true; - // Null prefab/ref falls back to the NetworkManager's default PlayerPrefab. - if (netObj) response.PlayerPrefabHash = netObj.PrefabIdHash; - } + private void Awake() => _net = GetComponent(); private void Update() { @@ -76,9 +34,9 @@ public class NetworkBootstrap : MonoBehaviour if (kb == null || _net == null) return; if (!_net.IsListening) { - if (kb.hKey.wasPressedThisFrame) StartAs(_net.StartHost); - else if (kb.cKey.wasPressedThisFrame) StartAs(_net.StartClient); - else if (kb.jKey.wasPressedThisFrame) StartAs(_net.StartServer); + if (kb.hKey.wasPressedThisFrame) _net.StartHost(); + else if (kb.cKey.wasPressedThisFrame) _net.StartClient(); + else if (kb.jKey.wasPressedThisFrame) _net.StartServer(); } else if (kb.kKey.wasPressedThisFrame) { @@ -91,25 +49,18 @@ public class NetworkBootstrap : MonoBehaviour { if (!showGui || _net == null) return; - GUILayout.BeginArea(new Rect(10, 10, 220, 200), GUI.skin.box); + GUILayout.BeginArea(new Rect(10, 10, 220, 160), GUI.skin.box); if (!_net.IsListening) { GUILayout.Label("Netcode (dev)"); - - GUILayout.BeginHorizontal(); - GUILayout.Label("Role:", GUILayout.Width(38)); - if (GUILayout.Toggle(selectedRole == PlayerRole.Hider, "Hider", GUI.skin.button)) selectedRole = PlayerRole.Hider; - if (GUILayout.Toggle(selectedRole == PlayerRole.Hunter, "Hunter", GUI.skin.button)) selectedRole = PlayerRole.Hunter; - GUILayout.EndHorizontal(); - - if (GUILayout.Button("Host (H)")) StartAs(_net.StartHost); - if (GUILayout.Button("Client (C)")) StartAs(_net.StartClient); - if (GUILayout.Button("Server (J)")) StartAs(_net.StartServer); + if (GUILayout.Button("Host (H)")) _net.StartHost(); + if (GUILayout.Button("Client (C)")) _net.StartClient(); + if (GUILayout.Button("Server (J)")) _net.StartServer(); } else { string role = _net.IsHost ? "Host" : _net.IsServer ? "Server" : "Client"; - GUILayout.Label($"Role: {role} ({selectedRole})"); + GUILayout.Label($"Role: {role}"); GUILayout.Label($"ClientId: {_net.LocalClientId}"); GUILayout.Label($"Clients: {(_net.IsServer ? _net.ConnectedClients.Count : (_net.IsConnectedClient ? 1 : 0))}"); if (GUILayout.Button("Shutdown (K)")) _net.Shutdown(); diff --git a/Assets/Scripts/NetworkPlayerSetup.cs b/Assets/Scripts/NetworkPlayerSetup.cs index 1923119..610ff8d 100644 --- a/Assets/Scripts/NetworkPlayerSetup.cs +++ b/Assets/Scripts/NetworkPlayerSetup.cs @@ -26,9 +26,18 @@ public class NetworkPlayerSetup : NetworkBehaviour "Hunter on the Hunter prefab); GameModeManager reads it on spawn to build this role's mode set.")] [SerializeField] private PlayerRole role = PlayerRole.Hider; + [Tooltip("False = lobby/neutral avatar (the base Player prefab) gets the FULL mode set; true = match " + + "avatar (Hunter/Hider variant) gets only its role's modes. Baked per prefab variant, so the " + + "mode set follows the spawned avatar with no replicated-phase timing race.")] + [SerializeField] private bool scopedModes = false; + /// The side this avatar plays (Hunter/Hider), baked into the prefab variant. public PlayerRole Role => role; + /// True on the match role variants (scope the mode set to ); false on the + /// neutral lobby Player prefab (full mode set). Baked per prefab variant. + public bool ScopedModes => scopedModes; + public override void OnNetworkSpawn() { var controller = GetComponent(); diff --git a/Assets/Scripts/PaintHud.cs b/Assets/Scripts/PaintHud.cs index 95d4090..3e10ee5 100644 --- a/Assets/Scripts/PaintHud.cs +++ b/Assets/Scripts/PaintHud.cs @@ -170,7 +170,10 @@ public partial class PaintHud : MonoBehaviour private void OnModeChanged(GameMode mode) { - bool paint = mode is PaintMode; + // Require a bound painter too: pre-spawn the manager sits in a player-less Paint mode (no + // PlayerControl without an avatar), but there is nothing to paint yet - keep the HUD hidden until + // the local avatar spawns and a painter is bound. + bool paint = mode is PaintMode && painter; if (_panel) _panel.SetActive(paint); // toggles the brush panels and the library panel together if (paint) { diff --git a/Assets/Scripts/StartMatchTrigger.cs b/Assets/Scripts/StartMatchTrigger.cs new file mode 100644 index 0000000..25b7a38 --- /dev/null +++ b/Assets/Scripts/StartMatchTrigger.cs @@ -0,0 +1,26 @@ +using Unity.Netcode; +using UnityEngine; + +/// +/// Sits on the Lobby's "Start Match" trigger volume (a BoxCollider with isTrigger on). When the HOST's +/// own player walks in, it asks the to start the match. Server-gated: pure +/// clients fire nothing (IsServer is false there), and only the host-owned player object counts, so a +/// remote avatar passing through never starts the match. The trigger lives in the additively-loaded +/// Lobby and is destroyed when the lobby unloads, so it cannot start a second match. +/// +[RequireComponent(typeof(Collider))] +[DisallowMultipleComponent] +public class StartMatchTrigger : MonoBehaviour +{ + private void OnTriggerEnter(Collider other) + { + var nm = NetworkManager.Singleton; + if (!nm || !nm.IsServer) return; // only the server/host starts the match + + var netObj = other.GetComponentInParent(); + if (!netObj || !netObj.IsPlayerObject) return; // must be a player avatar + if (netObj.OwnerClientId != nm.LocalClientId) return; // ...and specifically the host's own + + if (MatchManager.Instance) MatchManager.Instance.StartMatch(); + } +} diff --git a/Assets/Scripts/StartMatchTrigger.cs.meta b/Assets/Scripts/StartMatchTrigger.cs.meta new file mode 100644 index 0000000..b6bfa80 --- /dev/null +++ b/Assets/Scripts/StartMatchTrigger.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: dbc3790cccc4958458bb38d883b69afb \ No newline at end of file diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index d057ba3..2130e7a 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -6,8 +6,14 @@ EditorBuildSettings: serializedVersion: 2 m_Scenes: - enabled: 1 - path: Assets/Scenes/SampleScene.unity + path: Assets/Scenes/Main.unity guid: 99c9720ab356a0642a771bea13969a05 + - enabled: 1 + path: Assets/Scenes/Lobby.unity + guid: 3d1c04c698b4f32438a69661b90ff58b + - enabled: 1 + path: Assets/Scenes/Test Map.unity + guid: 427f9e7bc57fb6e49a9233fc60022383 m_configObjects: com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3} m_UseUCBPForAssetBundles: 0