Skip to content

Commit 04ab564

Browse files
test
Minor adjustments to the test that caught this issue. Added logs and condensed NetworkUpdate.
1 parent 5d1918c commit 04ab564

File tree

1 file changed

+33
-11
lines changed

1 file changed

+33
-11
lines changed

com.unity.netcode.gameobjects/Tests/Runtime/NetworkVariable/NetworkVariableCollectionsChangingTests.cs

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using System.Collections;
23
using System.Collections.Generic;
34
using System.Linq;
@@ -377,6 +378,7 @@ public override void AddItem()
377378

378379
protected override void OnNetworkPostSpawn()
379380
{
381+
Log($"[Client-{NetworkManager.LocalClientId}] Running post spawn.");
380382
m_DictionaryCollection.OnValueChanged += OnValueChanged;
381383
base.OnNetworkPostSpawn();
382384
}
@@ -488,16 +490,24 @@ public enum HelperStates
488490
}
489491

490492
private HelperStates HelperState { get; set; }
493+
private Dictionary<HelperStates, Action> m_StateToAction = new Dictionary<HelperStates, Action>();
494+
491495

492496
private int m_SendClearForOwnershipOnTick;
493497
private ulong m_NextClient = 0;
494498
private ulong m_ClientToSendClear = 0;
495499

496500
public void SetState(HelperStates helperState)
497501
{
502+
Log($"[StateUpdate] Previous: {HelperState} New: {helperState}");
498503
HelperState = helperState;
499504
}
500505

506+
private void Awake()
507+
{
508+
InitializeStateUpdates();
509+
}
510+
501511
protected virtual bool OnValidateAgainst(BaseCollectionUpdateHelper otherHelper)
502512
{
503513
return true;
@@ -653,24 +663,36 @@ private void OnNetworkTick()
653663
{
654664
return;
655665
}
666+
m_StateToAction[HelperState]?.Invoke();
667+
}
656668

657-
if (HelperState == HelperStates.ChangingOwner)
658-
{
659-
NetworkObject.ChangeOwnership(m_NextClient);
660-
Log($"Local Change ownership to Client-{m_NextClient} complete! New Owner is {NetworkObject.OwnerClientId} | Expected {m_NextClient}");
661-
}
662-
else
663-
{
664-
ChangingOwnershipClearRpc(RpcTarget.Single(m_ClientToSendClear, RpcTargetUse.Temp));
665-
}
666-
HelperState = HelperStates.Stop;
669+
private void InitializeStateUpdates()
670+
{
671+
m_StateToAction.Add(HelperStates.Start, null);
672+
m_StateToAction.Add(HelperStates.Stop, null);
673+
m_StateToAction.Add(HelperStates.Pause, null);
674+
m_StateToAction.Add(HelperStates.ClearToChangeOwner, ClearToChangeOwnerStateUpdate);
675+
m_StateToAction.Add(HelperStates.ChangingOwner, ChangingOwnerStateUpdate);
676+
}
677+
678+
private void ChangingOwnerStateUpdate()
679+
{
680+
NetworkObject.ChangeOwnership(m_NextClient);
681+
Log($"Local Change ownership to Client-{m_NextClient} complete! New Owner is {NetworkObject.OwnerClientId} | Expected {m_NextClient}");
682+
SetState(HelperStates.Stop);
683+
}
684+
685+
private void ClearToChangeOwnerStateUpdate()
686+
{
687+
ChangingOwnershipClearRpc(RpcTarget.Single(m_ClientToSendClear, RpcTargetUse.Temp));
688+
SetState(HelperStates.Stop);
667689
}
668690

669691
protected void Log(string msg)
670692
{
671693
if (VerboseMode)
672694
{
673-
Debug.Log($"[Client-{NetworkManager.LocalClientId}] {msg}");
695+
Debug.Log($"[Frame: {Time.frameCount}][Tick: {((uint)(NetworkManager.LocalTime.TickWithPartial * 1000))*0.001f}][{name}] {msg}");
674696
}
675697
}
676698
}

0 commit comments

Comments
 (0)