@@ -113,9 +113,27 @@ public void SomeRandomClientRPC()
113
113
ClientIdsRpcCalledOn ? . Add ( NetworkManager . LocalClientId ) ;
114
114
}
115
115
116
+ [ Rpc ( SendTo . Everyone ) ]
117
+ public void DistributedAuthorityRPC ( )
118
+ {
119
+ if ( ! Silent )
120
+ {
121
+ Debug . Log ( $ "RPC called { NetworkManager . LocalClientId } ") ;
122
+ }
123
+ ClientIdsRpcCalledOn ? . Add ( NetworkManager . LocalClientId ) ;
124
+ }
125
+
116
126
public void TriggerRpc ( )
117
127
{
118
- SomeRandomClientRPC ( ) ;
128
+ Debug . Log ( "triggering RPC" ) ;
129
+ if ( NetworkManager . CMBServiceConnection )
130
+ {
131
+ DistributedAuthorityRPC ( ) ;
132
+ }
133
+ else
134
+ {
135
+ SomeRandomClientRPC ( ) ;
136
+ }
119
137
}
120
138
}
121
139
@@ -125,12 +143,6 @@ internal class NetworkShowHideTests : NetcodeIntegrationTest
125
143
{
126
144
protected override int NumberOfClients => 4 ;
127
145
128
- // TODO: [CmbServiceTests] https://jira.unity3d.com/browse/MTTB-1392
129
- protected override bool UseCMBService ( )
130
- {
131
- return false ;
132
- }
133
-
134
146
private ulong m_ClientId0 ;
135
147
private GameObject m_PrefabToSpawn ;
136
148
private GameObject m_PrefabSpawnWithoutObservers ;
@@ -580,11 +592,15 @@ public IEnumerator NetworkHideChangeOwnershipNotHidden()
580
592
var firstClient = GetNonAuthorityNetworkManager ( 0 ) ;
581
593
var secondClient = GetNonAuthorityNetworkManager ( 1 ) ;
582
594
595
+ ShowHideObject . ValueAfterOwnershipChange = - 1 ;
583
596
ShowHideObject . ClientTargetedNetworkObjects . Clear ( ) ;
584
597
ShowHideObject . ObjectsPerClientId . Clear ( ) ;
585
598
ShowHideObject . ClientIdToTarget = secondClient . LocalClientId ;
586
599
ShowHideObject . Silent = true ;
587
600
601
+ // only check for value change on one specific client
602
+ ShowHideObject . NetworkManagerOfInterest = firstClient ;
603
+
588
604
var spawnedObject1 = SpawnObject ( m_PrefabToSpawn , authority ) ;
589
605
m_NetSpawnedObject1 = spawnedObject1 . GetComponent < NetworkObject > ( ) ;
590
606
@@ -597,11 +613,20 @@ public IEnumerator NetworkHideChangeOwnershipNotHidden()
597
613
// wait for three ticks
598
614
yield return WaitForTicks ( authority , 3 ) ;
599
615
616
+ if ( ! m_DistributedAuthority )
617
+ {
618
+ // Client/Server ClientIdToTarget should not see any value change
619
+ Assert . That ( ShowHideObject . ValueAfterOwnershipChange , Is . EqualTo ( - 1 ) ) ;
620
+ }
621
+ else
622
+ {
623
+ // Distributed Authority mode everyone can always read so the value change should already have happened
624
+ Assert . That ( ShowHideObject . ValueAfterOwnershipChange , Is . EqualTo ( 1 ) ) ;
625
+ }
626
+
600
627
// check we'll actually be changing owners
601
628
Assert . False ( ShowHideObject . ClientTargetedNetworkObjects [ 0 ] . OwnerClientId == firstClient . LocalClientId ) ;
602
629
603
- // only check for value change on one specific client
604
- ShowHideObject . NetworkManagerOfInterest = firstClient ;
605
630
606
631
// change ownership
607
632
m_NetSpawnedObject1 . ChangeOwnership ( firstClient . LocalClientId ) ;
@@ -731,10 +756,8 @@ public IEnumerator NetworkShowHideAroundListModify()
731
756
m_NetSpawnedObject1 = spawnedObject1 . GetComponent < NetworkObject > ( ) ;
732
757
733
758
// wait for host to have spawned and gained ownership
734
- while ( ShowHideObject . GainOwnershipCount == 0 )
735
- {
736
- yield return new WaitForSeconds ( 0.0f ) ;
737
- }
759
+ yield return WaitForConditionOrTimeOut ( ( ) => m_NetSpawnedObject1 . IsSpawned && m_NetSpawnedObject1 . OwnerClientId == authority . LocalClientId ) ;
760
+ AssertOnTimeout ( $ "Timed out waiting for { m_NetSpawnedObject1 . name } to spawn") ;
738
761
739
762
for ( int i = 0 ; i < 4 ; i ++ )
740
763
{
@@ -767,8 +790,8 @@ public IEnumerator NetworkShowHideAroundListModify()
767
790
768
791
}
769
792
770
- Compare ( ShowHideObject . ObjectsPerClientId [ 0 ] . MyList , ShowHideObject . ObjectsPerClientId [ 1 ] . MyList ) ;
771
- Compare ( ShowHideObject . ObjectsPerClientId [ 0 ] . MyList , ShowHideObject . ObjectsPerClientId [ 2 ] . MyList ) ;
793
+ Compare ( ShowHideObject . ObjectsPerClientId [ authority . LocalClientId ] . MyList , ShowHideObject . ObjectsPerClientId [ firstClient . LocalClientId ] . MyList ) ;
794
+ Compare ( ShowHideObject . ObjectsPerClientId [ authority . LocalClientId ] . MyList , ShowHideObject . ObjectsPerClientId [ secondClient . LocalClientId ] . MyList ) ;
772
795
}
773
796
}
774
797
0 commit comments