Skip to content

Commit f5cdaed

Browse files
committed
Documented NetworkedInstanceId, PrefabHash and PrefabHashGenerator
1 parent d3b3f60 commit f5cdaed

File tree

5 files changed

+24
-6
lines changed

5 files changed

+24
-6
lines changed

MLAPI-Editor/NetworkedObjectEditor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public override void OnInspectorGUI()
4141
{
4242
EditorGUILayout.LabelField("PrefabName: ", networkedObject.PrefabHashGenerator, EditorStyles.label);
4343
EditorGUILayout.LabelField("PrefabHash: ", networkedObject.PrefabHash.ToString(), EditorStyles.label);
44-
EditorGUILayout.LabelField("InstanceId: ", networkedObject.PrefabInstanceId.ToString(), EditorStyles.label);
44+
EditorGUILayout.LabelField("InstanceId: ", networkedObject.NetworkedInstanceId.ToString(), EditorStyles.label);
4545
EditorGUILayout.LabelField("NetworkId: ", networkedObject.NetworkId.ToString(), EditorStyles.label);
4646
EditorGUILayout.LabelField("OwnerId: ", networkedObject.OwnerClientId.ToString(), EditorStyles.label);
4747
EditorGUILayout.LabelField("IsSpawned: ", networkedObject.IsSpawned.ToString(), EditorStyles.label);

MLAPI/MonoBehaviours/Core/NetworkedObject.cs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,26 @@ internal set
5555
}
5656
private uint? _ownerClientId = null;
5757

58-
public ulong PrefabInstanceId;
58+
/// <summary>
59+
/// InstanceId is the id that is unique to the object and scene for a scene object when UsePrefabSync is false.
60+
/// If UsePrefabSync is true or if it's used on non scene objects, this has no effect.
61+
/// Should not be set manually
62+
/// </summary>
63+
[HideInInspector]
64+
[SerializeField]
65+
public ulong NetworkedInstanceId;
66+
/// <summary>
67+
/// The Prefab unique hash. This should not be set my the user but rather changed by editing the PrefabHashGenerator.
68+
/// It has to be the same for all instances of a prefab
69+
/// </summary>
70+
[HideInInspector]
71+
[SerializeField]
5972
public ulong PrefabHash;
73+
/// <summary>
74+
/// The generator used to change the PrefabHash. This should be set the same for all instances of a prefab.
75+
/// It has to be unique in relation to other prefabs
76+
/// </summary>
77+
[SerializeField]
6078
public string PrefabHashGenerator;
6179
[Obsolete("Use IsPlayerObject instead", false)]
6280
public bool isPlayerObject => IsPlayerObject;

MLAPI/MonoBehaviours/Core/NetworkingManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1094,7 +1094,7 @@ internal void HandleApproval(uint clientId, ulong? prefabHash, bool approved, Ve
10941094

10951095
if (_observedObjects[i].IsSceneObject == null || _observedObjects[i].IsSceneObject.Value == true)
10961096
{
1097-
writer.WriteUInt64Packed(_observedObjects[i].PrefabInstanceId);
1097+
writer.WriteUInt64Packed(_observedObjects[i].NetworkedInstanceId);
10981098
}
10991099
else
11001100
{

MLAPI/NetworkingManagerComponents/Core/NetworkSceneManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ private static void OnSceneUnloadServer(AsyncOperation operation, Guid switchSce
232232
writer.WriteUInt64Packed(newSceneObjects[i].NetworkId);
233233
writer.WriteUInt32Packed(newSceneObjects[i].OwnerClientId);
234234

235-
writer.WriteUInt64Packed(newSceneObjects[i].PrefabInstanceId);
235+
writer.WriteUInt64Packed(newSceneObjects[i].NetworkedInstanceId);
236236

237237
newSceneObjects[i].WriteNetworkedVarData(stream, NetworkingManager.Singleton.ConnectedClientsList[j].ClientId);
238238
}

MLAPI/NetworkingManagerComponents/Core/SpawnManager.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ internal static void SendSpawnCallForObject(uint clientId, NetworkedObject netOb
311311

312312
if (netObject.IsSceneObject == null || netObject.IsSceneObject.Value)
313313
{
314-
writer.WriteUInt64Packed(netObject.PrefabInstanceId);
314+
writer.WriteUInt64Packed(netObject.NetworkedInstanceId);
315315
}
316316
else
317317
{
@@ -442,7 +442,7 @@ internal static void ClientCollectSoftSyncSceneObjectSweep(NetworkedObject[] net
442442
{
443443
if (networkedObjects[i].IsSceneObject == null)
444444
{
445-
pendingSoftSyncObjects.Add(networkedObjects[i].PrefabInstanceId, networkedObjects[i]);
445+
pendingSoftSyncObjects.Add(networkedObjects[i].NetworkedInstanceId, networkedObjects[i]);
446446
}
447447
}
448448
}

0 commit comments

Comments
 (0)