diff --git a/fishnet/Assets/FishNet/Runtime/Managing/Observing/ObserverManager.cs b/fishnet/Assets/FishNet/Runtime/Managing/Observing/ObserverManager.cs index 88a1cce..7ed468b 100644 --- a/fishnet/Assets/FishNet/Runtime/Managing/Observing/ObserverManager.cs +++ b/fishnet/Assets/FishNet/Runtime/Managing/Observing/ObserverManager.cs @@ -245,7 +245,7 @@ internal void CalculateLevelOfDetail(uint tick) /// private void ValidateLevelOfDetails() { - + _enableNetworkLod = false; } } diff --git a/fishnet/Assets/Plugins/ParrelSync.meta b/fishnet/Assets/Plugins/ParrelSync.meta new file mode 100644 index 0000000..a281f41 --- /dev/null +++ b/fishnet/Assets/Plugins/ParrelSync.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b28435e914795054abf5e087d87fcf19 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/fishnet/Assets/Scenes/SampleScene.unity b/fishnet/Assets/_Benchmark/Benchmark.unity similarity index 100% rename from fishnet/Assets/Scenes/SampleScene.unity rename to fishnet/Assets/_Benchmark/Benchmark.unity diff --git a/fishnet/Assets/Scenes/SampleScene.unity.meta b/fishnet/Assets/_Benchmark/Benchmark.unity.meta similarity index 100% rename from fishnet/Assets/Scenes/SampleScene.unity.meta rename to fishnet/Assets/_Benchmark/Benchmark.unity.meta diff --git a/fishnet/Assets/_Benchmark/Prefab/NetworkManager.prefab b/fishnet/Assets/_Benchmark/Prefab/NetworkManager.prefab index 2f069b0..8906986 100644 --- a/fishnet/Assets/_Benchmark/Prefab/NetworkManager.prefab +++ b/fishnet/Assets/_Benchmark/Prefab/NetworkManager.prefab @@ -12,6 +12,10 @@ GameObject: - component: {fileID: 8240105726314001541} - component: {fileID: 7650083780106457332} - component: {fileID: 4042903200496897018} + - component: {fileID: -1109934298006056053} + - component: {fileID: -1022505136918174118} + - component: {fileID: 3616504414068037556} + - component: {fileID: -6497701257867394230} m_Layer: 0 m_Name: NetworkManager m_TagString: Untagged @@ -91,3 +95,74 @@ MonoBehaviour: _tickRate: 20 _pingInterval: 1 _physicsMode: 2 +--- !u!114 &-1109934298006056053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8240105726314001546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7d331f979d46e8e4a9fc90070c596d44, type: 3} + m_Name: + m_EditorClassIdentifier: + _enableNetworkLod: 1 + _levelOfDetailDistances: + - 7 + - 14 + - 21 + - 28 + - 35 + - 42 + - 49 + - 56 + _updateHostVisibility: 1 + _defaultConditions: [] +--- !u!114 &-1022505136918174118 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8240105726314001546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 211a9f6ec51ddc14f908f5acc0cd0423, type: 3} + m_Name: + m_EditorClassIdentifier: + _playerPrefab: {fileID: 8996229709561782109, guid: 97fbcfd711fb73149b13492f5480b93c, type: 3} + _addToDefaultScene: 1 + Spawns: [] +--- !u!114 &3616504414068037556 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8240105726314001546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8bc8f0363ddc75946a958043c5e49a83, type: 3} + m_Name: + m_EditorClassIdentifier: + _color: {r: 1, g: 1, b: 1, a: 1} + _placement: 1 + _showOutgoing: 1 + _showIncoming: 0 +--- !u!114 &-6497701257867394230 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8240105726314001546} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 756c28cd3141c4140ae776188ee26729, type: 3} + m_Name: + m_EditorClassIdentifier: + NetworkTraffic: + _updateInteval: 1 + _updateClient: 0 + _updateServer: 1 diff --git a/fishnet/Assets/_Benchmark/Prefab/Player.prefab b/fishnet/Assets/_Benchmark/Prefab/Player.prefab new file mode 100644 index 0000000..dd0627c --- /dev/null +++ b/fishnet/Assets/_Benchmark/Prefab/Player.prefab @@ -0,0 +1,66 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8996229709561782108 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8996229709561782106} + - component: {fileID: 8996229709561782109} + m_Layer: 0 + m_Name: Player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8996229709561782106 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8996229709561782108} + 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_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8996229709561782109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8996229709561782108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 26b716c41e9b56b4baafaf13a523ba2e, type: 3} + m_Name: + m_EditorClassIdentifier: + k__BackingField: 0 + k__BackingField: 0 + k__BackingField: {fileID: 0} + _networkBehaviours: [] + k__BackingField: {fileID: 0} + k__BackingField: [] + SerializedTransformProperties: + Position: {x: 0, y: 0, z: 0} + Rotation: {x: 0, y: 0, z: 0, w: 1} + LocalScale: {x: 1, y: 1, z: 1} + _isNetworked: 1 + _isGlobal: 0 + _initializeOrder: 0 + _defaultDespawnType: 0 + NetworkObserver: {fileID: 0} + k__BackingField: 0 + k__BackingField: 0 + _scenePathHash: 584410112 + k__BackingField: 0 + k__BackingField: 16374395433789361389 diff --git a/fishnet/Assets/_Benchmark/Prefab/Player.prefab.meta b/fishnet/Assets/_Benchmark/Prefab/Player.prefab.meta new file mode 100644 index 0000000..24ba9a7 --- /dev/null +++ b/fishnet/Assets/_Benchmark/Prefab/Player.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 97fbcfd711fb73149b13492f5480b93c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/mirror/Assets/_Benchmark/GUIGame.prefab b/mirror/Assets/_Benchmark/Prefabs/GUIGame.prefab similarity index 100% rename from mirror/Assets/_Benchmark/GUIGame.prefab rename to mirror/Assets/_Benchmark/Prefabs/GUIGame.prefab diff --git a/mirror/Assets/_Benchmark/GUIGame.prefab.meta b/mirror/Assets/_Benchmark/Prefabs/GUIGame.prefab.meta similarity index 100% rename from mirror/Assets/_Benchmark/GUIGame.prefab.meta rename to mirror/Assets/_Benchmark/Prefabs/GUIGame.prefab.meta diff --git a/mirror/Assets/_Benchmark/NetworkManager.prefab b/mirror/Assets/_Benchmark/Prefabs/NetworkManager.prefab similarity index 96% rename from mirror/Assets/_Benchmark/NetworkManager.prefab rename to mirror/Assets/_Benchmark/Prefabs/NetworkManager.prefab index a53004e..e8edbea 100644 --- a/mirror/Assets/_Benchmark/NetworkManager.prefab +++ b/mirror/Assets/_Benchmark/Prefabs/NetworkManager.prefab @@ -49,7 +49,7 @@ MonoBehaviour: runInBackground: 1 autoStartServerBuild: 1 autoConnectClientBuild: 0 - sendRate: 60 + sendRate: 20 offlineScene: onlineScene: transport: {fileID: 6712455278405722842} @@ -58,7 +58,7 @@ MonoBehaviour: disconnectInactiveConnections: 0 disconnectInactiveTimeout: 60 authenticator: {fileID: 0} - playerPrefab: {fileID: 0} + playerPrefab: {fileID: 4895057759172009277, guid: a892c2b56f836564fbb7df92417b9a6b, type: 3} autoCreatePlayer: 1 playerSpawnMethod: 0 spawnPrefabs: [] diff --git a/mirror/Assets/_Benchmark/NetworkManager.prefab.meta b/mirror/Assets/_Benchmark/Prefabs/NetworkManager.prefab.meta similarity index 100% rename from mirror/Assets/_Benchmark/NetworkManager.prefab.meta rename to mirror/Assets/_Benchmark/Prefabs/NetworkManager.prefab.meta diff --git a/mirror/Assets/_Benchmark/Prefabs/Player.prefab b/mirror/Assets/_Benchmark/Prefabs/Player.prefab new file mode 100644 index 0000000..d7ab56b --- /dev/null +++ b/mirror/Assets/_Benchmark/Prefabs/Player.prefab @@ -0,0 +1,51 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4895057759172009277 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4895057759172009279} + - component: {fileID: 4895057759172009276} + m_Layer: 0 + m_Name: Player + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4895057759172009279 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4895057759172009277} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 119.22356, y: 292.28125, z: 0} + 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 &4895057759172009276 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4895057759172009277} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} + m_Name: + m_EditorClassIdentifier: + sceneId: 0 + _assetId: 0 + serverOnly: 0 + visible: 0 + hasSpawned: 0 diff --git a/mirror/Assets/_Benchmark/Prefabs/Player.prefab.meta b/mirror/Assets/_Benchmark/Prefabs/Player.prefab.meta new file mode 100644 index 0000000..c7fe344 --- /dev/null +++ b/mirror/Assets/_Benchmark/Prefabs/Player.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a892c2b56f836564fbb7df92417b9a6b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/mirror/Assets/_Benchmark/Prefabs/SphereMoveAllAxis.prefab b/mirror/Assets/_Benchmark/Prefabs/SphereMoveAllAxis.prefab index bec209e..9913b2b 100644 --- a/mirror/Assets/_Benchmark/Prefabs/SphereMoveAllAxis.prefab +++ b/mirror/Assets/_Benchmark/Prefabs/SphereMoveAllAxis.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 6859501204968983104} - component: {fileID: 6859501204968983110} - component: {fileID: 6859501204968983108} - - component: {fileID: 4164372541306329233} + - component: {fileID: 4579795718750606273} m_Layer: 0 m_Name: SphereMoveAllAxis m_TagString: Untagged @@ -68,7 +68,7 @@ MonoBehaviour: serverOnly: 0 visible: 0 hasSpawned: 0 ---- !u!114 &4164372541306329233 +--- !u!114 &4579795718750606273 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -77,13 +77,13 @@ MonoBehaviour: m_GameObject: {fileID: 6859501204968983109} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a553cb17010b2403e8523b558bffbc14, type: 3} + m_Script: {fileID: 11500000, guid: 8ff3ba0becae47b8b9381191598957c8, type: 3} m_Name: m_EditorClassIdentifier: syncDirection: 0 syncMode: 0 syncInterval: 0 - target: {fileID: 6859501205988317068} + target: {fileID: 6859501204968983104} syncPosition: 1 syncRotation: 1 syncScale: 0 @@ -97,10 +97,11 @@ MonoBehaviour: showOverlay: 0 overlayColor: {r: 0, g: 0, b: 0, a: 0.5} onlySyncOnChange: 1 - bufferResetMultiplier: 3 - positionSensitivity: 0.01 + onlySyncOnChangeCorrectionMultiplier: 2 rotationSensitivity: 0.01 - scaleSensitivity: 0.01 + compressRotation: 0 + positionPrecision: 0.01 + scalePrecision: 0.01 --- !u!1 &6859501205988317069 GameObject: m_ObjectHideFlags: 0 diff --git a/mirror/Assets/_Benchmark/Prefabs/SphereMoveWander.prefab b/mirror/Assets/_Benchmark/Prefabs/SphereMoveWander.prefab index 37f5562..fca1a96 100644 --- a/mirror/Assets/_Benchmark/Prefabs/SphereMoveWander.prefab +++ b/mirror/Assets/_Benchmark/Prefabs/SphereMoveWander.prefab @@ -94,7 +94,7 @@ GameObject: - component: {fileID: 6660102892434074098} - component: {fileID: 6660102892434074109} - component: {fileID: 6660102892434074110} - - component: {fileID: 3719388534151151571} + - component: {fileID: -5369122709568203960} m_Layer: 0 m_Name: SphereMoveWander m_TagString: Untagged @@ -151,7 +151,7 @@ MonoBehaviour: serverOnly: 0 visible: 0 hasSpawned: 0 ---- !u!114 &3719388534151151571 +--- !u!114 &-5369122709568203960 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -160,13 +160,13 @@ MonoBehaviour: m_GameObject: {fileID: 6660102892434074099} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a553cb17010b2403e8523b558bffbc14, type: 3} + m_Script: {fileID: 11500000, guid: 8ff3ba0becae47b8b9381191598957c8, type: 3} m_Name: m_EditorClassIdentifier: syncDirection: 0 syncMode: 0 syncInterval: 0 - target: {fileID: 6660102891578011556} + target: {fileID: 6660102892434074098} syncPosition: 1 syncRotation: 1 syncScale: 0 @@ -180,7 +180,8 @@ MonoBehaviour: showOverlay: 0 overlayColor: {r: 0, g: 0, b: 0, a: 0.5} onlySyncOnChange: 1 - bufferResetMultiplier: 3 - positionSensitivity: 0.01 + onlySyncOnChangeCorrectionMultiplier: 2 rotationSensitivity: 0.01 - scaleSensitivity: 0.01 + compressRotation: 0 + positionPrecision: 0.01 + scalePrecision: 0.01 diff --git a/mirror/Assets/_Benchmark/Prefabs/SphereMoveY.prefab b/mirror/Assets/_Benchmark/Prefabs/SphereMoveY.prefab index 65ac65b..660b358 100644 --- a/mirror/Assets/_Benchmark/Prefabs/SphereMoveY.prefab +++ b/mirror/Assets/_Benchmark/Prefabs/SphereMoveY.prefab @@ -94,7 +94,7 @@ GameObject: - component: {fileID: 2997158864174378353} - component: {fileID: 2997158864174378352} - component: {fileID: 2997158864174378349} - - component: {fileID: 8058470056856446765} + - component: {fileID: -8317119663844453442} m_Layer: 0 m_Name: SphereMoveY m_TagString: Untagged @@ -151,7 +151,7 @@ MonoBehaviour: serverOnly: 0 visible: 0 hasSpawned: 0 ---- !u!114 &8058470056856446765 +--- !u!114 &-8317119663844453442 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -160,13 +160,13 @@ MonoBehaviour: m_GameObject: {fileID: 2997158864174378348} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a553cb17010b2403e8523b558bffbc14, type: 3} + m_Script: {fileID: 11500000, guid: 8ff3ba0becae47b8b9381191598957c8, type: 3} m_Name: m_EditorClassIdentifier: syncDirection: 0 syncMode: 0 syncInterval: 0 - target: {fileID: 2997158862366106698} + target: {fileID: 2997158864174378353} syncPosition: 1 syncRotation: 1 syncScale: 0 @@ -180,7 +180,8 @@ MonoBehaviour: showOverlay: 0 overlayColor: {r: 0, g: 0, b: 0, a: 0.5} onlySyncOnChange: 1 - bufferResetMultiplier: 3 - positionSensitivity: 0.01 + onlySyncOnChangeCorrectionMultiplier: 2 rotationSensitivity: 0.01 - scaleSensitivity: 0.01 + compressRotation: 0 + positionPrecision: 0.01 + scalePrecision: 0.01 diff --git a/mirror/Assets/_Benchmark/Scripts/GUIGame.cs b/mirror/Assets/_Benchmark/Scripts/GUIGame.cs index 92197be..09efe5c 100644 --- a/mirror/Assets/_Benchmark/Scripts/GUIGame.cs +++ b/mirror/Assets/_Benchmark/Scripts/GUIGame.cs @@ -36,6 +36,9 @@ protected override void StartServer() protected override void StressTest(StressTestEssential stressTest) { + //Mirror Bug, UI Button Click is replicated for late joiners + if (!NetworkServer.active) return; + for (int i = 0; i < stressTest.SpawnCount; i++) { GameObject go = Instantiate(stressTest.Prefab);