Skip to content

Commit db334ab

Browse files
Fix - Optimized NetworkTransform on all networked prefabs in the Invaders sample [MTT-7599] (#168)
* Optimize NetworkTransform so they do not interpolate and do not sync unecessary transform data The server is not interpolating the ennemies position and given the game doesn't have any animation, not interpolating anything allows for the same movement feeling between clients and host. * Further refine network transform optimizations. * Updated changelog * Reverting two manager prefabs that were changed inadvertently --------- Co-authored-by: Fernando Cortez <[email protected]>
1 parent e8fa6ed commit db334ab

File tree

9 files changed

+461
-214
lines changed

9 files changed

+461
-214
lines changed

Basic/Invaders/Assets/Prefabs/bullet.prefab

Lines changed: 62 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ GameObject:
1010
m_Component:
1111
- component: {fileID: 400000}
1212
- component: {fileID: 21200000}
13+
- component: {fileID: 2859882261451710602}
1314
- component: {fileID: 11400000}
1415
- component: {fileID: 6100000}
1516
- component: {fileID: 5000000}
16-
- component: {fileID: 2859882261451710602}
1717
- component: {fileID: -3163295562554932181}
1818
m_Layer: 0
1919
m_Name: bullet
@@ -29,12 +29,13 @@ Transform:
2929
m_PrefabInstance: {fileID: 0}
3030
m_PrefabAsset: {fileID: 0}
3131
m_GameObject: {fileID: 100000}
32+
serializedVersion: 2
3233
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
3334
m_LocalPosition: {x: -2.9616375, y: 0.72005486, z: 8.037054}
3435
m_LocalScale: {x: 1, y: 1, z: 1}
36+
m_ConstrainProportionsScale: 0
3537
m_Children: []
3638
m_Father: {fileID: 0}
37-
m_RootOrder: 0
3839
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
3940
--- !u!212 &21200000
4041
SpriteRenderer:
@@ -47,6 +48,7 @@ SpriteRenderer:
4748
m_CastShadows: 0
4849
m_ReceiveShadows: 0
4950
m_DynamicOccludee: 1
51+
m_StaticShadowCaster: 0
5052
m_MotionVectors: 1
5153
m_LightProbeUsage: 0
5254
m_ReflectionProbeUsage: 0
@@ -87,6 +89,26 @@ SpriteRenderer:
8789
m_WasSpriteAssigned: 1
8890
m_MaskInteraction: 0
8991
m_SpriteSortPoint: 0
92+
--- !u!114 &2859882261451710602
93+
MonoBehaviour:
94+
m_ObjectHideFlags: 0
95+
m_CorrespondingSourceObject: {fileID: 0}
96+
m_PrefabInstance: {fileID: 0}
97+
m_PrefabAsset: {fileID: 0}
98+
m_GameObject: {fileID: 100000}
99+
m_Enabled: 1
100+
m_EditorHideFlags: 0
101+
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
102+
m_Name:
103+
m_EditorClassIdentifier:
104+
GlobalObjectIdHash: 3008223376
105+
AlwaysReplicateAsRoot: 0
106+
SynchronizeTransform: 1
107+
ActiveSceneSynchronization: 0
108+
SceneMigrationSynchronization: 1
109+
SpawnWithObservers: 1
110+
DontDestroyWithOwner: 0
111+
AutoObjectParentSync: 1
90112
--- !u!114 &11400000
91113
MonoBehaviour:
92114
m_ObjectHideFlags: 0
@@ -113,6 +135,25 @@ BoxCollider2D:
113135
m_Enabled: 1
114136
m_Density: 1
115137
m_Material: {fileID: 0}
138+
m_IncludeLayers:
139+
serializedVersion: 2
140+
m_Bits: 0
141+
m_ExcludeLayers:
142+
serializedVersion: 2
143+
m_Bits: 0
144+
m_LayerOverridePriority: 0
145+
m_ForceSendLayers:
146+
serializedVersion: 2
147+
m_Bits: 4294967295
148+
m_ForceReceiveLayers:
149+
serializedVersion: 2
150+
m_Bits: 4294967295
151+
m_ContactCaptureLayers:
152+
serializedVersion: 2
153+
m_Bits: 4294967295
154+
m_CallbackLayers:
155+
serializedVersion: 2
156+
m_Bits: 4294967295
116157
m_IsTrigger: 1
117158
m_UsedByEffector: 0
118159
m_UsedByComposite: 0
@@ -146,26 +187,16 @@ Rigidbody2D:
146187
m_AngularDrag: 0.05
147188
m_GravityScale: 0
148189
m_Material: {fileID: 0}
190+
m_IncludeLayers:
191+
serializedVersion: 2
192+
m_Bits: 0
193+
m_ExcludeLayers:
194+
serializedVersion: 2
195+
m_Bits: 0
149196
m_Interpolate: 0
150197
m_SleepingMode: 1
151198
m_CollisionDetection: 0
152199
m_Constraints: 0
153-
--- !u!114 &2859882261451710602
154-
MonoBehaviour:
155-
m_ObjectHideFlags: 0
156-
m_CorrespondingSourceObject: {fileID: 0}
157-
m_PrefabInstance: {fileID: 0}
158-
m_PrefabAsset: {fileID: 0}
159-
m_GameObject: {fileID: 100000}
160-
m_Enabled: 1
161-
m_EditorHideFlags: 0
162-
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
163-
m_Name:
164-
m_EditorClassIdentifier:
165-
GlobalObjectIdHash: 951099334
166-
AlwaysReplicateAsRoot: 0
167-
DontDestroyWithOwner: 0
168-
AutoObjectParentSync: 1
169200
--- !u!114 &-3163295562554932181
170201
MonoBehaviour:
171202
m_ObjectHideFlags: 0
@@ -178,18 +209,21 @@ MonoBehaviour:
178209
m_Script: {fileID: 11500000, guid: e96cb6065543e43c4a752faaa1468eb1, type: 3}
179210
m_Name:
180211
m_EditorClassIdentifier:
181-
SyncPositionX: 1
212+
SyncPositionX: 0
182213
SyncPositionY: 1
183-
SyncPositionZ: 1
184-
SyncRotAngleX: 1
185-
SyncRotAngleY: 1
186-
SyncRotAngleZ: 1
187-
SyncScaleX: 1
188-
SyncScaleY: 1
189-
SyncScaleZ: 1
214+
SyncPositionZ: 0
215+
SyncRotAngleX: 0
216+
SyncRotAngleY: 0
217+
SyncRotAngleZ: 0
218+
SyncScaleX: 0
219+
SyncScaleY: 0
220+
SyncScaleZ: 0
190221
PositionThreshold: 0.001
191222
RotAngleThreshold: 0.01
192223
ScaleThreshold: 0.01
224+
UseQuaternionSynchronization: 0
225+
UseQuaternionCompression: 0
226+
UseHalfFloatPrecision: 0
193227
InLocalSpace: 0
194-
Interpolate: 1
195-
CanCommitToTransform: 0
228+
Interpolate: 0
229+
SlerpPosition: 0

Basic/Invaders/Assets/Prefabs/enemy1.prefab

Lines changed: 61 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ GameObject:
1010
m_Component:
1111
- component: {fileID: 400000}
1212
- component: {fileID: 21200000}
13+
- component: {fileID: 2037077820506562951}
1314
- component: {fileID: 11400000}
1415
- component: {fileID: 6100000}
1516
- component: {fileID: 5000000}
1617
- component: {fileID: 4223722966607089368}
17-
- component: {fileID: 2037077820506562951}
1818
m_Layer: 0
1919
m_Name: enemy1
2020
m_TagString: Untagged
@@ -29,13 +29,13 @@ Transform:
2929
m_PrefabInstance: {fileID: 0}
3030
m_PrefabAsset: {fileID: 0}
3131
m_GameObject: {fileID: 100000}
32+
serializedVersion: 2
3233
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
3334
m_LocalPosition: {x: -2.521718, y: 0.97297525, z: 2.9156828}
3435
m_LocalScale: {x: 1, y: 1, z: 1}
3536
m_ConstrainProportionsScale: 0
3637
m_Children: []
3738
m_Father: {fileID: 0}
38-
m_RootOrder: 0
3939
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
4040
--- !u!212 &21200000
4141
SpriteRenderer:
@@ -89,6 +89,27 @@ SpriteRenderer:
8989
m_WasSpriteAssigned: 1
9090
m_MaskInteraction: 0
9191
m_SpriteSortPoint: 0
92+
--- !u!114 &2037077820506562951
93+
MonoBehaviour:
94+
m_ObjectHideFlags: 0
95+
m_CorrespondingSourceObject: {fileID: 0}
96+
m_PrefabInstance: {fileID: 0}
97+
m_PrefabAsset: {fileID: 0}
98+
m_GameObject: {fileID: 100000}
99+
m_Enabled: 1
100+
m_EditorHideFlags: 0
101+
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
102+
m_Name:
103+
m_EditorClassIdentifier:
104+
GlobalObjectIdHash: 416377817
105+
InScenePlacedSourceGlobalObjectIdHash: 0
106+
AlwaysReplicateAsRoot: 0
107+
SynchronizeTransform: 1
108+
ActiveSceneSynchronization: 0
109+
SceneMigrationSynchronization: 1
110+
SpawnWithObservers: 1
111+
DontDestroyWithOwner: 0
112+
AutoObjectParentSync: 1
92113
--- !u!114 &11400000
93114
MonoBehaviour:
94115
m_ObjectHideFlags: 0
@@ -114,6 +135,25 @@ BoxCollider2D:
114135
m_Enabled: 1
115136
m_Density: 1
116137
m_Material: {fileID: 0}
138+
m_IncludeLayers:
139+
serializedVersion: 2
140+
m_Bits: 0
141+
m_ExcludeLayers:
142+
serializedVersion: 2
143+
m_Bits: 0
144+
m_LayerOverridePriority: 0
145+
m_ForceSendLayers:
146+
serializedVersion: 2
147+
m_Bits: 4294967295
148+
m_ForceReceiveLayers:
149+
serializedVersion: 2
150+
m_Bits: 4294967295
151+
m_ContactCaptureLayers:
152+
serializedVersion: 2
153+
m_Bits: 4294967295
154+
m_CallbackLayers:
155+
serializedVersion: 2
156+
m_Bits: 4294967295
117157
m_IsTrigger: 0
118158
m_UsedByEffector: 0
119159
m_UsedByComposite: 0
@@ -147,6 +187,12 @@ Rigidbody2D:
147187
m_AngularDrag: 0.05
148188
m_GravityScale: 0
149189
m_Material: {fileID: 0}
190+
m_IncludeLayers:
191+
serializedVersion: 2
192+
m_Bits: 0
193+
m_ExcludeLayers:
194+
serializedVersion: 2
195+
m_Bits: 0
150196
m_Interpolate: 0
151197
m_SleepingMode: 1
152198
m_CollisionDetection: 0
@@ -163,34 +209,22 @@ MonoBehaviour:
163209
m_Script: {fileID: 11500000, guid: e96cb6065543e43c4a752faaa1468eb1, type: 3}
164210
m_Name:
165211
m_EditorClassIdentifier:
212+
UseUnreliableDeltas: 0
166213
SyncPositionX: 1
167214
SyncPositionY: 1
168-
SyncPositionZ: 1
169-
SyncRotAngleX: 1
170-
SyncRotAngleY: 1
171-
SyncRotAngleZ: 1
172-
SyncScaleX: 1
173-
SyncScaleY: 1
174-
SyncScaleZ: 1
215+
SyncPositionZ: 0
216+
SyncRotAngleX: 0
217+
SyncRotAngleY: 0
218+
SyncRotAngleZ: 0
219+
SyncScaleX: 0
220+
SyncScaleY: 0
221+
SyncScaleZ: 0
175222
PositionThreshold: 0
176223
RotAngleThreshold: 0
177224
ScaleThreshold: 0
225+
UseQuaternionSynchronization: 0
226+
UseQuaternionCompression: 0
227+
UseHalfFloatPrecision: 0
178228
InLocalSpace: 0
179-
Interpolate: 1
180-
CanCommitToTransform: 0
181-
--- !u!114 &2037077820506562951
182-
MonoBehaviour:
183-
m_ObjectHideFlags: 0
184-
m_CorrespondingSourceObject: {fileID: 0}
185-
m_PrefabInstance: {fileID: 0}
186-
m_PrefabAsset: {fileID: 0}
187-
m_GameObject: {fileID: 100000}
188-
m_Enabled: 1
189-
m_EditorHideFlags: 0
190-
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
191-
m_Name:
192-
m_EditorClassIdentifier:
193-
GlobalObjectIdHash: 951099334
194-
AlwaysReplicateAsRoot: 0
195-
DontDestroyWithOwner: 0
196-
AutoObjectParentSync: 1
229+
Interpolate: 0
230+
SlerpPosition: 0

0 commit comments

Comments
 (0)