Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ public struct TransformState

private bool m_OutstandingAuthorityChange = false;

private NetworkManager m_NetworkManager;

#if UNITY_EDITOR
private void Reset()
{
Expand Down Expand Up @@ -157,7 +159,7 @@ public bool ShouldReanticipate
/// <param name="newPosition">The anticipated position</param>
public void AnticipateMove(Vector3 newPosition)
{
if (NetworkManager.ShutdownInProgress || !NetworkManager.IsListening)
if (m_NetworkManager == null || m_NetworkManager.ShutdownInProgress || !m_NetworkManager.IsListening)
{
return;
}
Expand All @@ -170,7 +172,7 @@ public void AnticipateMove(Vector3 newPosition)

m_PreviousAnticipatedTransform = m_AnticipatedTransform;

m_LastAnticipaionCounter = NetworkManager.AnticipationSystem.AnticipationCounter;
m_LastAnticipaionCounter = m_NetworkManager.AnticipationSystem.AnticipationCounter;

m_SmoothDuration = 0;
m_CurrentSmoothTime = 0;
Expand All @@ -183,7 +185,7 @@ public void AnticipateMove(Vector3 newPosition)
/// <param name="newRotation">The anticipated rotation</param>
public void AnticipateRotate(Quaternion newRotation)
{
if (NetworkManager.ShutdownInProgress || !NetworkManager.IsListening)
if (m_NetworkManager == null || m_NetworkManager.ShutdownInProgress || !m_NetworkManager.IsListening)
{
return;
}
Expand All @@ -196,7 +198,7 @@ public void AnticipateRotate(Quaternion newRotation)

m_PreviousAnticipatedTransform = m_AnticipatedTransform;

m_LastAnticipaionCounter = NetworkManager.AnticipationSystem.AnticipationCounter;
m_LastAnticipaionCounter = m_NetworkManager.AnticipationSystem.AnticipationCounter;

m_SmoothDuration = 0;
m_CurrentSmoothTime = 0;
Expand All @@ -209,7 +211,7 @@ public void AnticipateRotate(Quaternion newRotation)
/// <param name="newScale">The anticipated scale</param>
public void AnticipateScale(Vector3 newScale)
{
if (NetworkManager.ShutdownInProgress || !NetworkManager.IsListening)
if (m_NetworkManager == null || m_NetworkManager.ShutdownInProgress || !m_NetworkManager.IsListening)
{
return;
}
Expand All @@ -222,7 +224,7 @@ public void AnticipateScale(Vector3 newScale)

m_PreviousAnticipatedTransform = m_AnticipatedTransform;

m_LastAnticipaionCounter = NetworkManager.AnticipationSystem.AnticipationCounter;
m_LastAnticipaionCounter = m_NetworkManager.AnticipationSystem.AnticipationCounter;

m_SmoothDuration = 0;
m_CurrentSmoothTime = 0;
Expand All @@ -235,7 +237,7 @@ public void AnticipateScale(Vector3 newScale)
/// <param name="newState">The anticipated transform state</param>
public void AnticipateState(TransformState newState)
{
if (NetworkManager.ShutdownInProgress || !NetworkManager.IsListening)
if (m_NetworkManager == null || m_NetworkManager.ShutdownInProgress || !m_NetworkManager.IsListening)
{
return;
}
Expand Down Expand Up @@ -264,7 +266,7 @@ private void ProcessSmoothing()

if (m_CurrentSmoothTime < m_SmoothDuration)
{
m_CurrentSmoothTime += NetworkManager.RealTimeProvider.DeltaTime;
m_CurrentSmoothTime += m_NetworkManager.RealTimeProvider.DeltaTime;
var transform_ = transform;
var pct = math.min(m_CurrentSmoothTime / m_SmoothDuration, 1f);

Expand Down Expand Up @@ -397,8 +399,8 @@ protected internal override void InternalOnNetworkSessionSynchronized()
ResetAnticipatedState();

m_AnticipatedObject = new AnticipatedObject { Transform = this };
NetworkManager.AnticipationSystem.RegisterForAnticipationEvents(m_AnticipatedObject);
NetworkManager.AnticipationSystem.AllAnticipatedObjects.Add(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.RegisterForAnticipationEvents(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.AllAnticipatedObjects.Add(m_AnticipatedObject);
}
}

Expand All @@ -410,21 +412,23 @@ protected internal override void InternalOnNetworkSessionSynchronized()
protected internal override void InternalOnNetworkPostSpawn()
{
base.InternalOnNetworkPostSpawn();
if (!CanCommitToTransform && NetworkManager.IsConnectedClient && !SynchronizeState.IsSynchronizing)
if (!CanCommitToTransform && m_NetworkManager.IsConnectedClient && !SynchronizeState.IsSynchronizing)
{
m_OutstandingAuthorityChange = true;
ApplyAuthoritativeState();
ResetAnticipatedState();
m_AnticipatedObject = new AnticipatedObject { Transform = this };
NetworkManager.AnticipationSystem.RegisterForAnticipationEvents(m_AnticipatedObject);
NetworkManager.AnticipationSystem.AllAnticipatedObjects.Add(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.RegisterForAnticipationEvents(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.AllAnticipatedObjects.Add(m_AnticipatedObject);
}
}

/// <inheritdoc/>
public override void OnNetworkSpawn()
{
if (NetworkManager.DistributedAuthorityMode)
m_NetworkManager = NetworkManager;

if (m_NetworkManager.DistributedAuthorityMode)
{
Debug.LogWarning($"This component is not currently supported in distributed authority.");
}
Expand All @@ -441,18 +445,18 @@ public override void OnNetworkSpawn()
ResetAnticipatedState();

m_AnticipatedObject = new AnticipatedObject { Transform = this };
NetworkManager.AnticipationSystem.RegisterForAnticipationEvents(m_AnticipatedObject);
NetworkManager.AnticipationSystem.AllAnticipatedObjects.Add(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.RegisterForAnticipationEvents(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.AllAnticipatedObjects.Add(m_AnticipatedObject);
}

/// <inheritdoc/>
public override void OnNetworkDespawn()
{
if (m_AnticipatedObject != null)
{
NetworkManager.AnticipationSystem.DeregisterForAnticipationEvents(m_AnticipatedObject);
NetworkManager.AnticipationSystem.AllAnticipatedObjects.Remove(m_AnticipatedObject);
NetworkManager.AnticipationSystem.ObjectsToReanticipate.Remove(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.DeregisterForAnticipationEvents(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.AllAnticipatedObjects.Remove(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.ObjectsToReanticipate.Remove(m_AnticipatedObject);
m_AnticipatedObject = null;
}
ResetAnticipatedState();
Expand All @@ -465,9 +469,9 @@ public override void OnDestroy()
{
if (m_AnticipatedObject != null)
{
NetworkManager.AnticipationSystem.DeregisterForAnticipationEvents(m_AnticipatedObject);
NetworkManager.AnticipationSystem.AllAnticipatedObjects.Remove(m_AnticipatedObject);
NetworkManager.AnticipationSystem.ObjectsToReanticipate.Remove(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.DeregisterForAnticipationEvents(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.AllAnticipatedObjects.Remove(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.ObjectsToReanticipate.Remove(m_AnticipatedObject);
m_AnticipatedObject = null;
}

Expand Down Expand Up @@ -514,7 +518,7 @@ public void Smooth(TransformState from, TransformState to, float durationSeconds
protected override void OnBeforeUpdateTransformState()
{
// this is called when new data comes from the server
m_LastAuthorityUpdateCounter = NetworkManager.AnticipationSystem.LastAnticipationAck;
m_LastAuthorityUpdateCounter = m_NetworkManager.AnticipationSystem.LastAnticipationAck;
m_OutstandingAuthorityChange = true;
}

Expand Down Expand Up @@ -567,7 +571,7 @@ protected override void OnTransformUpdated()
m_AnticipatedTransform = m_AuthoritativeTransform;

ShouldReanticipate = true;
NetworkManager.AnticipationSystem.ObjectsToReanticipate.Add(m_AnticipatedObject);
m_NetworkManager.AnticipationSystem.ObjectsToReanticipate.Add(m_AnticipatedObject);
}
}
}
Loading
Loading