Update FishNet
This commit is contained in:
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/ChangedTransformProperties.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -15,11 +15,13 @@ namespace FishNet.Object.Editing
|
||||
private SerializedProperty _initializeOrder;
|
||||
private SerializedProperty _preventDespawnOnDisconnect;
|
||||
private SerializedProperty _defaultDespawnType;
|
||||
private SerializedProperty _useLevelOfDetail;
|
||||
private SerializedProperty _enablePrediction;
|
||||
private SerializedProperty _enableStateForwarding;
|
||||
private SerializedProperty _networkTransform;
|
||||
private SerializedProperty _predictionType;
|
||||
private SerializedProperty _localReconcileCorrectionType;
|
||||
private SerializedProperty _localLevelOfDetailCalculationType;
|
||||
private SerializedProperty _graphicalObject;
|
||||
private SerializedProperty _detachGraphicalObject;
|
||||
private SerializedProperty _ownerSmoothedProperties;
|
||||
@@ -44,12 +46,14 @@ namespace FishNet.Object.Editing
|
||||
_initializeOrder = serializedObject.FindProperty(nameof(_initializeOrder));
|
||||
_preventDespawnOnDisconnect = serializedObject.FindProperty(nameof(_preventDespawnOnDisconnect));
|
||||
_defaultDespawnType = serializedObject.FindProperty(nameof(_defaultDespawnType));
|
||||
|
||||
_useLevelOfDetail = serializedObject.FindProperty(nameof(_useLevelOfDetail));
|
||||
|
||||
_enablePrediction = serializedObject.FindProperty(nameof(_enablePrediction));
|
||||
_enableStateForwarding = serializedObject.FindProperty(nameof(_enableStateForwarding));
|
||||
_networkTransform = serializedObject.FindProperty(nameof(_networkTransform));
|
||||
_predictionType = serializedObject.FindProperty(nameof(_predictionType));
|
||||
_localReconcileCorrectionType = serializedObject.FindProperty(nameof(_localReconcileCorrectionType));
|
||||
_localLevelOfDetailCalculationType = serializedObject.FindProperty(nameof(_localLevelOfDetailCalculationType));
|
||||
_graphicalObject = serializedObject.FindProperty(nameof(_graphicalObject));
|
||||
_detachGraphicalObject = serializedObject.FindProperty(nameof(_detachGraphicalObject));
|
||||
|
||||
@@ -97,8 +101,16 @@ namespace FishNet.Object.Editing
|
||||
EditorGUILayout.PropertyField(_initializeOrder);
|
||||
EditorGUILayout.PropertyField(_preventDespawnOnDisconnect);
|
||||
EditorGUILayout.PropertyField(_defaultDespawnType);
|
||||
}
|
||||
|
||||
bool isPlaying = Application.isPlaying;
|
||||
if (isPlaying)
|
||||
GUI.enabled = false;
|
||||
|
||||
EditorGUILayout.PropertyField(_useLevelOfDetail, new GUIContent("* Use Level of Detail"));
|
||||
|
||||
GUI.enabled = true;
|
||||
}
|
||||
|
||||
void ShowPredictionTab()
|
||||
{
|
||||
SaveTabIndex();
|
||||
@@ -106,8 +118,9 @@ namespace FishNet.Object.Editing
|
||||
if (_enablePrediction.boolValue == true)
|
||||
{
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUILayout.PropertyField(_localLevelOfDetailCalculationType);
|
||||
EditorGUILayout.PropertyField(_predictionType);
|
||||
|
||||
|
||||
bool isRigidbodyPredictionType = _predictionType.intValue == (int)NetworkObject.PredictionType.Rigidbody2D || _predictionType.intValue == (int)NetworkObject.PredictionType.Rigidbody;
|
||||
if (isRigidbodyPredictionType)
|
||||
{
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Editor/NetworkObjectEditor.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Helping/RpcLink.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Helping/RpcType.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Helping/StaticShortcuts.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/Attributes.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/Delegates.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/EmptyNetworkBehaviour.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/NetworkBehaviour.Callbacks.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/NetworkBehaviour.Logging.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -19,6 +19,7 @@ using GameKit.Dependencies.Utilities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using FishNet.Managing.Observing;
|
||||
using GameKit.Dependencies.Utilities.Types;
|
||||
using Unity.Profiling;
|
||||
using UnityEngine;
|
||||
@@ -139,7 +140,7 @@ namespace FishNet.Object
|
||||
/* The checked data is greater than
|
||||
* what was being searched. This means
|
||||
* to insert right before it. */
|
||||
|
||||
|
||||
if (lTick > tick)
|
||||
{
|
||||
result = DataPlacementResult.InsertMiddle;
|
||||
@@ -226,7 +227,7 @@ namespace FishNet.Object
|
||||
/// <remarks>This is only used by prediction.</remarks>
|
||||
private TransformProperties _lastCheckedTransformProperties;
|
||||
#endregion
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Called when the object is destroyed.
|
||||
/// </summary>
|
||||
@@ -422,6 +423,10 @@ namespace FishNet.Object
|
||||
else
|
||||
writer = CreateRpc(hash, methodWriter, PacketId.Reconcile, rpcChannel);
|
||||
|
||||
#if !UNITY_SERVER
|
||||
int observersWrittenTo = 0;
|
||||
#endif
|
||||
|
||||
// If state forwarding is not enabled then only send to owner.
|
||||
if (!stateForwarding)
|
||||
{
|
||||
@@ -430,15 +435,22 @@ namespace FishNet.Object
|
||||
// State forwarding, send to all.
|
||||
else
|
||||
{
|
||||
foreach (NetworkConnection nc in Observers)
|
||||
nc.WriteState(writer);
|
||||
{
|
||||
#if !UNITY_SERVER
|
||||
observersWrittenTo = Observers.Count;
|
||||
#endif
|
||||
|
||||
//Send to everyone unconditionally when not using LOD.
|
||||
foreach (NetworkConnection nc in Observers)
|
||||
nc.WriteState(writer);
|
||||
}
|
||||
}
|
||||
|
||||
#if !UNITY_SERVER
|
||||
if (_networkTrafficStatistics != null)
|
||||
{
|
||||
int written = stateForwarding ? writer.Length * Observers.Count : writer.Length;
|
||||
_networkTrafficStatistics.AddInboundPacketIdData(PacketId.Reconcile, GetRpcName(PacketId.Reconcile, hash), written + Managing.Transporting.TransportManager.PACKETID_LENGTH, gameObject, asServer: true);
|
||||
int writtenBytes = stateForwarding ? writer.Length * observersWrittenTo : writer.Length;
|
||||
_networkTrafficStatistics.AddOutboundPacketIdData(PacketId.Reconcile, GetRpcName(PacketId.Reconcile, hash), writtenBytes + Managing.Transporting.TransportManager.PACKETID_LENGTH, gameObject, asServer: true);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -897,7 +909,9 @@ namespace FishNet.Object
|
||||
#else
|
||||
methodWriter.WriteReplicate<T>(replicatesHistory, offset);
|
||||
#endif
|
||||
_transportManagerCache.CheckSetReliableChannel(methodWriter.Length + MAXIMUM_RPC_HEADER_SIZE, ref channel);
|
||||
|
||||
channel = _transportManagerCache.GetReliableChannelIfOverMTU(methodWriter.Length + MAXIMUM_RPC_HEADER_SIZE, channel);
|
||||
|
||||
PooledWriter writer = CreateRpc(hash, methodWriter, PacketId.Replicate, channel);
|
||||
|
||||
#if !UNITY_SERVER
|
||||
@@ -912,7 +926,7 @@ namespace FishNet.Object
|
||||
#if !UNITY_SERVER
|
||||
written = writer.Length;
|
||||
#endif
|
||||
NetworkManager.TransportManager.SendToServer((byte)channel, writer.GetArraySegment(), splitLargeMessages: true);
|
||||
NetworkManager.TransportManager.SendToServer((byte)channel, writer.GetArraySegment());
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -929,7 +943,7 @@ namespace FishNet.Object
|
||||
#if !UNITY_SERVER
|
||||
written = writer.Length * (Observers.Count - _networkConnectionCache.Count);
|
||||
#endif
|
||||
NetworkManager.TransportManager.SendToClients((byte)channel, writer.GetArraySegment(), Observers, _networkConnectionCache, splitLargeMessages: true);
|
||||
NetworkManager.TransportManager.SendToClients((byte)channel, writer.GetArraySegment(), Observers, _networkConnectionCache);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1085,7 +1099,7 @@ namespace FishNet.Object
|
||||
}
|
||||
#endif
|
||||
|
||||
NetworkManager.TransportManager.SendToClients((byte)channel, writer.GetArraySegment(), Observers, _networkConnectionCache, false);
|
||||
NetworkManager.TransportManager.SendToClients((byte)channel, writer.GetArraySegment(), Observers, _networkConnectionCache);
|
||||
|
||||
methodWriter.StoreLength();
|
||||
writer.StoreLength();
|
||||
@@ -1304,10 +1318,6 @@ namespace FishNet.Object
|
||||
[MakePublic]
|
||||
internal void Reconcile_Client<T, T2>(ReconcileUserLogicDelegate<T> reconcileDel, RingBuffer<ReplicateDataContainer<T2>> replicatesHistory, RingBuffer<LocalReconcile<T>> reconcilesHistory, T data) where T : IReconcileData where T2 : IReplicateData, new()
|
||||
{
|
||||
bool isBehaviourReconciling = IsBehaviourReconciling;
|
||||
if (!isBehaviourReconciling)
|
||||
return;
|
||||
|
||||
const long unsetHistoryIndex = -1;
|
||||
long historyIndex = unsetHistoryIndex;
|
||||
|
||||
@@ -1341,6 +1351,19 @@ namespace FishNet.Object
|
||||
uint lrTick = reconcilesHistory[(int)historyIndex].Tick;
|
||||
if (lrTick != reconcileTick)
|
||||
historyIndex = unsetHistoryIndex;
|
||||
|
||||
//If index is set and behaviour is not reconciling then apply data.
|
||||
if (!IsBehaviourReconciling && historyIndex != unsetHistoryIndex)
|
||||
{
|
||||
LocalReconcile<T> localReconcile = reconcilesHistory[(int)historyIndex];
|
||||
//Before disposing get the writer and call reconcile reader so it's parsed.
|
||||
PooledWriter reconcileWritten = localReconcile.Writer;
|
||||
/* Although this is actually from the local client the datasource is being set to server since server
|
||||
* is what typically sends reconciles. */
|
||||
PooledReader reader = ReaderPool.Retrieve(reconcileWritten.GetArraySegment(), _networkObjectCache.NetworkManager, Reader.DataSource.Server);
|
||||
data = Reconcile_Reader_Local<T>(localReconcile.Tick, reader);
|
||||
ReaderPool.Store(reader);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1358,13 +1381,10 @@ namespace FishNet.Object
|
||||
reconcilesHistory.RemoveRange(true, (int)historyIndex);
|
||||
}
|
||||
|
||||
//If does not have data still then exit method.
|
||||
//If this behaviour does not have data still then exit method.
|
||||
if (!IsBehaviourReconciling)
|
||||
return;
|
||||
|
||||
//Set on the networkObject that a reconcile can now occur.
|
||||
_networkObjectCache.IsObjectReconciling = true;
|
||||
|
||||
uint dataTick = data.GetTick();
|
||||
_lastReconcileTick = dataTick;
|
||||
|
||||
@@ -1407,6 +1427,9 @@ namespace FishNet.Object
|
||||
replicatesHistory.RemoveRange(true, removeCount);
|
||||
}
|
||||
|
||||
//Set on the networkObject that a reconcile can now occur.
|
||||
_networkObjectCache.IsObjectReconciling = true;
|
||||
|
||||
//Call reconcile user logic.
|
||||
reconcileDel?.Invoke(data, Channel.Reliable);
|
||||
}
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/NetworkBehaviour.Prediction.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/NetworkBehaviour.QOL.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/NetworkBehaviour.RPCLinks.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -113,7 +113,7 @@ namespace FishNet.Object
|
||||
continue;
|
||||
|
||||
|
||||
tm.SendToClient((byte)Channel.Reliable, bRpc.Writer.GetArraySegment(), conn, true, bRpc.OrderType);
|
||||
tm.SendToClient((byte)Channel.Reliable, bRpc.Writer.GetArraySegment(), conn, bRpc.OrderType);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -338,7 +338,7 @@ namespace FishNet.Object
|
||||
if (!IsSpawnedWithWarning())
|
||||
return;
|
||||
|
||||
_transportManagerCache.CheckSetReliableChannel(methodWriter.Length + MAXIMUM_RPC_HEADER_SIZE, ref channel);
|
||||
channel = _transportManagerCache.GetReliableChannelIfOverMTU(methodWriter.Length + MAXIMUM_RPC_HEADER_SIZE, channel);
|
||||
|
||||
PooledWriter writer = CreateRpc(hash, methodWriter, PacketId.ServerRpc, channel);
|
||||
|
||||
@@ -347,7 +347,7 @@ namespace FishNet.Object
|
||||
_networkTrafficStatistics.AddOutboundPacketIdData(PacketId.ServerRpc, GetRpcName(PacketId.ServerRpc, hash), writer.Length, gameObject, asServer: false);
|
||||
#endif
|
||||
|
||||
_networkObjectCache.NetworkManager.TransportManager.SendToServer((byte)channel, writer.GetArraySegment(), true, orderType);
|
||||
_networkObjectCache.NetworkManager.TransportManager.SendToServer((byte)channel, writer.GetArraySegment(), orderType);
|
||||
writer.StoreLength();
|
||||
}
|
||||
|
||||
@@ -364,12 +364,12 @@ namespace FishNet.Object
|
||||
if (!IsSpawnedWithWarning())
|
||||
return;
|
||||
|
||||
_transportManagerCache.CheckSetReliableChannel(methodWriter.Length + MAXIMUM_RPC_HEADER_SIZE, ref channel);
|
||||
channel = _transportManagerCache.GetReliableChannelIfOverMTU(methodWriter.Length + MAXIMUM_RPC_HEADER_SIZE, channel);
|
||||
|
||||
PooledWriter writer = lCreateRpc(channel);
|
||||
SetNetworkConnectionCache(excludeServer, excludeOwner);
|
||||
|
||||
_networkObjectCache.NetworkManager.TransportManager.SendToClients((byte)channel, writer.GetArraySegment(), _networkObjectCache.Observers, _networkConnectionCache, true, orderType);
|
||||
_networkObjectCache.NetworkManager.TransportManager.SendToClients((byte)channel, writer.GetArraySegment(), _networkObjectCache.Observers, _networkConnectionCache, orderType);
|
||||
|
||||
/* If buffered then dispose of any already buffered
|
||||
* writers and replace with new one. Writers should
|
||||
@@ -428,7 +428,7 @@ namespace FishNet.Object
|
||||
if (!IsSpawnedWithWarning())
|
||||
return;
|
||||
|
||||
_transportManagerCache.CheckSetReliableChannel(methodWriter.Length + MAXIMUM_RPC_HEADER_SIZE, ref channel);
|
||||
channel = _transportManagerCache.GetReliableChannelIfOverMTU(methodWriter.Length + MAXIMUM_RPC_HEADER_SIZE, channel);
|
||||
|
||||
if (validateTarget)
|
||||
{
|
||||
@@ -468,7 +468,8 @@ namespace FishNet.Object
|
||||
_networkTrafficStatistics.AddOutboundPacketIdData(PacketId.TargetRpc, GetRpcName(PacketId.TargetRpc, hash), writer.Length, gameObject, asServer: true);
|
||||
#endif
|
||||
|
||||
_networkObjectCache.NetworkManager.TransportManager.SendToClient((byte)channel, writer.GetArraySegment(), target, true, orderType);
|
||||
_networkObjectCache.NetworkManager.TransportManager.SendToClient((byte)channel, writer.GetArraySegment(), target, orderType);
|
||||
|
||||
writer.Store();
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/NetworkBehaviour.RPCs.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/NetworkBehaviour.SyncTypes.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/NetworkBehaviour.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/RpcLinkType.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkBehaviour/SyncTypeWriteType.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkObject/NetworkObject.Broadcast.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkObject/NetworkObject.Callbacks.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using FishNet.Connection;
|
||||
using GameKit.Dependencies.Utilities;
|
||||
using UnityEngine;
|
||||
|
||||
namespace FishNet.Object
|
||||
{
|
||||
public partial class NetworkObject : MonoBehaviour
|
||||
{
|
||||
/// <summary>
|
||||
/// Level of detail levels for observers.
|
||||
/// </summary>
|
||||
/// <remarks>This collection will be empty of this NetworkObject does not utilize level of detail.</remarks>
|
||||
internal Dictionary<NetworkConnection, uint> ObserverLevelOfDetailDivisors;
|
||||
/// <summary>
|
||||
/// True if level of detail has been initialized, indicating it can be used.
|
||||
/// </summary>
|
||||
internal bool ServerIsLevelOfDetailInitialized { get; private set; }
|
||||
/// <summary>
|
||||
/// True if LocalLevelOfDetailCalculationType is set to close only.
|
||||
/// </summary>
|
||||
internal bool IsLocalReconcileLODCloseObjectsOnly => _localLevelOfDetailCalculationType == LocalReconcileLODCalculationType.CloseObjectsOnly;
|
||||
/// <summary>
|
||||
/// How local reconciles are applied when using level of detail, specifically when the server had not sent a reconcile.
|
||||
/// </summary>
|
||||
[Tooltip("How local reconciles are applied when using level of detail calculations, specifically when the server had not sent a reconcile.")]
|
||||
[SerializeField]
|
||||
private LocalReconcileLODCalculationType _localLevelOfDetailCalculationType = LocalReconcileLODCalculationType.CloseObjectsOnly;
|
||||
/// <summary>
|
||||
/// True if to enable level of detail for this object. Level of detail supports prediction objects. This feature must be enabled on the ObserverManager to function.
|
||||
/// </summary>
|
||||
internal bool UseLevelOfDetail => _useLevelOfDetail;
|
||||
[Tooltip("True if to enable level of detail for this object. Level of detail supports prediction objects. This feature must be enabled on the ObserverManager to function.")]
|
||||
[SerializeField]
|
||||
private bool _useLevelOfDetail = false;
|
||||
/// <summary>
|
||||
/// True to use the same level of detail as the topmost parent NetworkObject. False to use a separate level of detail if nested.
|
||||
/// </summary>
|
||||
[Tooltip("True to use the same level of detail as the topmost parent NetworkObject. False to use a separate level of detail if nested.")]
|
||||
[SerializeField]
|
||||
private bool _useRootLevelOfDetail = true;
|
||||
/// <summary>
|
||||
/// Default level of detail index for new observers.
|
||||
/// </summary>
|
||||
internal const byte DEFAULT_LEVEL_OF_DETAIL_INDEX = 1;
|
||||
|
||||
/// <summary>
|
||||
/// Updates the level of detail status based on current conditions.
|
||||
/// </summary>
|
||||
private void SetLevelOfDetailUsage()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called ObserversActive has changed.
|
||||
/// </summary>
|
||||
private void ObserversActiveChanged_LevelOfDetail()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clears observers for level of detail.
|
||||
/// </summary>
|
||||
private void ClearObserverLevelOfDetail()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds an observer to level of detail if needed.
|
||||
/// </summary>
|
||||
/// <remarks>A connection is only added if this object supports level of detail.</remarks>
|
||||
private void AddObserverLevelOfDetail(NetworkConnection connection)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes an observer from level of detail if needed.
|
||||
/// </summary>
|
||||
private void RemoveObserverLevelOfDetail(NetworkConnection connection)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b36f63f24fb6e2f4794576d1acc151af
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkObject/NetworkObject.LevelOfDetail.cs
|
||||
uploadId: 892096
|
||||
@@ -205,20 +205,76 @@ namespace FishNet.Object
|
||||
NetworkObserver = NetworkManager.ObserverManager.AddDefaultConditions(this);
|
||||
}
|
||||
|
||||
internal void ClearObservers()
|
||||
{
|
||||
int startCount = Observers.Count;
|
||||
|
||||
Observers.Clear();
|
||||
|
||||
/* Done before ObserversActiveChanged because
|
||||
* that trickles into storing the LOD collection.
|
||||
* Realistically, the collection does not need to be
|
||||
* cleared because when it's stored it would be
|
||||
* then, but keeping this here for intent. */
|
||||
ClearObserverLevelOfDetail();
|
||||
|
||||
if (startCount > 0)
|
||||
ObserversActiveChanged();
|
||||
}
|
||||
|
||||
internal bool AddObserver(NetworkConnection connection)
|
||||
{
|
||||
int startCount = Observers.Count;
|
||||
|
||||
bool added = Observers.Add(connection);
|
||||
|
||||
if (added)
|
||||
{
|
||||
if (TimeManager != null)
|
||||
ObserverAddedTick = TimeManager.LocalTick;
|
||||
|
||||
if (startCount == 0)
|
||||
ObserversActiveChanged();
|
||||
|
||||
/* Add after ObserversActiveChanged because
|
||||
* the LOD might not be setup yet otherwise;
|
||||
* LOD uses hot loading. */
|
||||
AddObserverLevelOfDetail(connection);
|
||||
}
|
||||
|
||||
return added;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Removes a connection from observers for this object returning if the connection was removed.
|
||||
/// </summary>
|
||||
/// <param name = "connection"></param>
|
||||
internal bool RemoveObserver(NetworkConnection connection)
|
||||
{
|
||||
RemoveObserverLevelOfDetail(connection);
|
||||
|
||||
int startCount = Observers.Count;
|
||||
|
||||
bool removed = Observers.Remove(connection);
|
||||
if (removed)
|
||||
TryInvokeOnObserversActive(startCount);
|
||||
|
||||
//Like with clear, remove before calling ObserversActiveChange.
|
||||
RemoveObserverLevelOfDetail(connection);
|
||||
|
||||
if (removed && startCount == 0)
|
||||
ObserversActiveChanged();
|
||||
|
||||
return removed;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when observers active has changed.
|
||||
/// </summary>
|
||||
private void ObserversActiveChanged()
|
||||
{
|
||||
ObserversActiveChanged_LevelOfDetail();
|
||||
OnObserversActive?.Invoke(this);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds the connection to observers if conditions are met.
|
||||
/// </summary>
|
||||
@@ -232,17 +288,17 @@ namespace FishNet.Object
|
||||
NetworkManager.LogWarning($"An invalid connection was used when rebuilding observers.");
|
||||
return ObserverStateChange.Unchanged;
|
||||
}
|
||||
|
||||
|
||||
// Valid not not active.
|
||||
if (!connection.IsActive)
|
||||
{
|
||||
/* Just remove from observers since connection isn't active
|
||||
* and return unchanged because nothing should process
|
||||
* given the connection isnt active. */
|
||||
Observers.Remove(connection);
|
||||
RemoveObserver(connection);
|
||||
return ObserverStateChange.Unchanged;
|
||||
}
|
||||
|
||||
|
||||
if (IsDeinitializing)
|
||||
{
|
||||
/* If object is deinitializing it's either being despawned
|
||||
@@ -254,36 +310,16 @@ namespace FishNet.Object
|
||||
// Update hashgrid if needed.
|
||||
UpdateForNetworkObject(!timedOnly);
|
||||
|
||||
int startCount = Observers.Count;
|
||||
ObserverStateChange osc = NetworkObserver.RebuildObservers(connection, timedOnly);
|
||||
|
||||
if (osc == ObserverStateChange.Added)
|
||||
Observers.Add(connection);
|
||||
AddObserver(connection);
|
||||
else if (osc == ObserverStateChange.Removed)
|
||||
Observers.Remove(connection);
|
||||
|
||||
if (osc != ObserverStateChange.Unchanged)
|
||||
TryInvokeOnObserversActive(startCount);
|
||||
RemoveObserver(connection);
|
||||
|
||||
return osc;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invokes OnObserversActive if observers are now 0 but previously were not, or if was previously 0 but now has observers.
|
||||
/// </summary>
|
||||
/// <param name = "startCount"></param>
|
||||
private void TryInvokeOnObserversActive(int startCount)
|
||||
{
|
||||
if (TimeManager != null)
|
||||
ObserverAddedTick = TimeManager.LocalTick;
|
||||
|
||||
if (OnObserversActive != null)
|
||||
{
|
||||
if ((Observers.Count > 0 && startCount == 0) || (Observers.Count == 0 && startCount > 0))
|
||||
OnObserversActive.Invoke(this);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resets this object to starting values.
|
||||
/// </summary>
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkObject/NetworkObject.Observers.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -31,6 +31,23 @@ namespace FishNet.Object
|
||||
Rigidbody2D = 2
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// How local reconciles are applied when using level of detail.
|
||||
/// </summary>
|
||||
internal enum LocalReconcileLODCalculationType
|
||||
{
|
||||
/// <summary>
|
||||
/// Local reconciles will only be applied on very near objects.
|
||||
/// </summary>
|
||||
/// <remarks>This will cause only very near objects to reconcile using local reconcile data.</remarks>
|
||||
CloseObjectsOnly,
|
||||
/// <summary>
|
||||
/// Local reconciles will be applied on any object which the tick fits the Level of detail window.
|
||||
/// </summary>
|
||||
/// <remarks>Using this option will result in more objects reconciling when the server does not send reconcile data due to level of detail, but the client thinks it should have it.</remarks>
|
||||
ObjectsWithinLevelOfDetail,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// How to correct, or reset a rigidbody transform after a reconcile when the reconcile state is local, and the rigidbody has near nil differences from when the reconcile started.
|
||||
/// </summary>
|
||||
@@ -362,7 +379,8 @@ namespace FishNet.Object
|
||||
|
||||
if (_graphicalObject == null)
|
||||
{
|
||||
NetworkManager.Log($"GraphicalObject is null on {gameObject.name}. This may be intentional, and acceptable, if you are smoothing between ticks yourself. Otherwise consider assigning the GraphicalObject field.");
|
||||
//Removed per community request; the document has shown to no longer use this field for a hefty duration.
|
||||
//NetworkManager.Log($"GraphicalObject is null on {gameObject.name}. This may be intentional, and acceptable, if you are smoothing between ticks yourself. Otherwise consider assigning the GraphicalObject field.");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkObject/NetworkObject.Prediction.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkObject/NetworkObject.QOL.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkObject/NetworkObject.ReferenceIds.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkObject/NetworkObject.RpcLinks.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkObject/NetworkObject.Serialized.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkObject/NetworkObject.SyncTypes.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -44,6 +44,7 @@ namespace FishNet.Object
|
||||
|
||||
[DefaultExecutionOrder(short.MinValue + 1)]
|
||||
[DisallowMultipleComponent]
|
||||
[AddComponentMenu("FishNet/Component/NetworkObject")]
|
||||
public partial class NetworkObject : MonoBehaviour, IOrderable
|
||||
{
|
||||
#region Public.
|
||||
@@ -416,11 +417,6 @@ namespace FishNet.Object
|
||||
ResetState(asServer: true);
|
||||
ResetState(asServer: false);
|
||||
}
|
||||
//Client is started and is scene object.
|
||||
else if (IsClientStarted && IsSceneObject)
|
||||
{
|
||||
ResetState(asServer: false);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
@@ -428,6 +424,7 @@ namespace FishNet.Object
|
||||
CollectionCaches<NetworkBehaviour>.Store(_predictionBehaviours);
|
||||
ResettableT2CollectionCaches<Transform, PreReconcilingTransformProperties>.Store(_rigidbodyTransformsPreReconcileProperties);
|
||||
CollectionCaches<PreReconcilingTransformProperties>.Store(_updatedPreReconcilingTransformProperties);
|
||||
CollectionCaches<NetworkConnection, uint>.StoreAndDefault(ref ObserverLevelOfDetailDivisors);
|
||||
|
||||
SetIsDestroying(DespawnType.Destroy);
|
||||
|
||||
@@ -462,7 +459,7 @@ namespace FishNet.Object
|
||||
if (Owner.IsValid)
|
||||
Owner.RemoveObject(this);
|
||||
|
||||
Observers.Clear();
|
||||
ClearObservers();
|
||||
if (NetworkBehaviours.Count > 0)
|
||||
{
|
||||
NetworkBehaviour thisNb = NetworkBehaviours[0];
|
||||
@@ -651,7 +648,13 @@ namespace FishNet.Object
|
||||
SetOwner(owner);
|
||||
|
||||
if (ObjectId != UNSET_OBJECTID_VALUE)
|
||||
NetworkManager.LogError($"Object was initialized twice without being reset. Object {ToString()}");
|
||||
{
|
||||
if (ObjectId != objectId)
|
||||
{
|
||||
ServerManager.Objects.ObjectInitializedWithoutDeinitializing(oldId: objectId, this);
|
||||
ClientManager.Objects.ObjectInitializedWithoutDeinitializing(oldId: objectId, this);
|
||||
}
|
||||
}
|
||||
|
||||
ObjectId = objectId;
|
||||
|
||||
@@ -715,6 +718,7 @@ namespace FishNet.Object
|
||||
{
|
||||
if (!CanChangeParent(true))
|
||||
return;
|
||||
|
||||
if (nob == null)
|
||||
{
|
||||
UnsetParent();
|
||||
@@ -730,6 +734,8 @@ namespace FishNet.Object
|
||||
|
||||
NetworkBehaviour newParent = nob.NetworkBehaviours[0];
|
||||
UpdateParent(newParent);
|
||||
|
||||
SetLevelOfDetailUsage();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -989,7 +995,7 @@ namespace FishNet.Object
|
||||
|
||||
// Iterate all cached transforms and get networkbehaviours.
|
||||
List<NetworkBehaviour> nbCache = CollectionCaches<NetworkBehaviour>.RetrieveList();
|
||||
//
|
||||
//
|
||||
List<NetworkBehaviour> nbCache2 = CollectionCaches<NetworkBehaviour>.RetrieveList();
|
||||
for (int i = 0; i < transformCache.Count; i++)
|
||||
{
|
||||
@@ -1020,7 +1026,7 @@ namespace FishNet.Object
|
||||
|
||||
// Copy to array.
|
||||
int nbCount = nbCache.Count;
|
||||
//
|
||||
//
|
||||
for (int i = 0; i < nbCount; i++)
|
||||
{
|
||||
NetworkBehaviour nb = nbCache[i];
|
||||
@@ -1141,7 +1147,7 @@ namespace FishNet.Object
|
||||
SetInitializedStatus(false, asServer);
|
||||
|
||||
if (asServer)
|
||||
Observers.Clear();
|
||||
ClearObservers();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1165,7 +1171,7 @@ namespace FishNet.Object
|
||||
// // If nested then set active state to serialized value.
|
||||
// if (IsNested)
|
||||
// gameObject.SetActive(WasActiveDuringEdit);
|
||||
//
|
||||
//
|
||||
SetOwner(NetworkManager.EmptyConnection);
|
||||
if (NetworkObserver != null)
|
||||
NetworkObserver.Deinitialize(false);
|
||||
@@ -1267,7 +1273,7 @@ namespace FishNet.Object
|
||||
// If sharing then send to all observers.
|
||||
if (NetworkManager.ServerManager.ShareIds)
|
||||
{
|
||||
NetworkManager.TransportManager.SendToClients((byte)Channel.Reliable, writer.GetArraySegment(), this);
|
||||
NetworkManager.TransportManager.SendToClients((byte)Channel.Reliable, writer.GetArraySegment());
|
||||
}
|
||||
// Only sending to old / new.
|
||||
else
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkObject/NetworkObject.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/NetworkObject/NetworkObjectData.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Prediction/Attributes.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Prediction/Delegates.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Prediction/Interfaces.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Prediction/LocalReconcile.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Prediction/MoveRates.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -105,7 +105,9 @@ namespace FishNet.Object.Prediction
|
||||
public static void WritePredictionRigidbody(this Writer w, PredictionRigidbody pr)
|
||||
{
|
||||
w.Write(pr.Rigidbody.GetState(pr.RotationPacking));
|
||||
w.WriteList(pr.GetPendingForces());
|
||||
/* This used to write pr.GetPendingForces() but is no longer needed, assuming the user properly
|
||||
* reconciles everything that modifies the predictionRigidbody. */
|
||||
w.WriteList<PredictionRigidbody.EntryData>(null);
|
||||
}
|
||||
|
||||
[DefaultReader]
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Prediction/PredictionRigidbody.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -90,7 +90,9 @@ namespace FishNet.Object.Prediction
|
||||
public static void WritePredictionRigidbody2D(this Writer w, PredictionRigidbody2D pr)
|
||||
{
|
||||
w.Write(pr.Rigidbody2D.GetState(pr.RotationPacking));
|
||||
w.WriteList(pr.GetPendingForces());
|
||||
/* This used to write pr.GetPendingForces() but is no longer needed, assuming the user properly
|
||||
* reconciles everything that modifies the predictionRigidbody. */
|
||||
w.WriteList<PredictionRigidbody2D.EntryData>(null);
|
||||
}
|
||||
|
||||
public static PredictionRigidbody2D ReadPredictionRigidbody2D(this Reader r)
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Prediction/PredictionRigidbody2D.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Prediction/ReplicateDataContainer.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Prediction/ReplicateState.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/ICustomSync.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/InterpolatedSyncVars.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/MissingObjectPacketLength.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/ReadPermissions.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncBase.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncDictionary.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncDictionaryOperation.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncHashSetOperation.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncHashset.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncList.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncListOperation.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncStopwatch.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncStopwatchOperation.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncTimer.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncTimerOperation.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncTypeSetting.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncTypeWriteFlag.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/SyncVar.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/Synchronizing/WritePermissions.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/TransformProperties.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
@@ -13,6 +13,6 @@ AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 207815
|
||||
packageName: 'FishNet: Networking Evolved'
|
||||
packageVersion: 4.6.22R
|
||||
packageVersion: 4.7.1R
|
||||
assetPath: Assets/FishNet/Runtime/Object/TransformPropertiesFlag.cs
|
||||
uploadId: 866910
|
||||
uploadId: 892096
|
||||
|
||||
Reference in New Issue
Block a user