You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jul 23, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: docs/basics/networkobject.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,8 @@ id: networkobject
3
3
title: NetworkObject
4
4
---
5
5
6
+
A NetworkObject is a [GameObject](https://docs.unity3d.com/Manual/GameObjects.html) with a NetworkObject component and at least one [NetworkBehaviour](networkbehaviour.md) component, which enables the GameObject to respond to and interact with netcode.
7
+
6
8
Netcode for GameObjects' high level components, [the RPC system](../advanced-topics/messaging-system.md), [object spawning](../object-spawning), and [NetworkVariable](networkvariable.md)s all rely on there being at least two Netcode components added to a GameObject:
Copy file name to clipboardExpand all lines: docs/components/networkmanager.md
+13-8Lines changed: 13 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,9 +3,9 @@ id: networkmanager
3
3
title: NetworkManager
4
4
---
5
5
6
-
The `NetworkManager` is a required **Netcode for GameObjects (Netcode)**component that has all of your project's netcoderelated settings. Think of it as the "central netcode hub" for your netcodeenabled project.
6
+
The `NetworkManager` is a required Netcode for GameObjects component that has all of your project's netcode-related settings. Think of it as the central netcode hub for your netcode-enabled project.
7
7
8
-
###`NetworkManager` Inspector properties
8
+
## `NetworkManager` Inspector properties
9
9
10
10
-**LogLevel**: Sets the network logging level
11
11
-**PlayerPrefab**: When a Prefab is assigned, the Prefab will be instantiated as the player object and assigned to the newly connected and authorized client.
@@ -22,7 +22,7 @@ The `NetworkManager` is a required **Netcode for GameObjects (Netcode)** compone
22
22
-**Enable Scene Management**: When checked Netcode for GameObjects will handle scene management and client synchronization for you. When not checked, users will have to create their own scene management scripts and handle client synchronization.
23
23
-**Load Scene Time Out**: When Enable Scene Management is checked, this specifies the period of time the `NetworkSceneManager` will wait while a scene is being loaded asynchronously before `NetworkSceneManager` considers the load/unload scene event to have failed/timed out.
24
24
25
-
###`NetworkManager` sub-systems
25
+
## `NetworkManager` sub-systems
26
26
27
27
`NetworkManager` is also where you can find references to other Netcode related management systems:<br/>
28
28
@@ -39,7 +39,7 @@ All `NetworkManager` sub-systems are instantiated once the `NetworkManager` is s
39
39
40
40
## Starting a server, host, or client
41
41
42
-
In order to perform any netcoderelated action that involves sending messages, you must first have a server started and listening for connections with at least one client (_a server can send RPCs to itself when running as a host_) that is connected. to accomplish this, you must first start your `NetworkManager` as a server, host, or client. There are three `NetworkManager` methods you can invoke to accomplish this:
42
+
In order to perform any netcode-related action that involves sending messages, you must first have a server started and listening for connections with at least one client (_a server can send RPCs to itself when running as a host_) that is connected. To accomplish this, you must first start your `NetworkManager` as a server, host, or client. There are three `NetworkManager` methods you can invoke to accomplish this:
43
43
44
44
```csharp
45
45
NetworkManager.Singleton.StartServer(); // Starts the NetworkManager as just a server (that is, no local client).
@@ -52,7 +52,8 @@ Don't start a NetworkManager within a NetworkBehaviour's Awake method as this ca
52
52
:::
53
53
54
54
:::note
55
-
When starting a Server or joining an already started session as client, the `NetworkManager` can spawn a "Player Object" belonging to the client.
55
+
56
+
When starting a server or joining an already started session as client, the `NetworkManager` can spawn a "Player Object" belonging to the client.
56
57
57
58
For more information about player prefabs see:
58
59
-[NetworkObject Player Prefab Documentation](../basics/networkobject.md#player-objects)
@@ -61,7 +62,7 @@ Don't start a NetworkManager within a NetworkBehaviour's Awake method as this ca
61
62
62
63
## Connecting
63
64
64
-
When Starting a Client, the `NetworkManager` uses the IP and the Port provided in your `Transport` component for connecting. While you can set the IP address in the editor, many times you might want to be able to set the IP address and port during runtime.
65
+
When starting a client, the `NetworkManager` uses the IP and the Port provided in your `Transport` component for connecting. While you can set the IP address in the editor, many times you might want to be able to set the IP address and port during runtime.
65
66
66
67
The below examples use [Unity Transport](../../../transport/current/about) to show a few ways you can gain access to the `UnityTransport` component via the `NetworkManager.Singleton` to configure your project's network settings programmatically:
If you are using the same code block to configure both your server and your client and you want to configure your server to listen to all IP addresses assigned to it, then you can also pass a 'listen address' of "0.0.0.0" to the `SetConnectionData` method, like so:
@@ -125,7 +127,8 @@ The server-host attempts to wait for all client connections to close before it f
125
127
126
128
## Disconnecting clients (server only)
127
129
128
-
At times you might need to disconnect a client for various reasons without shutting down the server. To do this, you can call the `NetworkManager.DisconnectClient` method while passing the identifier of the client you wish to disconnect as the only parameter. The client identifier can be found within:
130
+
At times you might need to disconnect a client for various reasons without shutting down the server. To do this, you can call the `NetworkManager.DisconnectClient` method while passing the identifier of the client you wish to disconnect as the only parameter. The client identifier can be found within:
131
+
129
132
- The `NetworkManager.ConnectedClients` dictionary that uses the client identifier as a key and the value as the [`NetworkClient`](https://docs.unity3d.com/Packages/com.unity.netcode.gameobjects@latest?subfolder=/api/Unity.Netcode.NetworkClient.html).
130
133
- As a read only list of `NetworkClients` via the `NetworkManager.ConnectedClientsList`.
131
134
- A full list of all connected client identifiers can be accessed via `NetworkManager.ConnectedClientsIds`.
@@ -151,13 +154,15 @@ Both the client and the server can subscribe to the `NetworkManager.OnClientDisc
151
154
**When disconnect notifications are triggered:**
152
155
- Clients are notified when they're disconnected by the server.
153
156
- The server is notified when any client disconnects from the server, whether the server disconnects the client or the client disconnects itself.
154
-
- Both the server and clients are notified when their network connection is unexpectedly disconnected (network interruption)
157
+
- Both the server and clients are notified when their network connection is unexpectedly disconnected (network interruption).
155
158
156
159
**Client notification identifiers**
157
160
- On the server-side, the client identifier parameter is the identifier of the client that disconnects.
158
161
- On the client-side, the client identifier parameter is the identifier assigned to the client.
159
162
-_The exception to this is when a client is disconnected before its connection is approved._
160
163
164
+
You can also use the `NetworkManager.OnServerStopped` and `NetworkManager.OnClientStopped` callbacks to get local notifications when the server or client stops respectively.
165
+
161
166
### Connection notification manager example
162
167
163
168
Below is one example of how you can provide client connect and disconnect notifications to any type of NetworkBehaviour or MonoBehaviour derived component.
Copy file name to clipboardExpand all lines: docs/tutorials/get-started-with-ngo.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -178,7 +178,6 @@ This section guides you through testing the RPCs you added in the earlier sectio
178
178
1. Select **File** > **Build And Run**.
179
179
2. Stop the player.
180
180
3. Launch the client and server together in a terminal, as shown in [Testing the command line helper](command-line-helper.md).
181
-
* Alternatively, you can use Multiplayer Play Mode package, which lets you run multiple instances of the Unity Editor to test multiplayer functionality. Refer to [Multiplayer Play Mode](https://docs-multiplayer.unity3d.com/tools/current/mppm) to learn more.
182
181
183
182
After the client and server spawn, a log displays in the **Console** of the client and server sending RPC messages to each other.
184
183
@@ -220,6 +219,8 @@ The `NetworkObjectId` here is `2` because the host also has a NetworkObject with
220
219
221
220
:::
222
221
222
+
Alternatively, you can use the Multiplayer Play Mode package, which lets you run multiple instances of the Unity Editor to test multiplayer functionality. Refer to the [Multiplayer Play Mode documentation](https://docs-multiplayer.unity3d.com/mppm/current/about/) to learn more.
223
+
223
224
## Extend functionality with scripts
224
225
225
226
The section shows how to extend the functionality of the Hello World project with two scripts: [`HelloWorldPlayer.cs`](#the-helloworldplayercs-script) and [`HelloWorldManager.cs`](#the-helloworldmanagercs-script).
Copy file name to clipboardExpand all lines: transport/workflow-client-server-udp.md
+1-3Lines changed: 1 addition & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,9 +28,7 @@ The client-server workflow in this guide shows the subtle differences between us
28
28
29
29
A server is an endpoint that listens for incoming connection requests and sends and receives messages. This section shows creating a simple server with UTP 2.0.
30
30
31
-
Start by creating a C# script in the Unity Editor. Name the script ServerBehaviour.cs.
0 commit comments