Skip to content

Commit a63fde7

Browse files
feat: Adding ClientNetworkAnimator to samples utilities package [MTT-5025] (#780)
1 parent 69cb3a6 commit a63fde7

File tree

4 files changed

+39
-1
lines changed

4 files changed

+39
-1
lines changed

Packages/com.unity.multiplayer.samples.coop/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Multiplayer Samples Co-op Changelog
22

3+
## [unreleased] - aaaa-mm-dd
4+
5+
### Changed
6+
* ClientNetworkAnimator component has been added to the Samples Utilities Package. This allows for authority on Animators to be passed onto clients, meaning animations will be client-driven.
7+
38
## [1.4.1] - 2022-10-25
49

510
### Changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using Unity.Netcode.Components;
2+
using UnityEngine;
3+
4+
namespace Unity.Multiplayer.Samples.Utilities.ClientAuthority
5+
{
6+
/// <summary>
7+
/// Used for syncing an animator with client side changes. This includes host. Pure server as owner isn't supported
8+
/// by this. Please use NetworkAnimator for animations that'll always be owned by the server.
9+
/// </summary>
10+
[DisallowMultipleComponent]
11+
public class ClientNetworkAnimator : NetworkAnimator
12+
{
13+
/// <summary>
14+
/// Used to determine who can write to this animator. Owner client only.
15+
/// This imposes state to the server. This is putting trust on your clients. Make sure no security-sensitive features use this animator.
16+
/// </summary>
17+
protected override bool OnIsServerAuthoritative()
18+
{
19+
return false;
20+
}
21+
}
22+
}

Packages/com.unity.multiplayer.samples.coop/Utilities/Net/ClientAuthority/ClientNetworkAnimator.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ Running the game over internet currently requires setting up a relay.
199199
* Spawner for in-scene objects - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/NetworkObjectSpawner.cs ](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/NetworkObjectSpawner.cs)
200200
* Session manager for reconnection - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/SessionManager.cs ](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/SessionManager.cs)
201201
* Relay utils - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/UnityRelayUtilities.cs ](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/UnityRelayUtilities.cs)
202-
* Client authority - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/ClientAuthority/ClientNetworkTransform.cs ](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/ClientAuthority/ClientNetworkTransform.cs)
202+
* Client authority - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/ClientAuthority/](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/ClientAuthority/)
203203
* Scene utils with synced loading screens - [Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/ ](Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/)
204204
* RNSM custom config - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/CustomNetStatsMonitorConfiguration.asset ](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/CustomNetStatsMonitorConfiguration.asset)
205205
* ParrelSync - [ Packages/manifest.json ](Packages/manifest.json)

0 commit comments

Comments
 (0)