com.unity.netcode.gameobjects@1.0.0
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Additional documentation and release notes are available at [Multiplayer Documentation](https://docs-multiplayer.unity3d.com). ## [1.0.0] - 2022-06-27 ### Changed - Changed version to 1.0.0. (#2046)
This commit is contained in:
@@ -3,6 +3,10 @@ using Unity.Profiling;
|
||||
|
||||
namespace Unity.Netcode
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides discretized time.
|
||||
/// This is useful for games that require ticks happening at regular interval on the server and clients.
|
||||
/// </summary>
|
||||
public class NetworkTickSystem
|
||||
{
|
||||
#if DEVELOPMENT_BUILD || UNITY_EDITOR
|
||||
@@ -69,6 +73,8 @@ namespace Unity.Netcode
|
||||
/// <summary>
|
||||
/// Called after advancing the time system to run ticks based on the difference in time.
|
||||
/// </summary>
|
||||
/// <param name="localTimeSec">The local time in seconds</param>
|
||||
/// <param name="serverTimeSec">The server time in seconds</param>
|
||||
public void UpdateTick(double localTimeSec, double serverTimeSec)
|
||||
{
|
||||
// store old local tick to know how many fixed ticks passed
|
||||
|
||||
@@ -108,6 +108,11 @@ namespace Unity.Netcode
|
||||
return new NetworkTime(m_TickRate, m_CachedTick);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the time a number of ticks in the past.
|
||||
/// </summary>
|
||||
/// <param name="ticks">The number of ticks ago we're querying the time</param>
|
||||
/// <returns></returns>
|
||||
public NetworkTime TimeTicksAgo(int ticks)
|
||||
{
|
||||
return this - new NetworkTime(TickRate, ticks);
|
||||
@@ -132,16 +137,34 @@ namespace Unity.Netcode
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Computes the time difference between two ticks
|
||||
/// </summary>
|
||||
/// <param name="a">End time</param>
|
||||
/// <param name="b">Start time</param>
|
||||
/// <returns>The time difference between start and end</returns>
|
||||
public static NetworkTime operator -(NetworkTime a, NetworkTime b)
|
||||
{
|
||||
return new NetworkTime(a.TickRate, a.Time - b.Time);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Computes the sum of two times
|
||||
/// </summary>
|
||||
/// <param name="a">First time</param>
|
||||
/// <param name="b">Second time</param>
|
||||
/// <returns>The sum of the two times passed in</returns>
|
||||
public static NetworkTime operator +(NetworkTime a, NetworkTime b)
|
||||
{
|
||||
return new NetworkTime(a.TickRate, a.Time + b.Time);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Computes the time a number of seconds later
|
||||
/// </summary>
|
||||
/// <param name="a">The start time</param>
|
||||
/// <param name="b">The number of seconds to add</param>
|
||||
/// <returns>The resulting time</returns>
|
||||
public static NetworkTime operator +(NetworkTime a, double b)
|
||||
{
|
||||
a.m_TimeSec += b;
|
||||
@@ -149,6 +172,12 @@ namespace Unity.Netcode
|
||||
return a;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Computes the time a number of seconds before
|
||||
/// </summary>
|
||||
/// <param name="a">The start time</param>
|
||||
/// <param name="b">The number of seconds to remove</param>
|
||||
/// <returns>The resulting time</returns>
|
||||
public static NetworkTime operator -(NetworkTime a, double b)
|
||||
{
|
||||
return a + -b;
|
||||
|
||||
@@ -36,12 +36,27 @@ namespace Unity.Netcode
|
||||
/// Gets or sets the ratio at which the NetworkTimeSystem speeds up or slows down time.
|
||||
/// </summary>
|
||||
public double AdjustmentRatio { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The current local time with the local time offset applied
|
||||
/// </summary>
|
||||
public double LocalTime => m_TimeSec + m_CurrentLocalTimeOffset;
|
||||
|
||||
/// <summary>
|
||||
/// The current server time with the server time offset applied
|
||||
/// </summary>
|
||||
public double ServerTime => m_TimeSec + m_CurrentServerTimeOffset;
|
||||
|
||||
internal double LastSyncedServerTimeSec { get; private set; }
|
||||
internal double LastSyncedRttSec { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// The constructor class for <see cref="NetworkTickSystem"/>
|
||||
/// </summary>
|
||||
/// <param name="localBufferSec">The amount of time, in seconds, the server should buffer incoming client messages.</param>
|
||||
/// <param name="serverBufferSec">The amount of the time in seconds the client should buffer incoming messages from the server.</param>
|
||||
/// <param name="hardResetThresholdSec">The threshold, in seconds, used to force a hard catchup of network time.</param>
|
||||
/// <param name="adjustmentRatio">The ratio at which the NetworkTimeSystem speeds up or slows down time.</param>
|
||||
public NetworkTimeSystem(double localBufferSec, double serverBufferSec, double hardResetThresholdSec, double adjustmentRatio = 0.01d)
|
||||
{
|
||||
LocalBufferSec = localBufferSec;
|
||||
|
||||
Reference in New Issue
Block a user