Table of Contents

Class NetworkSandbox

Namespace
Netick
Assembly
Netick.Unity.dll
public class NetworkSandbox : MonoBehaviour, IGameEngine
Inheritance
Object
Component
Behaviour
MonoBehaviour
NetworkSandbox
Implements
Inherited Members
MonoBehaviour.IsInvoking()
MonoBehaviour.CancelInvoke()
MonoBehaviour.StopCoroutine(Coroutine)
MonoBehaviour.StopAllCoroutines()
MonoBehaviour.destroyCancellationToken
MonoBehaviour.useGUILayout
MonoBehaviour.runInEditMode
Behaviour.enabled
Behaviour.isActiveAndEnabled
Component.GetComponent<T>()
Component.TryGetComponent<T>(out T)
Component.GetComponentInChildren<T>()
Component.GetComponentsInChildren<T>()
Component.GetComponentInParent<T>()
Component.GetComponentsInParent<T>()
Component.GetComponents<T>()
Component.transform
Component.gameObject
Component.tag
Object.GetInstanceID()
Object.GetHashCode()
Object.Instantiate(Object, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion, Transform)
Object.Instantiate(Object)
Object.Instantiate(Object, Transform)
Object.Instantiate<T>(T)
Object.Instantiate<T>(T, Vector3, Quaternion)
Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
Object.Instantiate<T>(T, Transform)
Object.Destroy(Object)
Object.DestroyImmediate(Object)
Object.DontDestroyOnLoad(Object)
Object.DestroyObject(Object)
Object.FindObjectsOfType<T>()
Object.FindObjectsByType<T>(FindObjectsSortMode)
Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
Object.FindObjectOfType<T>()
Object.FindFirstObjectByType<T>()
Object.FindAnyObjectByType<T>()
Object.FindFirstObjectByType<T>(FindObjectsInactive)
Object.FindAnyObjectByType<T>(FindObjectsInactive)
Object.ToString()
Object.name
Object.hideFlags
Extension Methods

Constructors

NetworkSandbox()

public NetworkSandbox()

Fields

ClientTransform

public Transform ClientTransform

Field Value

Transform

Radius

public float Radius

Field Value

float

Properties

Config

Configuration data for Netick.

public NetickConfig Config { get; }

Property Value

NetickConfig

ConnectedClients

A list containing all connected clients currently.

Note: if you want the clients + the server, use ConnectedPlayers.

public NetickList<ServerConnection> ConnectedClients { get; }

Property Value

NetickList<ServerConnection>

ConnectedPlayers

A list containing all connected clients currently, in addition to the server.

Note: if you only want the clients, use ConnectedClients.

public NetickList<NetworkPlayer> ConnectedPlayers { get; }

Property Value

NetickList<NetworkPlayer>

ConnectedServer

The server the client is connected to.

public NetworkConnection ConnectedServer { get; }

Property Value

NetworkConnection

CurrentRpcCaller

public NetworkPlayer CurrentRpcCaller { get; }

Property Value

NetworkPlayer

CurrentRpcSource

Always always returns null except when called inside the body of an RPC method, it returns the NetworkConnection we are executing RPCs from.

public NetworkConnection CurrentRpcSource { get; }

Property Value

NetworkConnection

DeltaTime

public float DeltaTime { get; }

Property Value

float

Engine

public NetickEngine Engine { get; }

Property Value

NetickEngine

FixedDeltaTime

Time period between network simulation steps. Same as UnityEngine.Time.fixedDeltaTime

public float FixedDeltaTime { get; }

Property Value

float

HasLoadScene

public bool HasLoadScene { get; set; }

Property Value

bool

InKBps

Incoming data in kilobytes per second (KBps).

public float InKBps { get; }

Property Value

float

InputEnabled

public bool InputEnabled { get; set; }

Property Value

bool

InterpolationDelay

[Client Only] Interpolation delay in seconds.

public float InterpolationDelay { get; }

Property Value

float

IsClient

Returns true if this NetworkSandbox is a client.

public bool IsClient { get; }

Property Value

bool

IsConnected

[Client Only] Returns true if this client is currently connected to a server.

public bool IsConnected { get; }

Property Value

bool

IsResimulating

Returns true if we are currently resimulating a previous input/tick of the past. On the server, it always returns false since only the clients resimulate.

public bool IsResimulating { get; }

Property Value

bool

IsServer

Returns true if this NetworkSandbox is the server.

public bool IsServer { get; }

Property Value

bool

IsVisiable

public bool IsVisiable { get; set; }

Property Value

bool

LocalInterpolation

public LocalInterpolation LocalInterpolation { get; }

Property Value

LocalInterpolation

LocalPlayer

This player.

public NetworkPlayer LocalPlayer { get; }

Property Value

NetworkPlayer

Name

public string Name { get; }

Property Value

string

NetworkTime

public float NetworkTime { get; }

Property Value

float

Objects

A list containing all simulated/registered network objects [NetworkObject] currently.

Note: to get a network object by id, use: TryGetObject(int, out NetworkObject)

public ObjectList Objects { get; }

Property Value

ObjectList

OutKBps

Outgoing data in kilobytes per second (KBps).

public float OutKBps { get; }

Property Value

float

Physics

The UnityEngine.PhysicsScene associated with this NetworkSandbox. Always use this to perform physics queries inside the sandbox instead of UnityEngine.Physics.

public PhysicsScene Physics { get; }

Property Value

PhysicsScene

Physics2D

The UnityEngine.PhysicsScene2D associated with this NetworkSandbox. Always use this to perform physics queries inside the sandbox instead of UnityEngine.Physics2D.

public PhysicsScene2D Physics2D { get; }

Property Value

PhysicsScene2D

RTT

[Client Only] The round-trip time (RTT) of the client in seconds.

public double RTT { get; }

Property Value

double

RemoteInterpolation

public RemoteInterpolation RemoteInterpolation { get; }

Property Value

RemoteInterpolation

ResimulationStep

public int ResimulationStep { get; }

Property Value

int

Resimulations

public int Resimulations { get; }

Property Value

int

ScaledFixedDeltaTime

public float ScaledFixedDeltaTime { get; }

Property Value

float

Scene

The UnityEngine.SceneManagement.Scene associated with this NetworkSandbox.

public Scene Scene { get; }

Property Value

Scene

SceneBuildIndex

public int SceneBuildIndex { get; }

Property Value

int

StartMode

public StartMode StartMode { get; }

Property Value

StartMode

Tick

Current simulation tick.

On the server, it's always going forward/increasing.

On the client, during resimulations it returns the current resimulated tick. To check for resimulations, use IsResimulating.

public Tick Tick { get; }

Property Value

Tick

Timer

public SimulationClock Timer { get; }

Property Value

SimulationClock

UserObject

Use this to associate an object with this sandbox.

public object UserObject { get; set; }

Property Value

object

Methods

Connect(int, string, byte[], int)

public void Connect(int port, string ip, byte[] connectionData = null, int connectionDataLength = 0)

Parameters

port int
ip string
connectionData byte[]
connectionDataLength int

CreateMatch(string)

[Server Only] Creates a match. Only functional if the low-level transport has support for matchmaking.

public void CreateMatch(string name)

Parameters

name string

Name of the match.

Destroy(NetworkObject)

Destroys a network object. Only call this on the server or on the client for spawn-predicted objects which have -1 Ids.

Note: never call this on a child NetworkObject of the original prefab, only the root of the prefab.

public void Destroy(NetworkObject obj)

Parameters

obj NetworkObject

The object to destroy.

DestroyPool(GameObject)

public void DestroyPool(GameObject networkedPrefab)

Parameters

networkedPrefab GameObject

DisableComponent(Component)

public void DisableComponent(Component component)

Parameters

component Component

DisconnectFromServer()

[Client Only] Disconnects this client from the server.

public void DisconnectFromServer()

EnableComponent(Component)

public void EnableComponent(Component component)

Parameters

component Component

FindGameObjectWithTag(string, bool)

public GameObject FindGameObjectWithTag(string tag, bool activeOnly = true)

Parameters

tag string
activeOnly bool

Returns

GameObject

FindGameObjectsWithTag(string, bool)

public List<GameObject> FindGameObjectsWithTag(string tag, bool activeOnly = true)

Parameters

tag string
activeOnly bool

Returns

List<GameObject>

FindGameObjectsWithTag(string, List<GameObject>, bool)

public List<GameObject> FindGameObjectsWithTag(string tag, List<GameObject> results, bool activeOnly = true)

Parameters

tag string
results List<GameObject>
activeOnly bool

Returns

List<GameObject>

FindObjectOfType<T>(bool)

public T FindObjectOfType<T>(bool activeOnly = true) where T : Component

Parameters

activeOnly bool

Returns

T

Type Parameters

T

FindObjectsOfType<T>(bool)

public List<T> FindObjectsOfType<T>(bool activeOnly = true) where T : Component

Parameters

activeOnly bool

Returns

List<T>

Type Parameters

T

FindObjectsOfType<T>(List<T>, bool)

public void FindObjectsOfType<T>(List<T> results, bool activeOnly = true) where T : Component

Parameters

results List<T>
activeOnly bool

Type Parameters

T

GetInput<T>()

public T GetInput<T>() where T : unmanaged

Returns

T

Type Parameters

T

GetObject(int)

Gets the NetworkObject with the specified id. Returns null in case no object with that id exists.

public NetworkObject GetObject(int id)

Parameters

id int

The id of the NetworkObject

Returns

NetworkObject

GetPrefab(string)

Gets a Network Prefab by name.

Note: this causes GC.

public GameObject GetPrefab(string name)

Parameters

name string

Returns

GameObject

The Network Prefab

Hide()

protected void Hide()

InitializePool(GameObject, int, bool)

Initializes the pool for the specified prefab. After this method has been called for a certain prefab, all instances of that prefab will be recycled and reset when created/destroyed.

Note: this method should only be called on OnStartup(NetworkSandbox), in other words, just after Netick has been started.

public void InitializePool(GameObject networkedPrefab, int preloadedAmount, bool hideInactiveMembers = false)

Parameters

networkedPrefab GameObject

Prefab to enable pooling for.

preloadedAmount int

How many instances to be preloaded.

hideInactiveMembers bool

Pass true to hide inactive pool members.

Kick(ServerConnection)

[Server Only] Disconnects a client from the server.

public void Kick(ServerConnection client)

Parameters

client ServerConnection

The client to be disconnected.

Log(object)

public void Log(object message)

Parameters

message object

LogError(object)

public void LogError(object message)

Parameters

message object

LogWarning(object)

public void LogWarning(object message)

Parameters

message object

NetworkInstantiate(GameObject, Vector3, Quaternion, NetworkPlayer, SpawnPredictionKey)

Instantiates a network prefab.

Commonly, this should only be called on the server, since only the server can instantiate network prefabs. However, the client can also call this to spawn-predict a prefab by providing a spawn key which must be the same on the server and client when this method is called. Read the docs to learn more about how to use spawn-prediction.

Note: make sure the prefab has been registered.

Note: the specified input source will be given to every NetworkObject child of this prefab.

public NetworkObject NetworkInstantiate(GameObject prefab, Vector3 position, Quaternion rotation, NetworkPlayer inputSource = null, SpawnPredictionKey predictedSpawnKey = default)

Parameters

prefab GameObject

The prefab to be instantiated.

position Vector3

Position of the instantiated object.

rotation Quaternion

Rotation of the instantiated object.

inputSource NetworkPlayer

Input source of the instantiated object.

predictedSpawnKey SpawnPredictionKey

Returns

NetworkObject

NetworkUpdate()

public void NetworkUpdate()

OnSceneSwitchStart(int)

public void OnSceneSwitchStart(int sceneBuildIndex)

Parameters

sceneBuildIndex int

RefreshMatchList()

Requests an update to the match list. Only functional if the low-level transport has support for matchmaking.

public void RefreshMatchList()

SetComponentEnabled(Component, bool)

public void SetComponentEnabled(Component component, bool enabled)

Parameters

component Component
enabled bool

SetInput<T>(T)

public void SetInput<T>(T input) where T : unmanaged

Parameters

input T

Type Parameters

T

Show()

protected void Show()

SwitchScene(int)

[Server Only] Switches to a different scene. This must be called instead of UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(int) or its variations.

public void SwitchScene(int sceneBuildIndex)

Parameters

sceneBuildIndex int

Index of the desired scene.

TickToTime(Tick)

Converts tick to time in seconds.

public float TickToTime(Tick tick)

Parameters

tick Tick

Returns

float

TickToTime(float)

Converts tick to time in seconds.

public float TickToTime(float tick)

Parameters

tick float

Returns

float

TryGetBehaviour<T>(int, out T)

Trys to get the NetworkBehaviour of a NetworkObject with the specified id.

public bool TryGetBehaviour<T>(int id, out T behaviour) where T : NetworkBehaviour

Parameters

id int

The id of the network object

behaviour T

Returns

bool

Type Parameters

T

TryGetObject(int, out NetworkObject)

Trys to get the NetworkObject with the specified id.

public bool TryGetObject(int id, out NetworkObject obj)

Parameters

id int

The id of the NetworkObject

obj NetworkObject

Returns

bool