Class NetworkSandbox
- Namespace
- Netick
- Assembly
- Netick.Unity.dll
public class NetworkSandbox : MonoBehaviour, IGameEngine
- Inheritance
-
ObjectComponentBehaviourMonoBehaviourNetworkSandbox
- Implements
- Inherited Members
-
MonoBehaviour.IsInvoking()MonoBehaviour.CancelInvoke()MonoBehaviour.StopCoroutine(Coroutine)MonoBehaviour.StopAllCoroutines()MonoBehaviour.destroyCancellationTokenMonoBehaviour.useGUILayoutMonoBehaviour.runInEditModeBehaviour.enabledBehaviour.isActiveAndEnabledComponent.GetComponent<T>()Component.TryGetComponent<T>(out T)Component.GetComponentInChildren<T>()Component.GetComponentsInChildren<T>()Component.GetComponentInParent<T>()Component.GetComponentsInParent<T>()Component.GetComponents<T>()Component.transformComponent.gameObjectComponent.tagObject.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.nameObject.hideFlags
- Extension Methods
Constructors
NetworkSandbox()
public NetworkSandbox()
Fields
ClientTransform
public Transform ClientTransform
Field Value
- Transform
Radius
public float Radius
Field Value
Properties
Config
Configuration data for Netick.
public NetickConfig Config { get; }
Property Value
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
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
ConnectedServer
The server the client is connected to.
public NetworkConnection ConnectedServer { get; }
Property Value
CurrentRpcCaller
public NetworkPlayer CurrentRpcCaller { get; }
Property Value
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
DeltaTime
public float DeltaTime { get; }
Property Value
Engine
public NetickEngine Engine { get; }
Property Value
FixedDeltaTime
Time period between network simulation steps. Same as UnityEngine.Time.fixedDeltaTime
public float FixedDeltaTime { get; }
Property Value
HasLoadScene
public bool HasLoadScene { get; set; }
Property Value
InKBps
Incoming data in kilobytes per second (KBps).
public float InKBps { get; }
Property Value
InputEnabled
public bool InputEnabled { get; set; }
Property Value
InterpolationDelay
[Client Only] Interpolation delay in seconds.
public float InterpolationDelay { get; }
Property Value
IsClient
Returns true if this NetworkSandbox is a client.
public bool IsClient { get; }
Property Value
IsConnected
[Client Only] Returns true if this client is currently connected to a server.
public bool IsConnected { get; }
Property Value
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
IsServer
Returns true if this NetworkSandbox is the server.
public bool IsServer { get; }
Property Value
IsVisiable
public bool IsVisiable { get; set; }
Property Value
LocalInterpolation
public LocalInterpolation LocalInterpolation { get; }
Property Value
LocalPlayer
This player.
public NetworkPlayer LocalPlayer { get; }
Property Value
Name
public string Name { get; }
Property Value
NetworkTime
public float NetworkTime { get; }
Property Value
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
OutKBps
Outgoing data in kilobytes per second (KBps).
public float OutKBps { get; }
Property Value
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
RemoteInterpolation
public RemoteInterpolation RemoteInterpolation { get; }
Property Value
ResimulationStep
public int ResimulationStep { get; }
Property Value
Resimulations
public int Resimulations { get; }
Property Value
ScaledFixedDeltaTime
public float ScaledFixedDeltaTime { get; }
Property Value
Scene
The UnityEngine.SceneManagement.Scene associated with this NetworkSandbox.
public Scene Scene { get; }
Property Value
- Scene
SceneBuildIndex
public int SceneBuildIndex { get; }
Property Value
StartMode
public StartMode StartMode { get; }
Property Value
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
Timer
public SimulationClock Timer { get; }
Property Value
UserObject
Use this to associate an object with this sandbox.
public object UserObject { get; set; }
Property Value
Methods
Connect(int, string, byte[], int)
public void Connect(int port, string ip, byte[] connectionData = null, int connectionDataLength = 0)
Parameters
CreateMatch(string)
[Server Only] Creates a match. Only functional if the low-level transport has support for matchmaking.
public void CreateMatch(string name)
Parameters
namestringName 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
objNetworkObjectThe object to destroy.
DestroyPool(GameObject)
public void DestroyPool(GameObject networkedPrefab)
Parameters
networkedPrefabGameObject
DisableComponent(Component)
public void DisableComponent(Component component)
Parameters
componentComponent
DisconnectFromServer()
[Client Only] Disconnects this client from the server.
public void DisconnectFromServer()
EnableComponent(Component)
public void EnableComponent(Component component)
Parameters
componentComponent
FindGameObjectWithTag(string, bool)
public GameObject FindGameObjectWithTag(string tag, bool activeOnly = true)
Parameters
Returns
- GameObject
FindGameObjectsWithTag(string, bool)
public List<GameObject> FindGameObjectsWithTag(string tag, bool activeOnly = true)
Parameters
Returns
- List<GameObject>
FindGameObjectsWithTag(string, List<GameObject>, bool)
public List<GameObject> FindGameObjectsWithTag(string tag, List<GameObject> results, bool activeOnly = true)
Parameters
Returns
- List<GameObject>
FindObjectOfType<T>(bool)
public T FindObjectOfType<T>(bool activeOnly = true) where T : Component
Parameters
activeOnlybool
Returns
- T
Type Parameters
T
FindObjectsOfType<T>(bool)
public List<T> FindObjectsOfType<T>(bool activeOnly = true) where T : Component
Parameters
activeOnlybool
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
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
idintThe id of the NetworkObject
Returns
GetPrefab(string)
Gets a Network Prefab by name.
Note: this causes GC.
public GameObject GetPrefab(string name)
Parameters
namestring
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
networkedPrefabGameObjectPrefab to enable pooling for.
preloadedAmountintHow many instances to be preloaded.
hideInactiveMembersboolPass true to hide inactive pool members.
Kick(ServerConnection)
[Server Only] Disconnects a client from the server.
public void Kick(ServerConnection client)
Parameters
clientServerConnectionThe client to be disconnected.
Log(object)
public void Log(object message)
Parameters
messageobject
LogError(object)
public void LogError(object message)
Parameters
messageobject
LogWarning(object)
public void LogWarning(object message)
Parameters
messageobject
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
prefabGameObjectThe prefab to be instantiated.
positionVector3Position of the instantiated object.
rotationQuaternionRotation of the instantiated object.
inputSourceNetworkPlayerInput source of the instantiated object.
predictedSpawnKeySpawnPredictionKey
Returns
NetworkUpdate()
public void NetworkUpdate()
OnSceneSwitchStart(int)
public void OnSceneSwitchStart(int sceneBuildIndex)
Parameters
sceneBuildIndexint
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
componentComponentenabledbool
SetInput<T>(T)
public void SetInput<T>(T input) where T : unmanaged
Parameters
inputT
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
sceneBuildIndexintIndex of the desired scene.
TickToTime(Tick)
Converts tick to time in seconds.
public float TickToTime(Tick tick)
Parameters
tickTick
Returns
TickToTime(float)
Converts tick to time in seconds.
public float TickToTime(float tick)
Parameters
tickfloat
Returns
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
idintThe id of the network object
behaviourT
Returns
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
idintThe id of the NetworkObject
objNetworkObject