From 5dca4640692e86ff6378fd3b69b1ab540209530c Mon Sep 17 00:00:00 2001 From: Mikolaj Date: Sun, 22 May 2022 10:43:00 +0200 Subject: [PATCH] Figuring out synchronization --- .../NetworkPlayerGhost.prefab | 132 +++---- .../NetworkCharacter/NetworkedAlive.prefab | 47 ++- Assets/Scenes/MainMenu.unity | 80 ++++- Assets/Scenes/MovementTesting.unity | 2 +- Assets/Scenes/NetworkTest.unity | 324 ++++++++++++++++++ Assets/Scenes/NetworkTest.unity.meta | 7 + .../Player/Character/AliveReffrenceHub.cs | 1 - .../Controller/PlayerInputReceiver.cs | 18 +- .../PlayerInfo/PlayerCharacterInfoData.cs | 4 +- .../NetworkAliveReffrenceHub.cs | 18 + .../NetworkAliveReffrenceHub.cs.meta | 11 + .../NetworkCharacter/NetworkCharacterHover.cs | 2 +- .../NetworkCharacterStateChanger.cs | 105 +----- .../NetworkCharacterStateMachine.cs | 20 +- .../NetworkPlayerStateEnforcer.cs | 11 +- Assets/Scripts/PresanceManager.cs | 85 ++++- Assets/Scripts/SteamworksManager.cs | 1 + Assets/Scripts/TTTSC_NetworkManager.cs | 5 +- Assets/TestPlayer.cs | 29 ++ Assets/TestPlayer.cs.meta | 11 + Assets/TestPlayer.prefab | 80 +++++ Assets/TestPlayer.prefab.meta | 7 + 22 files changed, 783 insertions(+), 217 deletions(-) create mode 100644 Assets/Scenes/NetworkTest.unity create mode 100644 Assets/Scenes/NetworkTest.unity.meta create mode 100644 Assets/Scripts/Player/NetworkCharacter/NetworkAliveReffrenceHub.cs create mode 100644 Assets/Scripts/Player/NetworkCharacter/NetworkAliveReffrenceHub.cs.meta create mode 100644 Assets/TestPlayer.cs create mode 100644 Assets/TestPlayer.cs.meta create mode 100644 Assets/TestPlayer.prefab create mode 100644 Assets/TestPlayer.prefab.meta diff --git a/Assets/Resources/Character/Controller/NetworkCharacter/NetworkPlayerGhost.prefab b/Assets/Resources/Character/Controller/NetworkCharacter/NetworkPlayerGhost.prefab index ee5fd0f..d23d982 100644 --- a/Assets/Resources/Character/Controller/NetworkCharacter/NetworkPlayerGhost.prefab +++ b/Assets/Resources/Character/Controller/NetworkCharacter/NetworkPlayerGhost.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &2694535814656859366 +--- !u!1 &5298965798393965143 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,15 +8,46 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2694535814656859386} - - component: {fileID: 2694535814656859377} - - component: {fileID: 2694535814656859388} - - component: {fileID: 2694535814656859385} - - component: {fileID: 2665031141030828950} - - component: {fileID: 2694535814656859389} - - component: {fileID: 1074318405156085107} - - component: {fileID: 6733388625091193667} - - component: {fileID: 8276864428184017328} + - component: {fileID: 5298965798393965140} + m_Layer: 3 + m_Name: PlayerCameraAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5298965798393965140 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5298965798393965143} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.03, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5298965799069515053} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5298965799069515057 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5298965799069515053} + - component: {fileID: 5298965799069515046} + - component: {fileID: 5298965799069515051} + - component: {fileID: 5298965799069515054} + - component: {fileID: 5193012033669626433} + - component: {fileID: 5298965799069515050} + - component: {fileID: 7063299772663594148} + - component: {fileID: 3574892845338495636} + - component: {fileID: 2175250738785187943} m_Layer: 3 m_Name: NetworkPlayerGhost m_TagString: Player @@ -24,61 +55,61 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2694535814656859386 +--- !u!4 &5298965799069515053 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2694535814656859366} + m_GameObject: {fileID: 5298965799069515057} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -11.053974, y: 0, z: -35.997883} + m_LocalPosition: {x: -25.091, y: 2.511, z: -20.605} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 2694535815064488835} + - {fileID: 5298965798393965140} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &2694535814656859377 +--- !u!114 &5298965799069515046 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2694535814656859366} + m_GameObject: {fileID: 5298965799069515057} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 495cd3a0a3a33904ab3473618f482aa4, type: 3} m_Name: m_EditorClassIdentifier: - characterRigidbody: {fileID: 2694535814656859389} + characterRigidbody: {fileID: 5298965799069515050} cameraTransform: {fileID: 0} playerInfoData: {fileID: 0} playerStateEnforcrer: {fileID: 0} - playerStateMachine: {fileID: 2694535814656859388} - playerInputReceiver: {fileID: 2694535814656859385} + playerStateMachine: {fileID: 5298965799069515051} + playerInputReceiver: {fileID: 5298965799069515054} gameManager: {fileID: 0} roundSystem: {fileID: 0} ---- !u!114 &2694535814656859388 +--- !u!114 &5298965799069515051 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2694535814656859366} + m_GameObject: {fileID: 5298965799069515057} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: abe7058362b44e043b66c7ddc42a22c2, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &2694535814656859385 +--- !u!114 &5298965799069515054 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2694535814656859366} + m_GameObject: {fileID: 5298965799069515057} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 777675542a674f346bb9629fd1eb84bc, type: 3} @@ -86,13 +117,13 @@ MonoBehaviour: m_EditorClassIdentifier: syncMode: 0 syncInterval: 0.1 ---- !u!114 &2665031141030828950 +--- !u!114 &5193012033669626433 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2694535814656859366} + m_GameObject: {fileID: 5298965799069515057} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2b9bd3cdb37f0f14e8da51bb08989060, type: 3} @@ -100,19 +131,19 @@ MonoBehaviour: m_EditorClassIdentifier: syncMode: 0 syncInterval: 0.1 - _playerGhostReffrenceHub: {fileID: 2694535814656859377} + _playerGhostReffrenceHub: {fileID: 5298965799069515046} _playerInfoData: {fileID: 0} _aliveBodyPrefab: {fileID: 2012543120969203556, guid: d657db29cb7fd7c49a774f0d99fefb78, type: 3} _spectatorBodyPrefab: {fileID: 1135382073684329176, guid: b615186e864b86245a99d5258f67ae27, type: 3} ---- !u!54 &2694535814656859389 +--- !u!54 &5298965799069515050 Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2694535814656859366} + m_GameObject: {fileID: 5298965799069515057} serializedVersion: 2 m_Mass: 1 m_Drag: 0 @@ -122,13 +153,13 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 112 m_CollisionDetection: 3 ---- !u!114 &1074318405156085107 +--- !u!114 &7063299772663594148 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2694535814656859366} + m_GameObject: {fileID: 5298965799069515057} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} @@ -139,13 +170,13 @@ MonoBehaviour: visible: 0 m_AssetId: 5e378acc86a2c2f4dabdd67fba6fc941 hasSpawned: 0 ---- !u!114 &6733388625091193667 +--- !u!114 &3574892845338495636 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2694535814656859366} + m_GameObject: {fileID: 5298965799069515057} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2c819d953c83aeb4296690c8564ca0d9, type: 3} @@ -153,14 +184,14 @@ MonoBehaviour: m_EditorClassIdentifier: syncMode: 0 syncInterval: 0.1 - _cameraAnchor: {fileID: 2694535815064488835} ---- !u!114 &8276864428184017328 + _cameraAnchor: {fileID: 5298965798393965140} +--- !u!114 &2175250738785187943 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2694535814656859366} + m_GameObject: {fileID: 5298965799069515057} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2f74aedd71d9a4f55b3ce499326d45fb, type: 3} @@ -183,34 +214,3 @@ MonoBehaviour: showGizmos: 0 showOverlay: 0 overlayColor: {r: 0, g: 0, b: 0, a: 0.5} ---- !u!1 &2694535815064488832 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2694535815064488835} - m_Layer: 3 - m_Name: PlayerCameraAnchor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2694535815064488835 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2694535815064488832} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0.03, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 2694535814656859386} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Resources/Character/Controller/NetworkCharacter/NetworkedAlive.prefab b/Assets/Resources/Character/Controller/NetworkCharacter/NetworkedAlive.prefab index abd9c65..95ac622 100644 --- a/Assets/Resources/Character/Controller/NetworkCharacter/NetworkedAlive.prefab +++ b/Assets/Resources/Character/Controller/NetworkCharacter/NetworkedAlive.prefab @@ -902,9 +902,11 @@ GameObject: m_Component: - component: {fileID: 2012543120969203555} - component: {fileID: 2774461514372533717} + - component: {fileID: 7159894118658290477} - component: {fileID: 2012543120969203567} - component: {fileID: 5998557319319874545} - component: {fileID: 2835173981838146917} + - component: {fileID: 1269850959387019397} - component: {fileID: 2716202054029851332} - component: {fileID: 7738513814173773324} - component: {fileID: 7874455332287569041} @@ -945,11 +947,27 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4a3c4a8867cd2f64e9f17bd9abc1f72a, type: 3} m_Name: m_EditorClassIdentifier: - aliveNetworkIdentity: {fileID: 5228559917914550197} characterMovementConfig: {fileID: 2012543120969203567} characterStateMachine: {fileID: 0} characterHover: {fileID: 0} characterStateChanger: {fileID: 0} +--- !u!114 &7159894118658290477 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2012543120969203556} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d2065225f7daf0247af0ecc3bd961814, type: 3} + m_Name: + m_EditorClassIdentifier: + aliveNetworkIdentity: {fileID: 5228559917914550197} + networkCharacterMovementConfig: {fileID: 0} + networkCharacterStateMachine: {fileID: 0} + networkCharacterHover: {fileID: 0} + networkCharacterStateChanger: {fileID: 0} --- !u!114 &2012543120969203567 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1012,6 +1030,31 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 46a49060ecbe7a24d94402a041be9c9a, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &1269850959387019397 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2012543120969203556} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a5cc54e44c2fd3747a35f1e5089efab9, type: 3} + m_Name: + m_EditorClassIdentifier: + syncMode: 0 + syncInterval: 0.1 + characterState: 0 + movementState: 0 + ceilingDetected: 0 + eligibleForStep: 0 + onLadder: 0 + topOnLadder: 0 + bottomOnLadder: 0 + enteredLadderFromBottom: 0 + enteredLadderFromTop: 0 + topLadder: {fileID: 0} + bottomLadder: {fileID: 0} --- !u!114 &2716202054029851332 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1024,8 +1067,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: ece0bc79b10211544962d17c6381cf1c, type: 3} m_Name: m_EditorClassIdentifier: - syncMode: 0 - syncInterval: 0.1 --- !u!114 &7738513814173773324 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/MainMenu.unity b/Assets/Scenes/MainMenu.unity index bf65ef6..243598e 100644 --- a/Assets/Scenes/MainMenu.unity +++ b/Assets/Scenes/MainMenu.unity @@ -308,12 +308,13 @@ MonoBehaviour: disconnectInactiveConnections: 0 disconnectInactiveTimeout: 60 authenticator: {fileID: 0} - playerPrefab: {fileID: 2694535814656859366, guid: 5e378acc86a2c2f4dabdd67fba6fc941, + playerPrefab: {fileID: 5298965799069515057, guid: 5e378acc86a2c2f4dabdd67fba6fc941, type: 3} autoCreatePlayer: 1 - playerSpawnMethod: 0 + playerSpawnMethod: 1 spawnPrefabs: - {fileID: 2012543120969203556, guid: d657db29cb7fd7c49a774f0d99fefb78, type: 3} + - {fileID: 1135382073684329176, guid: b615186e864b86245a99d5258f67ae27, type: 3} _networkPresenceUtilities: {fileID: 170579999} --- !u!114 &170579995 MonoBehaviour: @@ -432,6 +433,7 @@ MonoBehaviour: m_EditorClassIdentifier: syncMode: 0 syncInterval: 0.1 + _gameEventDataSet: {fileID: 0} --- !u!1 &248595333 GameObject: m_ObjectHideFlags: 0 @@ -953,6 +955,80 @@ MonoBehaviour: type: 3} m_DeselectOnBackgroundClick: 1 m_PointerBehavior: 0 +--- !u!1001 &935804059 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3214688313764448385, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 3214688313764448385, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: m_LocalPosition.x + value: 2.7515028 + objectReference: {fileID: 0} + - target: {fileID: 3214688313764448385, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: m_LocalPosition.y + value: 0.6396844 + objectReference: {fileID: 0} + - target: {fileID: 3214688313764448385, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: m_LocalPosition.z + value: -17.639381 + objectReference: {fileID: 0} + - target: {fileID: 3214688313764448385, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3214688313764448385, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3214688313764448385, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3214688313764448385, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3214688313764448385, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3214688313764448385, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3214688313764448385, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3214688313764448388, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: sceneId + value: 298270676 + objectReference: {fileID: 0} + - target: {fileID: 3214688313764448389, guid: 91a2b3994bef78c4c960c08087b0b493, + type: 3} + propertyPath: m_Name + value: TestPlayer + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 91a2b3994bef78c4c960c08087b0b493, type: 3} --- !u!1 &944180868 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/MovementTesting.unity b/Assets/Scenes/MovementTesting.unity index ddecfe0..70ba5bd 100644 --- a/Assets/Scenes/MovementTesting.unity +++ b/Assets/Scenes/MovementTesting.unity @@ -3659,7 +3659,7 @@ MonoBehaviour: ModeOverride: 0 LensShift: {x: 0, y: 0} GateFit: 2 - m_SensorSize: {x: 1.777403, y: 1} + m_SensorSize: {x: 1.7790322, y: 1} m_Transitions: m_BlendHint: 0 m_InheritPosition: 0 diff --git a/Assets/Scenes/NetworkTest.unity b/Assets/Scenes/NetworkTest.unity new file mode 100644 index 0000000..9c2bb50 --- /dev/null +++ b/Assets/Scenes/NetworkTest.unity @@ -0,0 +1,324 @@ +%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: 9 + 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_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GIWorkflowMode: 1 + 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_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + 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: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + 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 + accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &1865061805 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1865061807} + - component: {fileID: 1865061806} + - component: {fileID: 1865061808} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1865061806 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1865061805} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1865061807 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1865061805} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &1865061808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1865061805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &2091810885 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2091810888} + - component: {fileID: 2091810887} + - component: {fileID: 2091810886} + 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 &2091810886 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091810885} + m_Enabled: 1 +--- !u!20 &2091810887 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091810885} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + 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 &2091810888 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2091810885} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Scenes/NetworkTest.unity.meta b/Assets/Scenes/NetworkTest.unity.meta new file mode 100644 index 0000000..ea39e16 --- /dev/null +++ b/Assets/Scenes/NetworkTest.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 94467b35e74a68f4c9c90084d8f4059f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Player/Character/AliveReffrenceHub.cs b/Assets/Scripts/Player/Character/AliveReffrenceHub.cs index 9793f8b..c638368 100644 --- a/Assets/Scripts/Player/Character/AliveReffrenceHub.cs +++ b/Assets/Scripts/Player/Character/AliveReffrenceHub.cs @@ -7,7 +7,6 @@ namespace TTTSC.Player.Character { public class AliveReffrenceHub : MonoBehaviour { - public NetworkIdentity aliveNetworkIdentity; public Controller.CharacterMovementConfig characterMovementConfig; public Controller.CharacterStateMachine characterStateMachine; public Controller.GroundCheck characterHover; diff --git a/Assets/Scripts/Player/Character/Controller/PlayerInputReceiver.cs b/Assets/Scripts/Player/Character/Controller/PlayerInputReceiver.cs index ade1f7c..04bba87 100644 --- a/Assets/Scripts/Player/Character/Controller/PlayerInputReceiver.cs +++ b/Assets/Scripts/Player/Character/Controller/PlayerInputReceiver.cs @@ -33,6 +33,8 @@ namespace TTTSC.Player.Character.Controller _networkIdentity = GetComponent(); + _networkIdentity.AssignClientAuthority(_networkIdentity.connectionToClient); + // #region GlobalControls @@ -263,26 +265,18 @@ namespace TTTSC.Player.Character.Controller #region CrouchInputReciver - [Client] + private void CrouchInputReceiver(InputAction.CallbackContext ctx) { float value = ctx.ReadValue(); Debug.Log("CrouchInputReceiver: " + value); - if (isLocalPlayer) - { - Debug.Log("Sending crouch input to server"); - CmdCrouchInput(FloatBool(value, "==", 1)); - } + Debug.Log("Sending crouch input to server"); + CrouchInputEvent?.Invoke(FloatBool(value, "==", 1)); + } - [Command] - private void CmdCrouchInput(bool performed) - { - Debug.Log("Crouch input received on server from" + _networkIdentity.netId); - CrouchInputEvent?.Invoke(performed); - } #endregion diff --git a/Assets/Scripts/Player/Character/PlayerInfo/PlayerCharacterInfoData.cs b/Assets/Scripts/Player/Character/PlayerInfo/PlayerCharacterInfoData.cs index 4f7ef84..3927700 100644 --- a/Assets/Scripts/Player/Character/PlayerInfo/PlayerCharacterInfoData.cs +++ b/Assets/Scripts/Player/Character/PlayerInfo/PlayerCharacterInfoData.cs @@ -13,8 +13,8 @@ namespace TTTSC.Player.Character.PlayerCharacterInfo public enum playerPlayStates { - Spectator, - Alive + Alive, + Spectator }; public playerPlayStates currentPlayerPlayState; diff --git a/Assets/Scripts/Player/NetworkCharacter/NetworkAliveReffrenceHub.cs b/Assets/Scripts/Player/NetworkCharacter/NetworkAliveReffrenceHub.cs new file mode 100644 index 0000000..d389407 --- /dev/null +++ b/Assets/Scripts/Player/NetworkCharacter/NetworkAliveReffrenceHub.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Mirror; +using TTTSC.Player.Character.Controller; + +namespace TTTSC.Player.NetworkedCharacter +{ + public class NetworkAliveReffrenceHub : MonoBehaviour + { + public NetworkIdentity aliveNetworkIdentity; + public CharacterMovementConfig networkCharacterMovementConfig; + public NetworkCharacterStateMachine networkCharacterStateMachine; + public NetworkCharacterHover networkCharacterHover; + public NetworkCharacterStateChanger networkCharacterStateChanger; + } +} + diff --git a/Assets/Scripts/Player/NetworkCharacter/NetworkAliveReffrenceHub.cs.meta b/Assets/Scripts/Player/NetworkCharacter/NetworkAliveReffrenceHub.cs.meta new file mode 100644 index 0000000..81c2bcd --- /dev/null +++ b/Assets/Scripts/Player/NetworkCharacter/NetworkAliveReffrenceHub.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d2065225f7daf0247af0ecc3bd961814 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Player/NetworkCharacter/NetworkCharacterHover.cs b/Assets/Scripts/Player/NetworkCharacter/NetworkCharacterHover.cs index 0348a0b..e7d27ed 100644 --- a/Assets/Scripts/Player/NetworkCharacter/NetworkCharacterHover.cs +++ b/Assets/Scripts/Player/NetworkCharacter/NetworkCharacterHover.cs @@ -1,4 +1,4 @@ -using System.Collections; + using System.Collections; using System.Collections.Generic; using UnityEngine; diff --git a/Assets/Scripts/Player/NetworkCharacter/NetworkCharacterStateChanger.cs b/Assets/Scripts/Player/NetworkCharacter/NetworkCharacterStateChanger.cs index 7c01b75..ebc308c 100644 --- a/Assets/Scripts/Player/NetworkCharacter/NetworkCharacterStateChanger.cs +++ b/Assets/Scripts/Player/NetworkCharacter/NetworkCharacterStateChanger.cs @@ -7,7 +7,7 @@ using Mirror; namespace TTTSC.Player.NetworkedCharacter { - public class NetworkCharacterStateChanger : NetworkBehaviour + public class NetworkCharacterStateChanger : MonoBehaviour { private PlayerGhostReffrenceHub _playerGhostReffrenceHub; private PlayerInputReceiver _playerInputReceiver; @@ -23,124 +23,41 @@ namespace TTTSC.Player.NetworkedCharacter _playerInputReceiver.MoveInputEvent += Walk; _playerInputReceiver.CrouchInputEvent += Crouch; _playerInputReceiver.SprintInputEvent += Sprint; - - Debug.Log(isLocalPlayer); } - #region input private void Walk(Vector2 direction, bool performing) { - if (isLocalPlayer) - { - _walkIsPerforming = performing; - } + _walkIsPerforming = performing; } - + private void Crouch(bool performing) { - if (isLocalPlayer) - { - Debug.Log("Crouch event triggered with status " + performing); - _crouchIsHeld = performing; - } + _crouchIsHeld = performing; } private void Sprint(bool held) { - if (isLocalPlayer) - { - Debug.Log("Sprint event triggered with status " + held); - _sprintIsPerforming = held; - } + _sprintIsPerforming = held; } - #endregion private void Update() { - //Debug.Log("Local player is updating"); - if (!isLocalPlayer) - { - Debug.LogError("This is not the local player"); - return; - } - + if (_crouchIsHeld && !_sprintIsPerforming) - { - Debug.Log("asking server to crouch"); - CmdCrouch(); - } + _networkCharacterStateMachine.movementState = NetworkCharacterStateMachine.MovementStates.Crouching; if (_walkIsPerforming && !_crouchIsHeld && !_sprintIsPerforming) - { - CmdWalk(); - } + _networkCharacterStateMachine.movementState = NetworkCharacterStateMachine.MovementStates.Walking; if (_sprintIsPerforming && !_crouchIsHeld && _walkIsPerforming) - { - CmdSprint(); - } + _networkCharacterStateMachine.movementState = NetworkCharacterStateMachine.MovementStates.Sprinting; + if (!_walkIsPerforming && !_crouchIsHeld && !_sprintIsPerforming) { - CmdIdle(); + _networkCharacterStateMachine.movementState = NetworkCharacterStateMachine.MovementStates.Idle; } - } - - #region client - [Command] - void CmdCrouch() - { - Debug.Log("asking clients to crouch"); - RpcCrouch(); - } - - [Command] - void CmdWalk() - { - RpcWalk(); - } - - [Command] - void CmdSprint() - { - RpcSprint(); - } - - [Command] - void CmdIdle() - { - RpcIdle(); - } - #endregion - - - #region server - [ClientRpc] - void RpcCrouch() - { - Debug.Log("crouching"); - _networkCharacterStateMachine.movementState = NetworkCharacterStateMachine.MovementStates.Crouching; - } - - [ClientRpc] - void RpcWalk() - { - _networkCharacterStateMachine.movementState = NetworkCharacterStateMachine.MovementStates.Walking; - } - - [ClientRpc] - void RpcSprint() - { - _networkCharacterStateMachine.movementState = NetworkCharacterStateMachine.MovementStates.Sprinting; - } - - [ClientRpc] - void RpcIdle() - { - _networkCharacterStateMachine.movementState = NetworkCharacterStateMachine.MovementStates.Idle; - } - #endregion } } diff --git a/Assets/Scripts/Player/NetworkCharacter/NetworkCharacterStateMachine.cs b/Assets/Scripts/Player/NetworkCharacter/NetworkCharacterStateMachine.cs index 42f28ab..919b508 100644 --- a/Assets/Scripts/Player/NetworkCharacter/NetworkCharacterStateMachine.cs +++ b/Assets/Scripts/Player/NetworkCharacter/NetworkCharacterStateMachine.cs @@ -5,8 +5,9 @@ namespace TTTSC.Player.NetworkedCharacter { public class NetworkCharacterStateMachine : NetworkBehaviour { + [SyncVar] public CharacterStates characterState; - [SyncVar(hook = nameof(HandleMovementStateChange))] + [SyncVar] public MovementStates movementState; public bool ceilingDetected; public bool eligibleForStep; @@ -44,22 +45,5 @@ namespace TTTSC.Player.NetworkedCharacter InBoat, InProp } - - [Command] - private void HandleMovementStateChange(MovementStates oldMovementState, MovementStates newMovementState) - { - RpcSetMovementState(newMovementState); - } - - [ClientRpc] - private void RpcSetMovementState(MovementStates newMovementState) - { - movementState = newMovementState; - } - - private void HandleCharacterStateChange(CharacterStates oldCharacterState, CharacterStates newCharacterState) - { - - } } } diff --git a/Assets/Scripts/Player/NetworkCharacter/NetworkPlayerStateEnforcer.cs b/Assets/Scripts/Player/NetworkCharacter/NetworkPlayerStateEnforcer.cs index ec20145..9688c62 100644 --- a/Assets/Scripts/Player/NetworkCharacter/NetworkPlayerStateEnforcer.cs +++ b/Assets/Scripts/Player/NetworkCharacter/NetworkPlayerStateEnforcer.cs @@ -51,7 +51,6 @@ namespace TTTSC.Player.NetworkedCharacter } } - [ClientRpc] public void SpawnAlivePlayerBody() { _playerInfoData.helth = 100; @@ -64,10 +63,10 @@ namespace TTTSC.Player.NetworkedCharacter if (_aliveBody == null) { _aliveBody = Instantiate(_aliveBodyPrefab, transform.position, transform.rotation, transform); + NetworkServer.Spawn(_aliveBody); } } - [ClientRpc] public void SpawnSpectatorPlayerBody() { if (_aliveBody != null) @@ -79,11 +78,9 @@ namespace TTTSC.Player.NetworkedCharacter if (_spectatorBody == null) { - if (isServer) - { - _spectatorBody = Instantiate(_spectatorBodyPrefab, transform.position, transform.rotation, transform); - - } + + _spectatorBody = Instantiate(_spectatorBodyPrefab, transform.position, transform.rotation, transform); + NetworkServer.Spawn(_spectatorBody); } } diff --git a/Assets/Scripts/PresanceManager.cs b/Assets/Scripts/PresanceManager.cs index fe4c7b4..8c6b208 100644 --- a/Assets/Scripts/PresanceManager.cs +++ b/Assets/Scripts/PresanceManager.cs @@ -15,6 +15,7 @@ public class PresanceManager : MonoBehaviour string maxPlayersInGame; string timeUntillGameEnds; + GameEventDataSet gameEventDataSet; private void OnEnable() { DontDestroyOnLoad(this); @@ -26,7 +27,8 @@ public class PresanceManager : MonoBehaviour public void SetPresence(GameEventDataSet dataSet) { Debug.Log("attempting to set presence"); - CheckDataSet(dataSet); + gameEventDataSet = dataSet; + CheckDataSet(gameEventDataSet); } public void CheckDataSet(GameEventDataSet dataSet) @@ -65,7 +67,7 @@ public class PresanceManager : MonoBehaviour } else { - Debug.Log("suceessfuly recived current gamemode " + state); + Debug.Log("suceessfuly recived current gamemode " + gamemode); } break; @@ -79,7 +81,7 @@ public class PresanceManager : MonoBehaviour } else { - Debug.Log("suceessfuly recived map " + state); + Debug.Log("suceessfuly recived map " + map); } break; @@ -93,7 +95,7 @@ public class PresanceManager : MonoBehaviour } else { - Debug.Log("suceessfuly recived the current amout of players " + state); + Debug.Log("suceessfuly recived the current amout of players " + playersInGame); } break; @@ -107,7 +109,7 @@ public class PresanceManager : MonoBehaviour } else { - Debug.Log("suceessfuly recived the max amout of players " + state); + Debug.Log("suceessfuly recived the max amout of players " + maxPlayersInGame); } break; } @@ -116,18 +118,83 @@ public class PresanceManager : MonoBehaviour //await Task.WhenAll(task); Debug.Log("all data has been successfully checked, attempting setting presence"); - UpdatePresenceStats(); SetSteamPeresance(); discordManager.SetPresence(state, gamemode, map, playersInGame, maxPlayersInGame); + UpdatePresenceStats(); Debug.Log("attepting to update all platform presences"); } private void UpdatePresenceStats() { steamworksManager.SetSteamPresance(valueName, gamemode); - steamworksManager.SetSteamPresance(valueName, map); - steamworksManager.SetSteamPresance(valueName, playersInGame); - steamworksManager.SetSteamPresance(valueName, maxPlayersInGame); + + for (int data = 0; data < gameEventDataSet.gameEventData.Count; data++) + { + var currentData = gameEventDataSet.gameEventData[data]; + //task[data] = currentData; + Debug.Log("there is " + gameEventDataSet.gameEventData.Count + " data set to check"); + + + switch (currentData.valueName) + { + + // + case "presence_gamemode": + valueName = currentData.valueName; + steamworksManager.SetSteamPresance(valueName, gamemode); + if (gamemode == null || gamemode == "null") + { + Debug.Log("no gamemode was passed"); + } + else + { + Debug.Log("steam suceessfuly recived current gamemode " + gamemode); + } + break; + + // + case "presence_map": + valueName = currentData.valueName; + steamworksManager.SetSteamPresance(valueName, map); + if (map == null || map == "null") + { + Debug.Log("no map was passed"); + } + else + { + Debug.Log("steam suceessfuly recived map " + map); + } + break; + + // + case "presence_playersInGame": + valueName = currentData.valueName; + steamworksManager.SetSteamPresance(valueName, playersInGame); + if (playersInGame == null || playersInGame == "null") + { + Debug.Log("no player amout was passed"); + } + else + { + Debug.Log("steam suceessfuly recived the current amout of players " + playersInGame); + } + break; + + // + case "presence_maxPlayersInGame": + valueName = currentData.valueName; + steamworksManager.SetSteamPresance(valueName, maxPlayersInGame); + if (maxPlayersInGame == null || maxPlayersInGame == "null") + { + Debug.Log("no state was passed"); + } + else + { + Debug.Log("steam suceessfuly recived the max amout of players " + maxPlayersInGame); + } + break; + } + } Debug.Log("Updated steam presence stats"); } diff --git a/Assets/Scripts/SteamworksManager.cs b/Assets/Scripts/SteamworksManager.cs index a1d53e1..ab69df3 100644 --- a/Assets/Scripts/SteamworksManager.cs +++ b/Assets/Scripts/SteamworksManager.cs @@ -13,6 +13,7 @@ public class SteamworksManager : MonoBehaviour // Start is called before the first frame update public void SetSteamPresance(string valueName, string presanceText) { + Debug.Log("SetSteamPresance with key: " + valueName + " and content: " + presanceText); SteamFriends.SetRichPresence(valueName, presanceText); } diff --git a/Assets/Scripts/TTTSC_NetworkManager.cs b/Assets/Scripts/TTTSC_NetworkManager.cs index 315c215..b82b18f 100644 --- a/Assets/Scripts/TTTSC_NetworkManager.cs +++ b/Assets/Scripts/TTTSC_NetworkManager.cs @@ -2,11 +2,14 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using Mirror; +using TTTSC.Player.NetworkedCharacter; + public class TTTSC_NetworkManager : NetworkManager { [SerializeField] NetworkPresenceUtilities _networkPresenceUtilities; - + + public override void OnClientConnect(NetworkConnection conn) { base.OnClientConnect(conn); diff --git a/Assets/TestPlayer.cs b/Assets/TestPlayer.cs new file mode 100644 index 0000000..cff0e69 --- /dev/null +++ b/Assets/TestPlayer.cs @@ -0,0 +1,29 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Mirror; +using TTTSC.Player.Character.Controller; + +public class TestPlayer : MonoBehaviour +{ + public PlayerInputReceiver playerInputReceiver; + + // Start is called before the first frame update + void Start() + { + playerInputReceiver = GetComponent(); + + playerInputReceiver.CrouchInputEvent += test; + } + + private void test(bool test) + { + Debug.Log("test"); + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/TestPlayer.cs.meta b/Assets/TestPlayer.cs.meta new file mode 100644 index 0000000..a8ee225 --- /dev/null +++ b/Assets/TestPlayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ba1f1475f4d92434f8892cc2196b6de5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestPlayer.prefab b/Assets/TestPlayer.prefab new file mode 100644 index 0000000..3a70207 --- /dev/null +++ b/Assets/TestPlayer.prefab @@ -0,0 +1,80 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3214688313764448389 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3214688313764448385} + - component: {fileID: 3214688313764448390} + - component: {fileID: 3214688313764448391} + - component: {fileID: 3214688313764448388} + m_Layer: 0 + m_Name: TestPlayer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3214688313764448385 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3214688313764448389} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.7515028, y: 0.6396844, z: -17.639381} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3214688313764448390 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3214688313764448389} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 777675542a674f346bb9629fd1eb84bc, type: 3} + m_Name: + m_EditorClassIdentifier: + syncMode: 0 + syncInterval: 0.1 +--- !u!114 &3214688313764448391 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3214688313764448389} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ba1f1475f4d92434f8892cc2196b6de5, type: 3} + m_Name: + m_EditorClassIdentifier: + playerInputReceiver: {fileID: 3214688313764448390} +--- !u!114 &3214688313764448388 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3214688313764448389} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} + m_Name: + m_EditorClassIdentifier: + sceneId: 0 + serverOnly: 0 + visible: 0 + m_AssetId: + hasSpawned: 0 diff --git a/Assets/TestPlayer.prefab.meta b/Assets/TestPlayer.prefab.meta new file mode 100644 index 0000000..2084cbd --- /dev/null +++ b/Assets/TestPlayer.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 91a2b3994bef78c4c960c08087b0b493 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: