@@ -33,6 +33,7 @@ private static NetworkingManager netManager
33
33
internal static void RemoveOwnership ( uint netId )
34
34
{
35
35
NetworkedObject netObject = SpawnManager . spawnedObjects [ netId ] ;
36
+ NetworkingManager . singleton . connectedClients [ netObject . OwnerClientId ] . OwnedObjects . RemoveAll ( x => x . NetworkId == netId ) ;
36
37
netObject . OwnerClientId = - 2 ;
37
38
using ( MemoryStream stream = new MemoryStream ( 8 ) )
38
39
{
@@ -48,6 +49,8 @@ internal static void RemoveOwnership(uint netId)
48
49
internal static void ChangeOwnership ( uint netId , int clientId )
49
50
{
50
51
NetworkedObject netObject = SpawnManager . spawnedObjects [ netId ] ;
52
+ NetworkingManager . singleton . connectedClients [ netObject . OwnerClientId ] . OwnedObjects . RemoveAll ( x => x . NetworkId == netId ) ;
53
+ NetworkingManager . singleton . connectedClients [ clientId ] . OwnedObjects . Add ( netObject ) ;
51
54
netObject . OwnerClientId = clientId ;
52
55
using ( MemoryStream stream = new MemoryStream ( 8 ) )
53
56
{
@@ -114,6 +117,11 @@ internal static void OnDestroyObject(uint networkId, bool destroyGameObject)
114
117
{
115
118
if ( ! spawnedObjects . ContainsKey ( networkId ) || ( netManager != null && ! netManager . NetworkConfig . HandleObjectSpawning ) )
116
119
return ;
120
+ if ( spawnedObjects [ networkId ] . OwnerClientId > - 2 && ! spawnedObjects [ networkId ] . isPlayerObject )
121
+ {
122
+ //Someone owns it.
123
+ NetworkingManager . singleton . connectedClients [ spawnedObjects [ networkId ] . OwnerClientId ] . OwnedObjects . RemoveAll ( x => x . NetworkId == networkId ) ;
124
+ }
117
125
GameObject go = spawnedObjects [ networkId ] . gameObject ;
118
126
if ( netManager != null && netManager . isServer )
119
127
{
@@ -170,7 +178,10 @@ internal static void OnSpawnObject(NetworkedObject netObject, int? clientOwnerId
170
178
spawnedObjects . Add ( netId , netObject ) ;
171
179
netObject . isSpawned = true ;
172
180
if ( clientOwnerId != null )
181
+ {
173
182
netObject . OwnerClientId = clientOwnerId . Value ;
183
+ NetworkingManager . singleton . connectedClients [ clientOwnerId . Value ] . OwnedObjects . Add ( netObject ) ;
184
+ }
174
185
using ( MemoryStream stream = new MemoryStream ( 13 ) )
175
186
{
176
187
using ( BinaryWriter writer = new BinaryWriter ( stream ) )
0 commit comments