Skip to content

Commit ebed506

Browse files
author
FirstGearGames
committed
4.6.7
- Fixed 'object initialized twice' error when spawning recursively nested objects. - Fixed occasional NullReferenceException when using Reserialize menu.
1 parent 79f5c5e commit ebed506

File tree

45 files changed

+1146
-499
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1146
-499
lines changed

Assets/FishNet/CodeGenerating/Processing/Prediction/PredictionProcessor.cs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -209,14 +209,14 @@ internal bool GetPredictionMethods(TypeDefinition typeDef, out MethodDefinition
209209
{
210210
if (customAttribute.Is(replicateAttributeFullName))
211211
{
212-
if (!MethodIsPrivate(methodDef) || AlreadyFound(replicateMd))
212+
if (!IsMethodPrivate(methodDef) || IsPredictionMethodAlreadyFound(replicateMd))
213213
error = true;
214214
else
215215
replicateMd = methodDef;
216216
}
217217
else if (customAttribute.Is(reconcileAttributeFullName))
218218
{
219-
if (!MethodIsPrivate(methodDef) || AlreadyFound(reconcileMd))
219+
if (!IsMethodPrivate(methodDef) || IsPredictionMethodAlreadyFound(reconcileMd))
220220
{
221221
error = true;
222222
}
@@ -269,18 +269,19 @@ bool CheckCreateReconcile(MethodDefinition reconcileMd)
269269
}
270270
}
271271

272-
bool MethodIsPrivate(MethodDefinition md)
272+
/* Forcing a method to private is not necessarily needed
273+
* but it adds a safe-guard against users calling base.Reconcile/Replicate
274+
* from another replicate. Doing this would cause the replicate to run twice
275+
* for the same script hierarchy, which would create unpredictable behavior. */
276+
bool IsMethodPrivate(MethodDefinition md)
273277
{
274-
//Do we actually need private checks anymore?
275-
return true;
276-
277-
// bool isPrivate = md.Attributes.HasFlag(MethodAttributes.Private);
278-
// if (!isPrivate)
279-
// base.LogError($"Method {md.Name} within {typeDef.Name} is a prediction method and must be private.");
280-
// return isPrivate;
278+
bool isPrivate = md.Attributes.HasFlag(MethodAttributes.Private);
279+
if (!isPrivate)
280+
base.LogError($"Method {md.Name} within {typeDef.Name} is a prediction method and must be private.");
281+
return isPrivate;
281282
}
282283

283-
bool AlreadyFound(MethodDefinition md)
284+
bool IsPredictionMethodAlreadyFound(MethodDefinition md)
284285
{
285286
bool alreadyFound = (md != null);
286287
if (alreadyFound)

Assets/FishNet/Demos/Authenticator/Scenes/Authenticator.unity

Lines changed: 24 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ RenderSettings:
3838
m_ReflectionIntensity: 1
3939
m_CustomReflection: {fileID: 0}
4040
m_Sun: {fileID: 0}
41-
m_IndirectSpecularColor: {r: 0.37311953, g: 0.38074014, b: 0.3587274, a: 1}
4241
m_UseRadianceAmbientProbe: 0
4342
--- !u!157 &3
4443
LightmapSettings:
@@ -198,118 +197,95 @@ PrefabInstance:
198197
m_Modification:
199198
m_TransformParent: {fileID: 0}
200199
m_Modifications:
201-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
202-
type: 3}
200+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
203201
propertyPath: m_Pivot.x
204202
value: 0
205203
objectReference: {fileID: 0}
206-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
207-
type: 3}
204+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
208205
propertyPath: m_Pivot.y
209206
value: 0
210207
objectReference: {fileID: 0}
211-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
212-
type: 3}
208+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
213209
propertyPath: m_RootOrder
214210
value: 1
215211
objectReference: {fileID: 0}
216-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
217-
type: 3}
212+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
218213
propertyPath: m_AnchorMax.x
219214
value: 0
220215
objectReference: {fileID: 0}
221-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
222-
type: 3}
216+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
223217
propertyPath: m_AnchorMax.y
224218
value: 0
225219
objectReference: {fileID: 0}
226-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
227-
type: 3}
220+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
228221
propertyPath: m_AnchorMin.x
229222
value: 0
230223
objectReference: {fileID: 0}
231-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
232-
type: 3}
224+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
233225
propertyPath: m_AnchorMin.y
234226
value: 0
235227
objectReference: {fileID: 0}
236-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
237-
type: 3}
228+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
238229
propertyPath: m_SizeDelta.x
239230
value: 0
240231
objectReference: {fileID: 0}
241-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
242-
type: 3}
232+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
243233
propertyPath: m_SizeDelta.y
244234
value: 0
245235
objectReference: {fileID: 0}
246-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
247-
type: 3}
236+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
248237
propertyPath: m_LocalPosition.x
249238
value: 0
250239
objectReference: {fileID: 0}
251-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
252-
type: 3}
240+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
253241
propertyPath: m_LocalPosition.y
254242
value: 0
255243
objectReference: {fileID: 0}
256-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
257-
type: 3}
244+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
258245
propertyPath: m_LocalPosition.z
259246
value: 0
260247
objectReference: {fileID: 0}
261-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
262-
type: 3}
248+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
263249
propertyPath: m_LocalRotation.w
264250
value: 1
265251
objectReference: {fileID: 0}
266-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
267-
type: 3}
252+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
268253
propertyPath: m_LocalRotation.x
269254
value: 0
270255
objectReference: {fileID: 0}
271-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
272-
type: 3}
256+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
273257
propertyPath: m_LocalRotation.y
274258
value: 0
275259
objectReference: {fileID: 0}
276-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
277-
type: 3}
260+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
278261
propertyPath: m_LocalRotation.z
279262
value: 0
280263
objectReference: {fileID: 0}
281-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
282-
type: 3}
264+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
283265
propertyPath: m_AnchoredPosition.x
284266
value: 0
285267
objectReference: {fileID: 0}
286-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
287-
type: 3}
268+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
288269
propertyPath: m_AnchoredPosition.y
289270
value: 0
290271
objectReference: {fileID: 0}
291-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
292-
type: 3}
272+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
293273
propertyPath: m_LocalEulerAnglesHint.x
294274
value: 0
295275
objectReference: {fileID: 0}
296-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
297-
type: 3}
276+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
298277
propertyPath: m_LocalEulerAnglesHint.y
299278
value: 0
300279
objectReference: {fileID: 0}
301-
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0,
302-
type: 3}
280+
- target: {fileID: 4393252310969058990, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
303281
propertyPath: m_LocalEulerAnglesHint.z
304282
value: 0
305283
objectReference: {fileID: 0}
306-
- target: {fileID: 4393252310969058994, guid: 0570b6f7f713dc44a90463654bbcd8d0,
307-
type: 3}
284+
- target: {fileID: 4393252310969058994, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
308285
propertyPath: _autoStartType
309286
value: 1
310287
objectReference: {fileID: 0}
311-
- target: {fileID: 4393252310969058995, guid: 0570b6f7f713dc44a90463654bbcd8d0,
312-
type: 3}
288+
- target: {fileID: 4393252310969058995, guid: 0570b6f7f713dc44a90463654bbcd8d0, type: 3}
313289
propertyPath: m_Name
314290
value: NetworkHudCanvas
315291
objectReference: {fileID: 0}
@@ -362,7 +338,7 @@ MonoBehaviour:
362338
_objectPool: {fileID: 0}
363339
_persistence: 0
364340
_logging: {fileID: 0}
365-
_spawnablePrefabs: {fileID: 11400000, guid: 68e79e63a16f2c74e81f070bd36822b8, type: 2}
341+
_spawnablePrefabs: {fileID: 11400000, guid: ef18464092139404db8e515b0bf59331, type: 2}
366342
--- !u!1 &7443408886491481971
367343
GameObject:
368344
m_ObjectHideFlags: 0

Assets/FishNet/Demos/Benchmarks/NetworkTransform/Prefabs/NetworkTransform Benchmark 2D.prefab

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ MonoBehaviour:
133133
m_Name:
134134
m_EditorClassIdentifier:
135135
<IsNested>k__BackingField: 0
136+
WasActiveDuringEdit: 1
137+
WasActiveDuringEdit_Set: 1
136138
<ComponentIndex>k__BackingField: 0
137139
<PredictedSpawn>k__BackingField: {fileID: 0}
138140
<PredictedOwner>k__BackingField: {fileID: 0}
@@ -163,7 +165,7 @@ MonoBehaviour:
163165
_spectatorInterpolation: 2
164166
_enableTeleport: 0
165167
_teleportThreshold: 1
166-
<PrefabId>k__BackingField: 2
168+
<PrefabId>k__BackingField: 9
167169
<SpawnableCollectionId>k__BackingField: 0
168170
<AssetPathHash>k__BackingField: 5448584063611559504
169171
<SceneId>k__BackingField: 0

Assets/FishNet/Demos/Benchmarks/NetworkTransform/Prefabs/NetworkTransform Benchmark 3D Normal.prefab

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ MonoBehaviour:
4848
m_Name:
4949
m_EditorClassIdentifier:
5050
<IsNested>k__BackingField: 0
51+
WasActiveDuringEdit: 1
52+
WasActiveDuringEdit_Set: 1
5153
<ComponentIndex>k__BackingField: 0
5254
<PredictedSpawn>k__BackingField: {fileID: 0}
5355
<PredictedOwner>k__BackingField: {fileID: 0}
@@ -78,7 +80,7 @@ MonoBehaviour:
7880
_spectatorInterpolation: 2
7981
_enableTeleport: 0
8082
_teleportThreshold: 1
81-
<PrefabId>k__BackingField: 17
83+
<PrefabId>k__BackingField: 23
8284
<SpawnableCollectionId>k__BackingField: 0
8385
<AssetPathHash>k__BackingField: 12758516177287752350
8486
<SceneId>k__BackingField: 0
@@ -104,6 +106,7 @@ MonoBehaviour:
104106
_networkObjectCache: {fileID: 4512293259955182956}
105107
_tickCallbacks: 10
106108
_isActive: 1
109+
_is2d: 0
107110
_axes: 3
108111
_chancePerAxes: 0.8
109112
_rotationChance: 0.33

Assets/FishNet/Demos/Benchmarks/NetworkTransform/Prefabs/NetworkTransform Benchmark 3D Rigidbodies.prefab

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,8 @@ MonoBehaviour:
218218
m_Name:
219219
m_EditorClassIdentifier:
220220
<IsNested>k__BackingField: 0
221+
WasActiveDuringEdit: 1
222+
WasActiveDuringEdit_Set: 1
221223
<ComponentIndex>k__BackingField: 0
222224
<PredictedSpawn>k__BackingField: {fileID: 0}
223225
<PredictedOwner>k__BackingField: {fileID: 0}
@@ -248,7 +250,7 @@ MonoBehaviour:
248250
_spectatorInterpolation: 2
249251
_enableTeleport: 0
250252
_teleportThreshold: 1
251-
<PrefabId>k__BackingField: 12
253+
<PrefabId>k__BackingField: 13
252254
<SpawnableCollectionId>k__BackingField: 0
253255
<AssetPathHash>k__BackingField: 6471616483407953140
254256
<SceneId>k__BackingField: 0

Assets/FishNet/Demos/Benchmarks/NetworkTransform/Prefabs/NetworkTransform Benchmark Cubes.prefab

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ MonoBehaviour:
4848
m_Name:
4949
m_EditorClassIdentifier:
5050
<IsNested>k__BackingField: 0
51+
WasActiveDuringEdit: 1
52+
WasActiveDuringEdit_Set: 1
5153
<ComponentIndex>k__BackingField: 0
5254
<PredictedSpawn>k__BackingField: {fileID: 0}
5355
<PredictedOwner>k__BackingField: {fileID: 0}
@@ -64,7 +66,6 @@ MonoBehaviour:
6466
_initializeOrder: 0
6567
_preventDespawnOnDisconnect: 0
6668
_defaultDespawnType: 0
67-
_initializedValusSet: 1
6869
NetworkObserver: {fileID: 0}
6970
_enablePrediction: 0
7071
_predictionType: 0
@@ -79,7 +80,7 @@ MonoBehaviour:
7980
_spectatorInterpolation: 2
8081
_enableTeleport: 0
8182
_teleportThreshold: 1
82-
<PrefabId>k__BackingField: 17
83+
<PrefabId>k__BackingField: 27
8384
<SpawnableCollectionId>k__BackingField: 0
8485
<AssetPathHash>k__BackingField: 15845183709739124870
8586
<SceneId>k__BackingField: 0
@@ -105,7 +106,9 @@ MonoBehaviour:
105106
_networkObjectCache: {fileID: 4512293259955182956}
106107
_tickCallbacks: 10
107108
_isActive: 1
109+
_is2d: 0
108110
_axes: 3
111+
_chancePerAxes: 0.8
109112
_rotationChance: 0.33
110113
_randomMovement: 1
111114
_goalDatas: []

Assets/FishNet/Demos/Benchmarks/NetworkTransform/Prefabs/NetworkTransform Benchmark Rigidbodies.prefab

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ MonoBehaviour:
4949
m_Name:
5050
m_EditorClassIdentifier:
5151
<IsNested>k__BackingField: 0
52+
WasActiveDuringEdit: 1
53+
WasActiveDuringEdit_Set: 1
5254
<ComponentIndex>k__BackingField: 0
5355
<PredictedSpawn>k__BackingField: {fileID: 0}
5456
<PredictedOwner>k__BackingField: {fileID: 0}
@@ -65,7 +67,6 @@ MonoBehaviour:
6567
_initializeOrder: 0
6668
_preventDespawnOnDisconnect: 0
6769
_defaultDespawnType: 0
68-
_initializedValusSet: 1
6970
NetworkObserver: {fileID: 0}
7071
_enablePrediction: 0
7172
_predictionType: 0
@@ -80,7 +81,7 @@ MonoBehaviour:
8081
_spectatorInterpolation: 2
8182
_enableTeleport: 0
8283
_teleportThreshold: 1
83-
<PrefabId>k__BackingField: 41
84+
<PrefabId>k__BackingField: 26
8485
<SpawnableCollectionId>k__BackingField: 0
8586
<AssetPathHash>k__BackingField: 15013615375196309252
8687
<SceneId>k__BackingField: 0

Assets/FishNet/Demos/Benchmarks/NetworkTransform/Scenes/NetworkTransform Benchmark.unity

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ MonoBehaviour:
226226
<PrefabId>k__BackingField: 0
227227
<SpawnableCollectionId>k__BackingField: 0
228228
<AssetPathHash>k__BackingField: 0
229-
<SceneId>k__BackingField: 3684663076
229+
<SceneId>k__BackingField: 3669479334
230230
SerializedTransformProperties:
231231
Position: {x: 0, y: 0, z: 0}
232232
Rotation: {x: 0, y: 0, z: 0, w: 1}
@@ -572,7 +572,7 @@ MonoBehaviour:
572572
<PrefabId>k__BackingField: 65535
573573
<SpawnableCollectionId>k__BackingField: 0
574574
<AssetPathHash>k__BackingField: 0
575-
<SceneId>k__BackingField: 4223025062
575+
<SceneId>k__BackingField: 3674095597
576576
SerializedTransformProperties:
577577
Position: {x: 0, y: 0, z: 0}
578578
Rotation: {x: 0, y: 0, z: 0, w: 0}
@@ -1027,7 +1027,7 @@ MonoBehaviour:
10271027
<PrefabId>k__BackingField: 65535
10281028
<SpawnableCollectionId>k__BackingField: 0
10291029
<AssetPathHash>k__BackingField: 0
1030-
<SceneId>k__BackingField: 3995020728
1030+
<SceneId>k__BackingField: 4292833074
10311031
SerializedTransformProperties:
10321032
Position: {x: 0, y: 0, z: 0}
10331033
Rotation: {x: 0, y: 0, z: 0, w: 0}

0 commit comments

Comments
 (0)