com.unity.netcode.gameobjects@2.0.0-exp.4
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). ## [2.0.0-exp.4] - 2024-05-31 ### Added - Added `NetworkRigidbodyBase.AttachToFixedJoint` and `NetworkRigidbodyBase.DetachFromFixedJoint` to replace parenting for rigid bodies that have `NetworkRigidbodyBase.UseRigidBodyForMotion` enabled. (#2933) - Added `NetworkBehaviour.OnNetworkPreSpawn` and `NetworkBehaviour.OnNetworkPostSpawn` methods that provide the ability to handle pre and post spawning actions during the `NetworkObject` spawn sequence. (#2912) - Added a client-side only `NetworkBehaviour.OnNetworkSessionSynchronized` convenience method that is invoked on all `NetworkBehaviour`s after a newly joined client has finished synchronizing with the network session in progress. (#2912) - Added `NetworkBehaviour.OnInSceneObjectsSpawned` convenience method that is invoked when all in-scene `NetworkObject`s have been spawned after a scene has been loaded or upon a host or server starting. (#2912) ### Fixed - Fixed issue where non-authoritative rigid bodies with `NetworkRigidbodyBase.UseRigidBodyForMotion` enabled would constantly log errors about the renderTime being before `StartTimeConsumed`. (#2933) - Fixed issue where in-scene placed NetworkObjects could be destroyed if a client disconnects early and/or before approval. (#2924) - Fixed issue where a `NetworkObject` component's associated `NetworkBehaviour` components would not be detected if scene loading is disabled in the editor and the currently loaded scene has in-scene placed `NetworkObject`s. (#2912) - Fixed issue where an in-scene placed `NetworkObject` with `NetworkTransform` that is also parented under a `GameObject` would not properly synchronize when the parent `GameObject` had a world space position other than 0,0,0. (#2898) ### Changed - Change all the access modifiers of test class from Public to Internal (#2930) - Changed messages are now sorted by enum values as opposed to ordinally sorting the messages by their type name. (#2929) - Changed `NetworkClient.SessionModeTypes` to `NetworkClient.NetworkTopologyTypes`. (#2875) - Changed `NetworkClient.SessionModeType` to `NetworkClient.NetworkTopologyType`. (#2875) - Changed `NetworkConfig.SessionMode` to `NeworkConfig.NetworkTopology`. (#2875)
This commit is contained in:
@@ -2,7 +2,7 @@ using NUnit.Framework;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class ArithmeticTests
|
||||
internal class ArithmeticTests
|
||||
{
|
||||
[Test]
|
||||
public void TestCeil()
|
||||
|
||||
@@ -8,7 +8,7 @@ using UnityEngine;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class BuildTests
|
||||
internal class BuildTests
|
||||
{
|
||||
public const string DefaultBuildScenePath = "Tests/Editor/Build/BuildTestScene.unity";
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ using Unity.Collections;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class DisconnectMessageTests
|
||||
internal class DisconnectMessageTests
|
||||
{
|
||||
[Test]
|
||||
public void EmptyDisconnectReason()
|
||||
|
||||
@@ -3,7 +3,7 @@ using NUnit.Framework;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class InterpolatorTests
|
||||
internal class InterpolatorTests
|
||||
{
|
||||
private const float k_Precision = 0.00000001f;
|
||||
private const int k_MockTickRate = 1;
|
||||
|
||||
@@ -3,7 +3,7 @@ using NUnit.Framework;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class DisconnectOnSendTests
|
||||
internal class DisconnectOnSendTests
|
||||
{
|
||||
private struct TestMessage : INetworkMessage, INetworkSerializeByMemcpy
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@ using UnityEngine.TestTools;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class MessageCorruptionTests
|
||||
internal class MessageCorruptionTests
|
||||
{
|
||||
|
||||
private struct TestMessage : INetworkMessage, INetworkSerializeByMemcpy
|
||||
|
||||
@@ -7,7 +7,7 @@ using Unity.Collections.LowLevel.Unsafe;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class MessageReceivingTests
|
||||
internal class MessageReceivingTests
|
||||
{
|
||||
private struct TestMessage : INetworkMessage, INetworkSerializeByMemcpy
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using NUnit.Framework;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class MessageRegistrationTests
|
||||
internal class MessageRegistrationTests
|
||||
{
|
||||
private struct TestMessageOne : INetworkMessage, INetworkSerializeByMemcpy
|
||||
{
|
||||
@@ -191,77 +191,5 @@ namespace Unity.Netcode.EditorTests
|
||||
Assert.AreEqual(handlerFour, systemThree.MessageHandlers[systemThree.GetMessageType(typeof(TestMessageFour))]);
|
||||
}
|
||||
}
|
||||
|
||||
internal class AAAEarlyLexicographicNetworkMessage : INetworkMessage
|
||||
{
|
||||
public void Serialize(FastBufferWriter writer, int targetVersion)
|
||||
{
|
||||
}
|
||||
|
||||
public bool Deserialize(FastBufferReader reader, ref NetworkContext context, int receivedMessageVersion)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void Handle(ref NetworkContext context)
|
||||
{
|
||||
}
|
||||
|
||||
public int Version => 0;
|
||||
}
|
||||
|
||||
#pragma warning disable IDE1006
|
||||
internal class zzzLateLexicographicNetworkMessage : AAAEarlyLexicographicNetworkMessage
|
||||
{
|
||||
}
|
||||
#pragma warning restore IDE1006
|
||||
|
||||
internal class OrderingMessageProvider : INetworkMessageProvider
|
||||
{
|
||||
public List<NetworkMessageManager.MessageWithHandler> GetMessages()
|
||||
{
|
||||
var listMessages = new List<NetworkMessageManager.MessageWithHandler>();
|
||||
|
||||
var messageWithHandler = new NetworkMessageManager.MessageWithHandler
|
||||
{
|
||||
MessageType = typeof(zzzLateLexicographicNetworkMessage),
|
||||
GetVersion = NetworkMessageManager.CreateMessageAndGetVersion<zzzLateLexicographicNetworkMessage>
|
||||
};
|
||||
listMessages.Add(messageWithHandler);
|
||||
|
||||
messageWithHandler.MessageType = typeof(ConnectionRequestMessage);
|
||||
messageWithHandler.GetVersion = NetworkMessageManager.CreateMessageAndGetVersion<ConnectionRequestMessage>;
|
||||
listMessages.Add(messageWithHandler);
|
||||
|
||||
messageWithHandler.MessageType = typeof(ConnectionApprovedMessage);
|
||||
messageWithHandler.GetVersion = NetworkMessageManager.CreateMessageAndGetVersion<ConnectionApprovedMessage>;
|
||||
listMessages.Add(messageWithHandler);
|
||||
|
||||
messageWithHandler.MessageType = typeof(AAAEarlyLexicographicNetworkMessage);
|
||||
messageWithHandler.GetVersion = NetworkMessageManager.CreateMessageAndGetVersion<AAAEarlyLexicographicNetworkMessage>;
|
||||
listMessages.Add(messageWithHandler);
|
||||
|
||||
return listMessages;
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void MessagesGetPrioritizedCorrectly()
|
||||
{
|
||||
var sender = new NopMessageSender();
|
||||
var provider = new OrderingMessageProvider();
|
||||
using var messageManager = new NetworkMessageManager(sender, null, provider);
|
||||
|
||||
// the 2 priority messages should appear first, in lexicographic order
|
||||
Assert.AreEqual(messageManager.MessageTypes[0], typeof(ConnectionApprovedMessage));
|
||||
Assert.AreEqual(messageManager.MessageTypes[1], typeof(ConnectionRequestMessage));
|
||||
|
||||
// the other should follow after
|
||||
Assert.AreEqual(messageManager.MessageTypes[2], typeof(AAAEarlyLexicographicNetworkMessage));
|
||||
Assert.AreEqual(messageManager.MessageTypes[3], typeof(zzzLateLexicographicNetworkMessage));
|
||||
|
||||
// there should not be any extras
|
||||
Assert.AreEqual(messageManager.MessageHandlerCount, 4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ using Random = System.Random;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class MessageSendingTests
|
||||
internal class MessageSendingTests
|
||||
{
|
||||
private struct TestMessage : INetworkMessage, INetworkSerializeByMemcpy
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@ using NUnit.Framework.Internal;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class MessageVersioningTests
|
||||
internal class MessageVersioningTests
|
||||
{
|
||||
public static int SentVersion;
|
||||
public static int ReceivedVersion;
|
||||
|
||||
@@ -8,7 +8,7 @@ using Unity.Multiplayer.Tools.NetStats;
|
||||
|
||||
namespace Unity.Netcode.EditorTests.Metrics
|
||||
{
|
||||
public class NetworkMetricsRegistrationTests
|
||||
internal class NetworkMetricsRegistrationTests
|
||||
{
|
||||
private static Type[] s_MetricTypes = AppDomain.CurrentDomain.GetAssemblies()
|
||||
.SelectMany(x => x.GetTypes())
|
||||
|
||||
@@ -4,7 +4,7 @@ using Object = UnityEngine.Object;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class NetworkBehaviourTests
|
||||
internal class NetworkBehaviourTests
|
||||
{
|
||||
[Test]
|
||||
public void HasNetworkObjectTest()
|
||||
@@ -66,12 +66,12 @@ namespace Unity.Netcode.EditorTests
|
||||
|
||||
// Note: in order to repro https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/issues/1078
|
||||
// this child class must be defined before its parent to assure it is processed first by ILPP
|
||||
public class DerivedNetworkBehaviour : EmptyNetworkBehaviour
|
||||
internal class DerivedNetworkBehaviour : EmptyNetworkBehaviour
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public class EmptyNetworkBehaviour : NetworkBehaviour
|
||||
internal class EmptyNetworkBehaviour : NetworkBehaviour
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -9,8 +9,20 @@ using UnityEngine.TestTools;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class NetworkManagerConfigurationTests
|
||||
internal class NetworkManagerConfigurationTests
|
||||
{
|
||||
[SetUp]
|
||||
public void OnSetup()
|
||||
{
|
||||
ILPPMessageProvider.IntegrationTestNoMessages = true;
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void OnTearDown()
|
||||
{
|
||||
ILPPMessageProvider.IntegrationTestNoMessages = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Does a simple check to make sure the nested network manager will
|
||||
/// notify the user when in the editor. This is just a unit test to
|
||||
|
||||
@@ -6,7 +6,7 @@ using UnityEngine.TestTools;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class NetworkObjectTests
|
||||
internal class NetworkObjectTests
|
||||
{
|
||||
[Test]
|
||||
public void NetworkManagerOverrideTest()
|
||||
@@ -146,12 +146,12 @@ namespace Unity.Netcode.EditorTests
|
||||
public int NetworkBehaviourIndex;
|
||||
}
|
||||
|
||||
public class EmptyNetworkBehaviour : NetworkBehaviour
|
||||
internal class EmptyNetworkBehaviour : NetworkBehaviour
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public class EmptyMonoBehaviour : MonoBehaviour
|
||||
internal class EmptyMonoBehaviour : MonoBehaviour
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ using UnityEngine;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class NetworkPrefabProcessorTests
|
||||
internal class NetworkPrefabProcessorTests
|
||||
{
|
||||
private NetcodeForGameObjectsProjectSettings m_Settings;
|
||||
private bool m_EditorDefaultPrefabSetting;
|
||||
|
||||
@@ -3,9 +3,9 @@ using UnityEngine;
|
||||
|
||||
namespace Unity.Netcode.EditorTests.NetworkVar
|
||||
{
|
||||
public class NetworkVarTests
|
||||
internal class NetworkVarTests
|
||||
{
|
||||
public class NetworkVarComponent : NetworkBehaviour
|
||||
internal class NetworkVarComponent : NetworkBehaviour
|
||||
{
|
||||
public NetworkVariable<int> NetworkVariable = new NetworkVariable<int>();
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ using Random = System.Random;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public abstract class BaseFastBufferReaderWriterTest
|
||||
internal abstract class BaseFastBufferReaderWriterTest
|
||||
{
|
||||
protected enum ByteEnum : byte
|
||||
{
|
||||
|
||||
@@ -2,7 +2,7 @@ using NUnit.Framework;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class BitCounterTests
|
||||
internal class BitCounterTests
|
||||
{
|
||||
[Test]
|
||||
public void WhenCountingUsedBitsIn64BitValue_ResultMatchesHighBitSetPlusOne([Range(0, 63)] int highBit)
|
||||
|
||||
@@ -4,7 +4,7 @@ using Unity.Collections;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class BitReaderTests
|
||||
internal class BitReaderTests
|
||||
{
|
||||
[Test]
|
||||
public void TestReadingOneBit()
|
||||
|
||||
@@ -4,7 +4,7 @@ using Unity.Collections;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class BitWriterTests
|
||||
internal class BitWriterTests
|
||||
{
|
||||
[Test]
|
||||
public unsafe void TestWritingOneBit()
|
||||
|
||||
@@ -5,7 +5,7 @@ using Random = System.Random;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class BufferSerializerTests
|
||||
internal class BufferSerializerTests
|
||||
{
|
||||
[Test]
|
||||
public void TestIsReaderIsWriter()
|
||||
|
||||
@@ -8,7 +8,7 @@ using Random = System.Random;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class BytePackerTests
|
||||
internal class BytePackerTests
|
||||
{
|
||||
private enum ByteEnum : byte
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@ using Random = System.Random;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class FastBufferReaderTests : BaseFastBufferReaderWriterTest
|
||||
internal class FastBufferReaderTests : BaseFastBufferReaderWriterTest
|
||||
{
|
||||
private void WriteCheckBytes(FastBufferWriter writer, int writeSize, string failMessage = "")
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@ using Random = System.Random;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class FastBufferWriterTests : BaseFastBufferReaderWriterTest
|
||||
internal class FastBufferWriterTests : BaseFastBufferReaderWriterTest
|
||||
{
|
||||
private void WriteCheckBytes(FastBufferWriter writer, int writeSize, string failMessage = "")
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ using Unity.Collections;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class UserBitReaderAndBitWriterTests_NCCBUG175
|
||||
internal class UserBitReaderAndBitWriterTests_NCCBUG175
|
||||
{
|
||||
|
||||
[Test]
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace Unity.Netcode.EditorTests
|
||||
/// <summary>
|
||||
/// Tests for running a <see cref="NetworkTimeSystem"/> as a client.
|
||||
/// </summary>
|
||||
public class ClientNetworkTimeSystemTests
|
||||
internal class ClientNetworkTimeSystemTests
|
||||
{
|
||||
private const double k_AcceptableRttOffset = 0.03d; // 30ms offset is fine
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ using Random = System.Random;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class NetworkTimeTests
|
||||
internal class NetworkTimeTests
|
||||
{
|
||||
[Test]
|
||||
[TestCase(0d, 0u)]
|
||||
|
||||
@@ -3,7 +3,7 @@ using UnityEngine;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class ServerNetworkTimeSystemTests
|
||||
internal class ServerNetworkTimeSystemTests
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -7,7 +7,7 @@ namespace Unity.Netcode.EditorTests
|
||||
/// <summary>
|
||||
/// Helper functions for timing related tests. Allows to get a set of time steps and simulate time advancing without the need of a full playmode test.
|
||||
/// </summary>
|
||||
public static class TimingTestHelper
|
||||
internal static class TimingTestHelper
|
||||
{
|
||||
public static List<float> GetRandomTimeSteps(float totalDuration, float min, float max, int seed)
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@ using Unity.Networking.Transport;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class BatchedReceiveQueueTests
|
||||
internal class BatchedReceiveQueueTests
|
||||
{
|
||||
[Test]
|
||||
public void BatchedReceiveQueue_EmptyReader()
|
||||
|
||||
@@ -8,7 +8,7 @@ using Unity.Networking.Transport;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class BatchedSendQueueTests
|
||||
internal class BatchedSendQueueTests
|
||||
{
|
||||
private const int k_TestQueueCapacity = 16 * 1024;
|
||||
private const int k_TestMessageSize = 1020;
|
||||
|
||||
@@ -7,7 +7,7 @@ using UnityEngine.TestTools;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class UNetTransportTests
|
||||
internal class UNetTransportTests
|
||||
{
|
||||
[Test]
|
||||
public void StartServerReturnsFalseOnFailure()
|
||||
|
||||
@@ -5,8 +5,20 @@ using UnityEngine.TestTools;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class UnityTransportTests
|
||||
internal class UnityTransportTests
|
||||
{
|
||||
[SetUp]
|
||||
public void OnSetup()
|
||||
{
|
||||
ILPPMessageProvider.IntegrationTestNoMessages = true;
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void OnTearDown()
|
||||
{
|
||||
ILPPMessageProvider.IntegrationTestNoMessages = false;
|
||||
}
|
||||
|
||||
// Check that starting an IPv4 server succeeds.
|
||||
[Test]
|
||||
public void UnityTransport_BasicInitServer_IPv4()
|
||||
|
||||
@@ -2,7 +2,7 @@ using NUnit.Framework;
|
||||
|
||||
namespace Unity.Netcode.EditorTests
|
||||
{
|
||||
public class XXHashTests
|
||||
internal class XXHashTests
|
||||
{
|
||||
[Test]
|
||||
public void TestXXHash32Short()
|
||||
|
||||
Reference in New Issue
Block a user