From 4648565214cf47ea46fce03e6d9bd2c5a2abe1db Mon Sep 17 00:00:00 2001 From: Pascal Serrarens Date: Fri, 25 Feb 2022 15:32:28 +0100 Subject: [PATCH] Optional predefined viewId for NetworkObjects --- .../Tools/Networking/NetworkObject_Editor.cs | 9 +++++-- Runtime/Tools/Networking/NetworkObject.cs | 2 ++ .../VisitorsAndSites/Sites/SocialSpace.unity | 25 +++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/Editor/Tools/Networking/NetworkObject_Editor.cs b/Editor/Tools/Networking/NetworkObject_Editor.cs index ab3b2c2..8aebbc5 100644 --- a/Editor/Tools/Networking/NetworkObject_Editor.cs +++ b/Editor/Tools/Networking/NetworkObject_Editor.cs @@ -111,8 +111,13 @@ namespace Passer { Photon.Pun.PhotonView photonView = gameObject.GetComponent(); if (photonView == null) photonView = gameObject.AddComponent(); - if (photonView.ViewID == 0) - Photon.Pun.PhotonNetwork.AllocateViewID(photonView); + if (photonView.ViewID == 0) { + NetworkObject networkObject = gameObject.GetComponent(); + if (networkObject != null && networkObject.objectIdentity != 0) + photonView.ViewID = (int)networkObject.objectIdentity; + else + Photon.Pun.PhotonNetwork.AllocateViewID(photonView); + } Photon.Pun.PhotonTransformView transformView = gameObject.GetComponent(); if (transformView == null) { diff --git a/Runtime/Tools/Networking/NetworkObject.cs b/Runtime/Tools/Networking/NetworkObject.cs index 052f5db..bab7dfd 100644 --- a/Runtime/Tools/Networking/NetworkObject.cs +++ b/Runtime/Tools/Networking/NetworkObject.cs @@ -9,6 +9,8 @@ namespace Passer { #endif public static bool connected = true; + public ulong objectIdentity = 0; + private void Awake() { connected = true; } diff --git a/Samples~/VisitorsAndSites/Sites/SocialSpace.unity b/Samples~/VisitorsAndSites/Sites/SocialSpace.unity index b2e18cd..eb227b8 100644 --- a/Samples~/VisitorsAndSites/Sites/SocialSpace.unity +++ b/Samples~/VisitorsAndSites/Sites/SocialSpace.unity @@ -286,6 +286,11 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 114210291444410636, guid: 521454b5ceb9644458f59eea86f90eb7, + type: 3} + propertyPath: objectIdentity + value: 1501 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 521454b5ceb9644458f59eea86f90eb7, type: 3} --- !u!1 &752738249 @@ -437,6 +442,11 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 114210291444410636, guid: 521454b5ceb9644458f59eea86f90eb7, + type: 3} + propertyPath: objectIdentity + value: 1500 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 521454b5ceb9644458f59eea86f90eb7, type: 3} --- !u!1001 &1416409166 @@ -494,6 +504,11 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 114210291444410636, guid: 521454b5ceb9644458f59eea86f90eb7, + type: 3} + propertyPath: objectIdentity + value: 1502 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 521454b5ceb9644458f59eea86f90eb7, type: 3} --- !u!1 &1438776013 @@ -700,6 +715,11 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 114210291444410636, guid: 521454b5ceb9644458f59eea86f90eb7, + type: 3} + propertyPath: objectIdentity + value: 1503 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 521454b5ceb9644458f59eea86f90eb7, type: 3} --- !u!1001 &1542308458 @@ -757,6 +777,11 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 114210291444410636, guid: 521454b5ceb9644458f59eea86f90eb7, + type: 3} + propertyPath: objectIdentity + value: 1504 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 521454b5ceb9644458f59eea86f90eb7, type: 3} --- !u!1 &2030871860