Skip to content

Commit b8d5d0e

Browse files
test
Tracking down the timing issue with this test.
1 parent c964ea8 commit b8d5d0e

File tree

1 file changed

+45
-24
lines changed

1 file changed

+45
-24
lines changed

com.unity.netcode.gameobjects/Tests/Runtime/NetworkTransform/NetworkTransformOwnershipTests.cs

Lines changed: 45 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ protected override void OnServerAndClientsCreated()
3636
{
3737
VerifyObjectIsSpawnedOnClient.ResetObjectTable();
3838
m_ClientNetworkTransformPrefab = CreateNetworkObjectPrefab("OwnerAuthorityTest");
39-
var clientNetworkTransform = m_ClientNetworkTransformPrefab.AddComponent<NetworkTransform>();
39+
var clientNetworkTransform = m_ClientNetworkTransformPrefab.AddComponent<TestClientNetworkTransform>();
4040
clientNetworkTransform.AuthorityMode = NetworkTransform.AuthorityModes.Owner;
4141
clientNetworkTransform.Interpolate = false;
4242
clientNetworkTransform.UseHalfFloatPrecision = false;
@@ -58,7 +58,7 @@ protected override void OnServerAndClientsCreated()
5858
m_ClientNetworkTransformPrefab.AddComponent<VerifyObjectIsSpawnedOnClient>();
5959

6060
m_NetworkTransformPrefab = CreateNetworkObjectPrefab("ServerAuthorityTest");
61-
var networkTransform = m_NetworkTransformPrefab.AddComponent<NetworkTransform>();
61+
var networkTransform = m_NetworkTransformPrefab.AddComponent<TestClientNetworkTransform>();
6262
rigidBody = m_NetworkTransformPrefab.AddComponent<Rigidbody>();
6363
rigidBody.useGravity = false;
6464
rigidBody.interpolation = RigidbodyInterpolation.None;
@@ -367,6 +367,7 @@ void LogOwnerRigidBody(int stage)
367367
LogOwnerRigidBody(1);
368368
if (m_MotionModel == MotionModels.UseRigidbody)
369369
{
370+
TestClientNetworkTransform.EnableLogState(true);
370371
m_UseAdjustedVariance = true;
371372
var ownerRigidbody = ownerInstance.GetComponent<Rigidbody>();
372373
ownerRigidbody.Move(valueSetByOwner, rotation);
@@ -390,10 +391,11 @@ void LogOwnerRigidBody(int stage)
390391
LogOwnerRigidBody(4);
391392
LogNonOwnerRigidBody(7);
392393
}
394+
393395
Assert.False(s_GlobalTimeoutHelper.TimedOut, $"Timed out waiting for {networkManagerNonOwner.name}'s object instance {nonOwnerInstance.name} to change its transform!\n" +
394396
$"Expected Position: {valueSetByOwner} | Current Position: {transformToTest.position}\n" +
395397
$"Expected Rotation: {valueSetByOwner} | Current Rotation: {transformToTest.rotation.eulerAngles}\n" +
396-
$"Expected Scale: {valueSetByOwner} | Current Scale: {transformToTest.localScale}");
398+
$"Expected Scale: {valueSetByOwner} | Current Scale: {transformToTest.localScale}\n {ownerInstance.GetComponent<TestClientNetworkTransform>().LogInfoBuilder}");
397399

398400
// The last check is to verify non-owners cannot change transform values after ownership has changed
399401
nonOwnerInstance.transform.position = Vector3.zero;
@@ -458,6 +460,12 @@ public IEnumerator ServerAuthoritativeTest()
458460
Assert.True(nonOwnerInstance.transform.position == valueSetByOwner, $"{m_ClientNetworkManagers[0].name}'s object instance {nonOwnerInstance.name} was allowed to change its position! Expected: {Vector3.one} Is Currently:{nonOwnerInstance.transform.position}");
459461
}
460462

463+
protected override IEnumerator OnTearDown()
464+
{
465+
TestClientNetworkTransform.EnableLogState(false);
466+
return base.OnTearDown();
467+
}
468+
461469
/// <summary>
462470
/// NetworkTransformOwnershipTests helper behaviour
463471
/// </summary>
@@ -528,28 +536,41 @@ public override void OnNetworkDespawn()
528536
[DisallowMultipleComponent]
529537
internal class TestClientNetworkTransform : NetworkTransform
530538
{
531-
//public override void OnNetworkSpawn()
532-
//{
533-
// base.OnNetworkSpawn();
534-
// CanCommitToTransform = IsOwner;
535-
//}
536-
537-
//protected override void Update()
538-
//{
539-
// CanCommitToTransform = IsOwner;
540-
// base.Update();
541-
// if (NetworkManager.Singleton != null && (NetworkManager.Singleton.IsConnectedClient || NetworkManager.Singleton.IsListening))
542-
// {
543-
// if (CanCommitToTransform)
544-
// {
545-
// TryCommitTransformToServer(transform, NetworkManager.LocalTime.Time);
546-
// }
547-
// }
548-
//}
549-
550-
protected override bool OnIsServerAuthoritative()
539+
public static void EnableLogState(bool enable)
551540
{
552-
return false;
541+
s_LogStateEnabled = enable;
542+
TrackByStateId = enable;
543+
}
544+
545+
private static bool s_LogStateEnabled;
546+
547+
internal StringBuilder LogInfoBuilder = new StringBuilder();
548+
549+
private void LogInfo(NetworkTransformState state)
550+
{
551+
if (s_LogStateEnabled)
552+
{
553+
LogInfoBuilder.AppendLine($"N:{name} | CID:{NetworkManager.LocalClientId} | SID: {state.StateId} | NT:{NetworkManager.ServerTime.Tick} | Pos: {transform.position} | Sc: {transform.localScale}");
554+
}
555+
}
556+
557+
558+
559+
protected override void OnAuthorityPushTransformState(ref NetworkTransformState networkTransformState)
560+
{
561+
base.OnAuthorityPushTransformState(ref networkTransformState);
562+
}
563+
564+
protected override void OnBeforeUpdateTransformState()
565+
{
566+
LogInfo(LocalAuthoritativeNetworkState);
567+
base.OnBeforeUpdateTransformState();
568+
}
569+
570+
protected override void OnNetworkTransformStateUpdated(ref NetworkTransformState oldState, ref NetworkTransformState newState)
571+
{
572+
LogInfo(newState);
573+
base.OnNetworkTransformStateUpdated(ref oldState, ref newState);
553574
}
554575
}
555576
}

0 commit comments

Comments
 (0)