Skip to content

feat: client networkrigidbody #1202

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 147 commits into from
Oct 11, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
0ad1fb0
setting correct default
SamuelBellomo Jul 5, 2021
24231cc
Merge branch 'develop' into sam/feature/interpolation-for-network-tra…
SamuelBellomo Jul 12, 2021
9682498
Merge branch 'develop' into sam/feature/interpolation-for-network-tra…
SamuelBellomo Jul 19, 2021
bc4d373
adding test benchmark for interpolation
SamuelBellomo Jul 20, 2021
3956a5d
Merge branch 'develop' into sam/feature/interpolation-for-network-tra…
SamuelBellomo Jul 22, 2021
03262b3
#
SamuelBellomo Jul 23, 2021
c81f65a
#
SamuelBellomo Jul 28, 2021
4a4aa7b
#
SamuelBellomo Jul 29, 2021
5fc7b50
#
SamuelBellomo Aug 5, 2021
bb7dc83
#
SamuelBellomo Aug 5, 2021
db9688c
#
SamuelBellomo Aug 6, 2021
e7bbd12
#
SamuelBellomo Aug 10, 2021
b776957
Merge branch 'develop' into sam/feature/interpolation-for-network-tra…
SamuelBellomo Aug 10, 2021
7b93e90
fixes for latest develop merge
SamuelBellomo Aug 11, 2021
3f937b5
#
SamuelBellomo Aug 11, 2021
b927f2c
cleanup
SamuelBellomo Aug 11, 2021
4a86539
renames
SamuelBellomo Aug 11, 2021
2cdbb1b
#
SamuelBellomo Aug 11, 2021
07c3d07
#
SamuelBellomo Aug 11, 2021
f6290e0
cleanup
SamuelBellomo Aug 13, 2021
c492349
#
SamuelBellomo Aug 13, 2021
6b6c5ca
#
SamuelBellomo Aug 13, 2021
890420e
#
SamuelBellomo Aug 13, 2021
a2b885f
adding interface for testing
SamuelBellomo Aug 14, 2021
d5936cc
smooth
SamuelBellomo Aug 14, 2021
3817962
Adding basis for tests
SamuelBellomo Aug 17, 2021
7ca5ced
#
SamuelBellomo Aug 17, 2021
e9ee9fd
#
SamuelBellomo Aug 17, 2021
c3cc8b9
#
SamuelBellomo Aug 17, 2021
e2b85c1
cleanup
SamuelBellomo Aug 17, 2021
9fb4e30
#
SamuelBellomo Aug 17, 2021
796ab67
#
SamuelBellomo Aug 17, 2021
ebdc1fd
#
SamuelBellomo Aug 17, 2021
2efc972
fix, server can have 0 buffer
SamuelBellomo Aug 20, 2021
ce03d58
test fixes
SamuelBellomo Aug 23, 2021
ad5d9ac
moving things to right place for future merge
SamuelBellomo Aug 23, 2021
3c1543b
Merge branch 'develop' into sam/feature/interpolation-for-network-tra…
SamuelBellomo Aug 23, 2021
43ef524
moving tests too
SamuelBellomo Aug 23, 2021
f3d14f9
fix
SamuelBellomo Aug 23, 2021
716aad7
Merge branch 'develop' into sam/feature/interpolation-for-network-tra…
SamuelBellomo Aug 23, 2021
bac5c85
merge branch 'develop' into 'sam/feature/interpolation-for-network-tr…
0xFA11 Aug 24, 2021
496fa82
some fixes
SamuelBellomo Aug 26, 2021
3b8a47e
Merge branch 'sam/feature/interpolation-for-network-transform' of git…
SamuelBellomo Aug 26, 2021
522558f
#
SamuelBellomo Aug 26, 2021
2f57fa9
#
SamuelBellomo Aug 26, 2021
b6ac562
smooth now
SamuelBellomo Sep 1, 2021
669b878
Merge branch 'develop' into sam/feature/interpolation-for-network-tra…
SamuelBellomo Sep 1, 2021
54ee62e
fixes after merge
SamuelBellomo Sep 1, 2021
35606d7
#
SamuelBellomo Sep 2, 2021
3d56986
#
SamuelBellomo Sep 3, 2021
9374e4b
#
SamuelBellomo Sep 3, 2021
6c9b905
#
SamuelBellomo Sep 3, 2021
dcf36fc
Merge branch 'develop' into sam/feature/interpolation-for-network-tra…
SamuelBellomo Sep 3, 2021
ae56748
#
SamuelBellomo Sep 3, 2021
544de80
Merge branch 'sam/feature/interpolation-for-network-transform' of git…
SamuelBellomo Sep 3, 2021
83998c7
Update com.unity.netcode.gameobjects/Prototyping/Interpolator/Buffere…
SamuelBellomo Sep 7, 2021
68ae5be
Update com.unity.netcode.gameobjects/Prototyping/Interpolator/Buffere…
SamuelBellomo Sep 7, 2021
9432c94
Update com.unity.netcode.gameobjects/Prototyping/Interpolator/Buffere…
SamuelBellomo Sep 7, 2021
1ebd1e5
Update com.unity.netcode.gameobjects/Prototyping/Interpolator/IInterp…
SamuelBellomo Sep 7, 2021
5b1761b
code review feedback
SamuelBellomo Sep 7, 2021
1fb7bbf
Merge branch 'sam/feature/interpolation-for-network-transform' of git…
SamuelBellomo Sep 8, 2021
35815a3
cleanup, removing IInterpolator interface, removing other interpolato…
SamuelBellomo Sep 8, 2021
5d4470a
adding some comments
SamuelBellomo Sep 8, 2021
0747544
comment cleanup
SamuelBellomo Sep 9, 2021
b0cc994
after investigation, UseFixedUpdate isn't needed anymore with latest …
SamuelBellomo Sep 9, 2021
41aeef0
Fix axis sync issue.
SamuelBellomo Sep 10, 2021
d92cc1e
reverting back hasXX changes, we still need isDirty checks since hasX…
SamuelBellomo Sep 10, 2021
33751fe
using "SyncXX" instead of "HasXX". HasXX is never reset to false and …
SamuelBellomo Sep 10, 2021
93e8be7
fixing issue where we needed to do a first movement to get over netwo…
SamuelBellomo Sep 10, 2021
f207820
updating zoosam with latest changes
SamuelBellomo Sep 13, 2021
ee5b308
updating zoosam with latest changes
SamuelBellomo Sep 13, 2021
81fb86d
Merge branch 'sam/feature/interpolation-for-network-transform' of git…
SamuelBellomo Sep 13, 2021
0260b4b
Merge branch 'develop' into sam/feature/interpolation-for-network-tra…
SamuelBellomo Sep 13, 2021
7dfecfd
fixing bad ref
SamuelBellomo Sep 13, 2021
4fb11ac
work in progress for client network transform, still some issues with…
SamuelBellomo Sep 13, 2021
3167e52
restricting access to buffered interpolator
SamuelBellomo Sep 13, 2021
8845a59
adding jira to todo
SamuelBellomo Sep 13, 2021
84d2beb
fix compile errors, trying to not have too much public APIs
SamuelBellomo Sep 13, 2021
3883bfb
removing commented lines
SamuelBellomo Sep 13, 2021
92b9a55
removing useless lines
SamuelBellomo Sep 13, 2021
ae2bc66
client auth works without interpolation, on to interpolation now
SamuelBellomo Sep 13, 2021
0271bce
closing down public api
SamuelBellomo Sep 13, 2021
bdecea9
adding missing script
SamuelBellomo Sep 14, 2021
5ccc78b
fixed init issue, now can switch owner at runtime with no issues
SamuelBellomo Sep 14, 2021
2e3f566
fixing default scene for builds
SamuelBellomo Sep 14, 2021
79d892a
Merge branch 'sam/feature/interpolation-for-network-transform' into s…
SamuelBellomo Sep 14, 2021
67689eb
adding missing meta files
SamuelBellomo Sep 14, 2021
23e6291
Merge branch 'sam/feature/interpolation-for-network-transform' into s…
SamuelBellomo Sep 14, 2021
03c87f3
Removing already deleted SyncTransform from Player.
SamuelBellomo Sep 14, 2021
2c4e6d1
reverting changes to samplescene, it was already in ZooSam
SamuelBellomo Sep 14, 2021
ebcbfa5
Merge branch 'sam/feature/interpolation-for-network-transform' into s…
SamuelBellomo Sep 14, 2021
2f6fa0b
scale error fixed, wasn't used interpolation for some reason...
SamuelBellomo Sep 14, 2021
c3fc31b
fix for warning to triggering
SamuelBellomo Sep 14, 2021
62f25dd
cleanup
SamuelBellomo Sep 14, 2021
474ca80
restricting protected API, now more encapsulated
SamuelBellomo Sep 14, 2021
5863918
Adding doc on CanWriteToTransform
SamuelBellomo Sep 15, 2021
e65ccbf
ClientNetworkTransform works with now limited API
SamuelBellomo Sep 16, 2021
707e1b4
cleanup comments
SamuelBellomo Sep 16, 2021
a2f04c7
removing useless method
SamuelBellomo Sep 16, 2021
b77980f
removing useless todo
SamuelBellomo Sep 16, 2021
6846e73
reverting back changes to NT tests
SamuelBellomo Sep 16, 2021
272a6db
restricting API
SamuelBellomo Sep 16, 2021
6978ee3
restricting API even more
SamuelBellomo Sep 16, 2021
3add037
caching transform
SamuelBellomo Sep 16, 2021
353c12c
adding doc
SamuelBellomo Sep 16, 2021
976002a
bumping exec order
SamuelBellomo Sep 16, 2021
f5e27b9
restricting public api
SamuelBellomo Sep 16, 2021
8545ea9
Merge branch 'develop' into sam/feature/interpolation-for-network-tra…
SamuelBellomo Sep 16, 2021
9e22bfa
removing not submitted LiteNetLib from ZooSam
SamuelBellomo Sep 16, 2021
fd83c0a
Merge branch 'develop' into sam/feature/interpolation-for-network-tra…
SamuelBellomo Sep 16, 2021
96eef69
fixing formatting issue
SamuelBellomo Sep 16, 2021
5258c9b
more formatting
SamuelBellomo Sep 16, 2021
39ec721
fixing line issue
SamuelBellomo Sep 16, 2021
722361a
Merge branch 'sam/feature/interpolation-for-network-transform' into s…
SamuelBellomo Sep 16, 2021
d79aa53
format issue
SamuelBellomo Sep 16, 2021
3d69f23
format fix
SamuelBellomo Sep 16, 2021
211f0f9
removing useless meta files
SamuelBellomo Sep 16, 2021
4ea092d
Merge branch 'develop' into sam/feature/interpolation-for-network-tra…
NoelStephensUnity Sep 16, 2021
6d3af5c
adding CanCommitToTransform public api. Since it's very likely author…
SamuelBellomo Sep 16, 2021
d97611c
formatting
SamuelBellomo Sep 16, 2021
127757c
Merge branch 'sam/feature/interpolation-for-network-transform' into s…
SamuelBellomo Sep 16, 2021
3234401
adding some warning in doc
SamuelBellomo Sep 16, 2021
8d15ed8
Merge branch 'develop' into sam/feature/client-network-transform
SamuelBellomo Sep 16, 2021
d1cb56d
Removing useless SetDirty
SamuelBellomo Sep 16, 2021
19eb53a
Merge branch 'develop' into sam/feature/client-network-transform
SamuelBellomo Sep 16, 2021
e59d506
reenabling net transform tests
SamuelBellomo Sep 16, 2021
90b2204
fixing CI issues
SamuelBellomo Sep 17, 2021
2d32231
Merge branch 'sam/feature/client-network-transform' of github.com:Uni…
SamuelBellomo Sep 17, 2021
a5f3fa3
adding input based transform sample
SamuelBellomo Sep 17, 2021
bcd66a0
Merge branch 'develop' into sam/feature/client-network-transform
SamuelBellomo Sep 17, 2021
bcea81d
Merge remote-tracking branch 'origin/develop' into feature/client-net…
LukeStampfli Sep 17, 2021
f44554c
wip
LukeStampfli Sep 17, 2021
3dce756
Merge remote-tracking branch 'origin/develop' into feature/client-net…
LukeStampfli Sep 23, 2021
65937b2
remove input transform
LukeStampfli Sep 23, 2021
bdf4402
update authority check
LukeStampfli Sep 23, 2021
d08f074
Merge branch 'develop' into feature/client-networkrigidbody
mattwalsh-unity Sep 24, 2021
e4a6039
Merge branch 'develop' into feature/client-networkrigidbody
LukeStampfli Sep 28, 2021
ee2222a
test: add tests for ClientNetworkTransform
LukeStampfli Sep 29, 2021
892519f
move tests to testproject
LukeStampfli Sep 29, 2021
8172f7d
standards
LukeStampfli Sep 29, 2021
bd84311
Mention why tests are in TestProject in code comments
LukeStampfli Sep 29, 2021
bef2b36
test: Comment out tests and add change ownership tests
LukeStampfli Oct 7, 2021
da58886
Merge branch 'develop' into feature/client-networkrigidbody
LukeStampfli Oct 7, 2021
29eb64b
Merge branch 'develop' into feature/client-networkrigidbody
Oct 7, 2021
8a3c0f7
Merge branch 'develop' into feature/client-networkrigidbody
Oct 7, 2021
689176e
fix test timing
LukeStampfli Oct 8, 2021
d79cd7a
Merge branch 'develop' into feature/client-networkrigidbody
LukeStampfli Oct 11, 2021
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
27 changes: 14 additions & 13 deletions com.unity.netcode.gameobjects/Components/NetworkRigidbody.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ namespace Unity.Netcode.Components
public class NetworkRigidbody : NetworkBehaviour
{
private Rigidbody m_Rigidbody;
private NetworkTransform m_NetworkTransform;

private bool m_OriginalKinematic;

Expand All @@ -20,25 +21,25 @@ public class NetworkRigidbody : NetworkBehaviour
/// <summary>
/// Gets a bool value indicating whether this <see cref="NetworkRigidbody"/> on this peer currently holds authority.
/// </summary>
internal bool HasAuthority => NetworkManager.IsServer; // TODO update this once we support owner authoritative NetworkTransform.
private bool HasAuthority => m_NetworkTransform.CanCommitToTransform;

private void Awake()
{
m_Rigidbody = GetComponent<Rigidbody>();
m_NetworkTransform = GetComponent<NetworkTransform>();
}

// Currently commented out because it is not needed as authority currently can't change at runtime.
// private void FixedUpdate()
// {
// if (NetworkManager.IsListening)
// {
// if (HasAuthority != m_IsAuthority)
// {
// m_IsAuthority = HasAuthority;
// UpdateRigidbodyKinematicMode();
// }
// }
// }
private void FixedUpdate()
{
if (NetworkManager.IsListening)
{
if (HasAuthority != m_IsAuthority)
{
m_IsAuthority = HasAuthority;
UpdateRigidbodyKinematicMode();
}
}
}

// Puts the rigidbody in a kinematic non-interpolated mode on everyone but the server.
private void UpdateRigidbodyKinematicMode()
Expand Down
27 changes: 14 additions & 13 deletions com.unity.netcode.gameobjects/Components/NetworkRigidbody2D.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ namespace Unity.Netcode.Components
public class NetworkRigidbody2D : NetworkBehaviour
{
private Rigidbody2D m_Rigidbody;
private NetworkTransform m_NetworkTransform;

private bool m_OriginalKinematic;

Expand All @@ -20,25 +21,25 @@ public class NetworkRigidbody2D : NetworkBehaviour
/// <summary>
/// Gets a bool value indicating whether this <see cref="NetworkRigidbody2D"/> on this peer currently holds authority.
/// </summary>
internal bool HasAuthority => NetworkManager.IsServer; // TODO update this once we support owner authoritative NetworkTransform.
private bool HasAuthority => m_NetworkTransform.CanCommitToTransform;

private void Awake()
{
m_Rigidbody = GetComponent<Rigidbody2D>();
m_NetworkTransform = GetComponent<NetworkTransform>();
}

// Currently commented out because it is not needed as authority currently can't change at runtime.
// private void FixedUpdate()
// {
// if (NetworkManager.IsListening)
// {
// if (HasAuthority != m_IsAuthority)
// {
// m_IsAuthority = HasAuthority;
// UpdateRigidbodyKinematicMode();
// }
// }
// }
private void FixedUpdate()
{
if (NetworkManager.IsListening)
{
if (HasAuthority != m_IsAuthority)
{
m_IsAuthority = HasAuthority;
UpdateRigidbodyKinematicMode();
}
}
}

// Puts the rigidbody in a kinematic non-interpolated mode on everyone but the server.
private void UpdateRigidbodyKinematicMode()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@

namespace Unity.Netcode.RuntimeTests.Physics
{
public class NetworkRigidbody2DDynamicTest : NetworkRigidbodyTestBase
public class NetworkRigidbody2DDynamicTest : NetworkRigidbody2DTestBase
{
public override bool Kinematic => false;
}

public class NetworkRigidbody2DKinematicTest : NetworkRigidbodyTestBase
public class NetworkRigidbody2DKinematicTest : NetworkRigidbody2DTestBase
{
public override bool Kinematic => true;
}
Expand All @@ -29,7 +29,7 @@ public override IEnumerator Setup()
{
playerPrefab.AddComponent<NetworkTransform>();
playerPrefab.AddComponent<Rigidbody2D>();
playerPrefab.AddComponent<NetworkRigidbody>();
playerPrefab.AddComponent<NetworkRigidbody2D>();
playerPrefab.GetComponent<Rigidbody2D>().isKinematic = Kinematic;
});
}
Expand All @@ -54,8 +54,7 @@ public IEnumerator TestRigidbodyKinematicEnableDisable()
Assert.IsNotNull(serverPlayer);
Assert.IsNotNull(clientPlayer);

int waitFor = Time.frameCount + 2;
yield return new WaitUntil(() => Time.frameCount >= waitFor);
yield return NetworkRigidbodyTestBase.WaitForFrames(5);

// server rigidbody has authority and should have a kinematic mode of false
Assert.True(serverPlayer.GetComponent<Rigidbody2D>().isKinematic == Kinematic);
Expand All @@ -66,12 +65,14 @@ public IEnumerator TestRigidbodyKinematicEnableDisable()
// despawn the server player, (but keep it around on the server)
serverPlayer.GetComponent<NetworkObject>().Despawn(false);

yield return null;
yield return NetworkRigidbodyTestBase.WaitForFrames(5);

Assert.IsTrue(serverPlayer.GetComponent<Rigidbody2D>().isKinematic == Kinematic);

yield return null;
yield return NetworkRigidbodyTestBase.WaitForFrames(5);

Assert.IsTrue(clientPlayer == null); // safety check that object is actually despawned.
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,7 @@ public IEnumerator TestRigidbodyKinematicEnableDisable()
Assert.IsNotNull(serverPlayer);
Assert.IsNotNull(clientPlayer);

int waitFor = Time.frameCount + 2;
yield return new WaitUntil(() => Time.frameCount >= waitFor);
yield return WaitForFrames(5);

// server rigidbody has authority and should have a kinematic mode of false
Assert.True(serverPlayer.GetComponent<Rigidbody>().isKinematic == Kinematic);
Expand All @@ -66,12 +65,19 @@ public IEnumerator TestRigidbodyKinematicEnableDisable()
// despawn the server player (but keep it around on the server)
serverPlayer.GetComponent<NetworkObject>().Despawn(false);

yield return null;
yield return WaitForFrames(5);

Assert.IsTrue(serverPlayer.GetComponent<Rigidbody>().isKinematic == Kinematic);

yield return null;
yield return WaitForFrames(5);

Assert.IsTrue(clientPlayer == null); // safety check that object is actually despawned.
}

public static IEnumerator WaitForFrames(int count)
{
int nextFrameNumber = Time.frameCount + count;
yield return new WaitUntil(() => Time.frameCount >= nextFrameNumber);
}
}
}
8 changes: 8 additions & 0 deletions testproject/Assets/Tests/Runtime/Physics.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
// using System.Collections;
// using NUnit.Framework;
// using Unity.Netcode.Components;
// using Unity.Netcode.Samples;
// using UnityEngine;
// using UnityEngine.TestTools;
//
// // Tests for ClientNetworkTransform (CNT) + NetworkRigidbody. This test is in TestProject because it needs access to ClientNetworkTransform
// namespace Unity.Netcode.RuntimeTests.Physics
// {
// public class NetworkRigidbody2DDynamicCntChangeOwnershipTest : NetworkRigidbody2DCntChangeOwnershipTestBase
// {
// public override bool Kinematic => false;
// }
//
// public class NetworkRigidbody2DKinematicCntChangeOwnershipTest : NetworkRigidbody2DCntChangeOwnershipTestBase
// {
// public override bool Kinematic => true;
// }
//
// public abstract class NetworkRigidbody2DCntChangeOwnershipTestBase : BaseMultiInstanceTest
// {
// protected override int NbClients => 1;
//
// public abstract bool Kinematic { get; }
//
// [UnitySetUp]
// public override IEnumerator Setup()
// {
// yield return StartSomeClientsAndServerWithPlayers(true, NbClients, playerPrefab =>
// {
// playerPrefab.AddComponent<ClientNetworkTransform>();
// playerPrefab.AddComponent<Rigidbody2D>();
// playerPrefab.AddComponent<NetworkRigidbody2D>();
// playerPrefab.GetComponent<Rigidbody2D>().isKinematic = Kinematic;
// });
// }
// /// <summary>
// /// Tests that a server can destroy a NetworkObject and that it gets despawned correctly.
// /// </summary>
// /// <returns></returns>
// [UnityTest]
// public IEnumerator TestRigidbodyKinematicEnableDisable()
// {
// // This is the *SERVER VERSION* of the *CLIENT PLAYER*
// var serverClientPlayerResult = new MultiInstanceHelpers.CoroutineResultWrapper<NetworkObject>();
// yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.GetNetworkObjectByRepresentation((x => x.IsPlayerObject && x.OwnerClientId == m_ClientNetworkManagers[0].LocalClientId), m_ServerNetworkManager, serverClientPlayerResult));
// var serverPlayer = serverClientPlayerResult.Result.gameObject;
//
// // This is the *CLIENT VERSION* of the *CLIENT PLAYER*
// var clientClientPlayerResult = new MultiInstanceHelpers.CoroutineResultWrapper<NetworkObject>();
// yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.GetNetworkObjectByRepresentation((x => x.IsPlayerObject && x.OwnerClientId == m_ClientNetworkManagers[0].LocalClientId), m_ClientNetworkManagers[0], clientClientPlayerResult));
// var clientPlayer = clientClientPlayerResult.Result.gameObject;
//
// Assert.IsNotNull(serverPlayer);
// Assert.IsNotNull(clientPlayer);
//
// int waitFor = Time.frameCount + 2;
// yield return new WaitUntil(() => Time.frameCount >= waitFor);
//
// TestKinematicSetCorrectly(clientPlayer, serverPlayer);
//
//
// // give server ownership over the player
//
// serverPlayer.GetComponent<NetworkObject>().ChangeOwnership(m_ServerNetworkManager.ServerClientId);
//
// yield return null;
// yield return null;
//
// // server should now be able to commit to transform
// TestKinematicSetCorrectly(serverPlayer, clientPlayer);
//
// // return ownership to client
// serverPlayer.GetComponent<NetworkObject>().ChangeOwnership(m_ClientNetworkManagers[0].LocalClientId);
// yield return null;
// yield return null;
//
// // client should again be able to commit
// TestKinematicSetCorrectly(clientPlayer, serverPlayer);
// }
//
//
//
// private void TestKinematicSetCorrectly(GameObject canCommitPlayer, GameObject canNotCommitPlayer)
// {
//
// // can commit player has authority and should have a kinematic mode of false (or true in case body was already kinematic).
// Assert.True(canCommitPlayer.GetComponent<Rigidbody2D>().isKinematic == Kinematic);
//
// // can not commit player has no authority and should have a kinematic mode of true
// Assert.True(canNotCommitPlayer.GetComponent<Rigidbody2D>().isKinematic);
// }
// }
// }

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
// using System.Collections;
// using NUnit.Framework;
// using Unity.Netcode.Components;
// using Unity.Netcode.Samples;
// using UnityEngine;
// using UnityEngine.TestTools;
//
// // Tests for ClientNetworkTransform (CNT) + NetworkRigidbody2D. This test is in TestProject because it needs access to ClientNetworkTransform
// namespace Unity.Netcode.RuntimeTests.Physics
// {
// public class NetworkRigidbody2DDynamicCntTest : NetworkRigidbody2DCntTestBase
// {
// public override bool Kinematic => false;
// }
//
// public class NetworkRigidbody2DKinematicCntTest : NetworkRigidbody2DCntTestBase
// {
// public override bool Kinematic => true;
// }
//
// public abstract class NetworkRigidbody2DCntTestBase : BaseMultiInstanceTest
// {
// protected override int NbClients => 1;
//
// public abstract bool Kinematic { get; }
//
// [UnitySetUp]
// public override IEnumerator Setup()
// {
// yield return StartSomeClientsAndServerWithPlayers(true, NbClients, playerPrefab =>
// {
// playerPrefab.AddComponent<ClientNetworkTransform>();
// playerPrefab.AddComponent<Rigidbody2D>();
// playerPrefab.AddComponent<NetworkRigidbody2D>();
// playerPrefab.GetComponent<Rigidbody2D>().isKinematic = Kinematic;
// });
// }
//
// /// <summary>
// /// Tests that a server can destroy a NetworkObject and that it gets despawned correctly.
// /// </summary>
// /// <returns></returns>
// [UnityTest]
// public IEnumerator TestRigidbodyKinematicEnableDisable()
// {
// // This is the *SERVER VERSION* of the *CLIENT PLAYER*
// var serverClientPlayerResult = new MultiInstanceHelpers.CoroutineResultWrapper<NetworkObject>();
// yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.GetNetworkObjectByRepresentation((x => x.IsPlayerObject && x.OwnerClientId == m_ClientNetworkManagers[0].LocalClientId), m_ServerNetworkManager, serverClientPlayerResult));
// var serverPlayer = serverClientPlayerResult.Result.gameObject;
//
// // This is the *CLIENT VERSION* of the *CLIENT PLAYER*
// var clientClientPlayerResult = new MultiInstanceHelpers.CoroutineResultWrapper<NetworkObject>();
// yield return MultiInstanceHelpers.Run(MultiInstanceHelpers.GetNetworkObjectByRepresentation((x => x.IsPlayerObject && x.OwnerClientId == m_ClientNetworkManagers[0].LocalClientId), m_ClientNetworkManagers[0], clientClientPlayerResult));
// var clientPlayer = clientClientPlayerResult.Result.gameObject;
//
// Assert.IsNotNull(serverPlayer);
// Assert.IsNotNull(clientPlayer);
//
// int waitFor = Time.frameCount + 2;
// yield return new WaitUntil(() => Time.frameCount >= waitFor);
//
// TestKinematicSetCorrectly(clientPlayer, serverPlayer);
//
// // despawn the server player
// serverPlayer.GetComponent<NetworkObject>().Despawn(false);
//
// yield return null;
// yield return null;
// Assert.IsTrue(clientPlayer == null); // safety check that object is actually despawned.
// }
//
// private void TestKinematicSetCorrectly(GameObject canCommitPlayer, GameObject canNotCommitPlayer)
// {
//
// // can commit player has authority and should have a kinematic mode of false (or true in case body was already kinematic).
// Assert.True(canCommitPlayer.GetComponent<Rigidbody2D>().isKinematic == Kinematic);
//
// // can not commit player has no authority and should have a kinematic mode of true
// Assert.True(canNotCommitPlayer.GetComponent<Rigidbody2D>().isKinematic);
// }
// }
// }

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading