From d8205f161a0f1a71f88df2a7ad8b4f0f2178a3f4 Mon Sep 17 00:00:00 2001 From: NoelStephensUnity Date: Mon, 2 Jun 2025 12:47:07 -0500 Subject: [PATCH 1/5] update Adding entry to transports section that covers using SinglePlayerTransport. --- docs/advanced-topics/transports.md | 88 ++++++++++++++++++ .../SinglePlayerTransport_AddComponent.png | Bin 0 -> 67174 bytes 2 files changed, 88 insertions(+) create mode 100644 static/img/transport/SinglePlayerTransport_AddComponent.png diff --git a/docs/advanced-topics/transports.md b/docs/advanced-topics/transports.md index cc9dbe8dc..ff525a5a0 100644 --- a/docs/advanced-topics/transports.md +++ b/docs/advanced-topics/transports.md @@ -22,6 +22,94 @@ A transport layer can provide: Netcode's default transport Unity Transport is an entire transport layer that you can use to add multiplayer and network features to your project with or without Netcode. Refer to the [Transport documentation](https://docs-multiplayer.unity3d.com/transport/current/about/) for more information and how to [install the Transport package](https://docs-multiplayer.unity3d.com/transport/current/install/). +## SinglePlayerTransport + +Netcode for GameObjects provides a `SinglePlayerTransport` that can be used to create a local single player network session in order to simplify switching between multiplayer and single player sessions within the same project while still being able to leverage from the existing netcode scripts. The `SinglePlayerTransport` is really a "mock" transport that assures full `NetworkTransport` functionality while having zero transport dependencies. + +### Setting up a single player session +In addition to your default network transport, you will want to add the `SinglePlayerTransport` to the `NetworkManager` `GameObject` (or child of). +![image](/img/transport/SinglePlayerTransport_AddComponent.png) + +In order to start a single player session you must make sure to assign the `SinglePlayerTransport` to the `NetworkManager.NetworkConfig.NetworkTransport` configuration property using script. +As an example: + +```csharp +using Unity.Netcode; +using Unity.Netcode.Transports.UTP; +using Unity.Netcode.Transports.SinglePlayer; +using UnityEngine; + +public class ExtendedNetworkManager : NetworkManager +{ + private UnityTransport m_UnityTransport; + private SinglePlayerTransport m_SinglePlayerTransport; + + private void Awake() + { + m_UnityTransport = GetComponent(); + m_SinglePlayerTransport = GetComponent(); + } + + public void StartSinglePlayer() + { + // Use the single player transport when starting a single player session. + NetworkConfig.NetworkTransport = m_SinglePlayerTransport; + if (!StartHost()) + { + NetworkLog.LogError("Failed to start single player session!"); + } + } + + public void StartHostedSession() + { + // Use the network transport when starting a multiplayer session. + NetworkConfig.NetworkTransport = m_UnityTransport; + if (!StartHost()) + { + NetworkLog.LogError("Failed to start hosted session!"); + } + } +} +``` + +From the above script, when starting a single player session the `SinglePlayerTransport` is assigned to the `NetworkConfig.NetworkTransport` and when starting a hosted multiplayer session the `UnityTransport` is assigned. + +### Single player limitations + +When running a single player session, you should take any netcode script into consideration that requires an actual multiplayer session to exist. + +#### RPC considerations +You can invoke any RPC that includes: + +- The host's client. +- The host's server. +- `SendTo` targets that will be invoked locally: + - `SendTo.Me` + - `SendTo.Server` + - `SendTo.Everyone` + - `SendTo.Authority` + - `SendTo.Owner` + - `ClientsAndHost` + - `SpecifiedInParams`: As long as it is targeting the `NetworkManager.LocalClientId`. +- `SendTo` targets that will **not be** invoked locally: + - `SendTo.NotOwner` + - `SendTo.NotServer` + - `SendTo.NotMe` + - `SendTo.NotAuthority` + - `SpecifiedInParams`: Anything not targeting the `NetworkManager.LocalClientId` will not be invoked locally. + +#### NetworkVariable considerations + +This should work as expected as the host will always be both the server and the owner of anything spawned. This means write permissions, whether server or owner, should not be an issue. + +#### Distributed authority considerations + +To start a single player session using the distributed authority network topology you should: +- Keep your network topology setting set to distributed authority. +- Set the `NetworkConfig.NetworkTransport` to the `SinglePlayerTransport` component. +- Start as a host. + + ## Unity's UNet transport layer API UNet is a deprecated solution that is no longer supported after Unity 2022.2. Unity Transport Package is the default transport for Netcode for GameObjects. We recommend transitioning to Unity Transport as soon as possible. diff --git a/static/img/transport/SinglePlayerTransport_AddComponent.png b/static/img/transport/SinglePlayerTransport_AddComponent.png new file mode 100644 index 0000000000000000000000000000000000000000..39a06fce34f3e4fb68443ba2201d2d91dce1f647 GIT binary patch literal 67174 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/_+jVt+ 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 literal 0 HcmV?d00001 From 5f3d75f3d74b128840adee44e0513155a8bd0403 Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Tue, 3 Jun 2025 11:17:16 -0500 Subject: [PATCH 2/5] Update docs/advanced-topics/transports.md Co-authored-by: Amy Reeve --- docs/advanced-topics/transports.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/advanced-topics/transports.md b/docs/advanced-topics/transports.md index ff525a5a0..ca3c3c5dd 100644 --- a/docs/advanced-topics/transports.md +++ b/docs/advanced-topics/transports.md @@ -22,9 +22,9 @@ A transport layer can provide: Netcode's default transport Unity Transport is an entire transport layer that you can use to add multiplayer and network features to your project with or without Netcode. Refer to the [Transport documentation](https://docs-multiplayer.unity3d.com/transport/current/about/) for more information and how to [install the Transport package](https://docs-multiplayer.unity3d.com/transport/current/install/). -## SinglePlayerTransport +## `SinglePlayerTransport` -Netcode for GameObjects provides a `SinglePlayerTransport` that can be used to create a local single player network session in order to simplify switching between multiplayer and single player sessions within the same project while still being able to leverage from the existing netcode scripts. The `SinglePlayerTransport` is really a "mock" transport that assures full `NetworkTransport` functionality while having zero transport dependencies. +Netcode for GameObjects provides a `SinglePlayerTransport` that you can use to create a local single player network session. This simplifies switching between multiplayer and single player sessions within the same project, while still being able to use existing netcode scripts. The `SinglePlayerTransport` is a effectively a mock transport that ensures full `NetworkTransport` functionality without any transport dependencies. ### Setting up a single player session In addition to your default network transport, you will want to add the `SinglePlayerTransport` to the `NetworkManager` `GameObject` (or child of). From 2534a486d2adcbb70f738038cf1e9935cbbb5f18 Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Tue, 3 Jun 2025 11:17:32 -0500 Subject: [PATCH 3/5] Update docs/advanced-topics/transports.md Co-authored-by: Amy Reeve --- docs/advanced-topics/transports.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/advanced-topics/transports.md b/docs/advanced-topics/transports.md index ca3c3c5dd..ce7a987bc 100644 --- a/docs/advanced-topics/transports.md +++ b/docs/advanced-topics/transports.md @@ -26,12 +26,15 @@ Netcode's default transport Unity Transport is an entire transport layer that yo Netcode for GameObjects provides a `SinglePlayerTransport` that you can use to create a local single player network session. This simplifies switching between multiplayer and single player sessions within the same project, while still being able to use existing netcode scripts. The `SinglePlayerTransport` is a effectively a mock transport that ensures full `NetworkTransport` functionality without any transport dependencies. -### Setting up a single player session -In addition to your default network transport, you will want to add the `SinglePlayerTransport` to the `NetworkManager` `GameObject` (or child of). +### Set up a single player session + +In addition to your default network transport, you need to add the `SinglePlayerTransport` to the `NetworkManager` `GameObject` (or child of). + ![image](/img/transport/SinglePlayerTransport_AddComponent.png) -In order to start a single player session you must make sure to assign the `SinglePlayerTransport` to the `NetworkManager.NetworkConfig.NetworkTransport` configuration property using script. -As an example: +To start a single player session, assign the `SinglePlayerTransport` to the `NetworkManager.NetworkConfig.NetworkTransport` configuration property using a script. + +For example: ```csharp using Unity.Netcode; From acab31762e74012fd1b84bf42eedfc313ca48172 Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Tue, 3 Jun 2025 11:17:48 -0500 Subject: [PATCH 4/5] Update docs/advanced-topics/transports.md Co-authored-by: Amy Reeve --- docs/advanced-topics/transports.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/advanced-topics/transports.md b/docs/advanced-topics/transports.md index ce7a987bc..c5dba71cd 100644 --- a/docs/advanced-topics/transports.md +++ b/docs/advanced-topics/transports.md @@ -75,7 +75,7 @@ public class ExtendedNetworkManager : NetworkManager } ``` -From the above script, when starting a single player session the `SinglePlayerTransport` is assigned to the `NetworkConfig.NetworkTransport` and when starting a hosted multiplayer session the `UnityTransport` is assigned. +As shown in the script above, when starting a single player session the `SinglePlayerTransport` is assigned to the `NetworkConfig.NetworkTransport`, and when starting a hosted multiplayer session the `UnityTransport` is assigned. ### Single player limitations From 66ef5ded4f0ad562c573e3e691d98d43bd7fb6a4 Mon Sep 17 00:00:00 2001 From: Noel Stephens Date: Tue, 3 Jun 2025 11:17:56 -0500 Subject: [PATCH 5/5] Update docs/advanced-topics/transports.md Co-authored-by: Amy Reeve --- docs/advanced-topics/transports.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/advanced-topics/transports.md b/docs/advanced-topics/transports.md index c5dba71cd..55521e10c 100644 --- a/docs/advanced-topics/transports.md +++ b/docs/advanced-topics/transports.md @@ -103,7 +103,7 @@ You can invoke any RPC that includes: #### NetworkVariable considerations -This should work as expected as the host will always be both the server and the owner of anything spawned. This means write permissions, whether server or owner, should not be an issue. +NetworkVariables should work as expected because the host will always be both the server and the owner of anything spawned. This means that write permissions, whether server or owner, should not be an issue. #### Distributed authority considerations