diff --git a/Netick/Editor/Netick.CodeGen.dll b/Netick/Editor/Netick.CodeGen.dll
index 014b369..cc82c8f 100644
Binary files a/Netick/Editor/Netick.CodeGen.dll and b/Netick/Editor/Netick.CodeGen.dll differ
diff --git a/Netick/Editor/Netick.Unity.Editor.dll b/Netick/Editor/Netick.Unity.Editor.dll
index ae5d560..3a80128 100644
Binary files a/Netick/Editor/Netick.Unity.Editor.dll and b/Netick/Editor/Netick.Unity.Editor.dll differ
diff --git a/Netick/Editor/Netick.Unity.Pro.Editor.dll b/Netick/Editor/Netick.Unity.Pro.Editor.dll
index e6d97bf..09515cf 100644
Binary files a/Netick/Editor/Netick.Unity.Pro.Editor.dll and b/Netick/Editor/Netick.Unity.Pro.Editor.dll differ
diff --git a/Netick/Editor/Unity.Netick.CodeGen.dll b/Netick/Editor/Unity.Netick.CodeGen.dll
index ccb2c89..5001fa8 100644
Binary files a/Netick/Editor/Unity.Netick.CodeGen.dll and b/Netick/Editor/Unity.Netick.CodeGen.dll differ
diff --git a/Netick/Runtime/Netick.Pro.dll b/Netick/Runtime/Netick.Pro.dll
index fcd8d6f..da062b6 100644
Binary files a/Netick/Runtime/Netick.Pro.dll and b/Netick/Runtime/Netick.Pro.dll differ
diff --git a/Netick/Runtime/Netick.Unity.Pro.dll b/Netick/Runtime/Netick.Unity.Pro.dll
index 8c10575..b720465 100644
Binary files a/Netick/Runtime/Netick.Unity.Pro.dll and b/Netick/Runtime/Netick.Unity.Pro.dll differ
diff --git a/Netick/Runtime/Netick.Unity.dll b/Netick/Runtime/Netick.Unity.dll
index 03518da..92688b9 100644
Binary files a/Netick/Runtime/Netick.Unity.dll and b/Netick/Runtime/Netick.Unity.dll differ
diff --git a/Netick/Runtime/Netick.Unity.xml b/Netick/Runtime/Netick.Unity.xml
index dec8570..8626e11 100644
--- a/Netick/Runtime/Netick.Unity.xml
+++ b/Netick/Runtime/Netick.Unity.xml
@@ -237,16 +237,60 @@
The object which will become the parent of this object.
+
+
+ Handles prediction error correction smoothing for a float.
+
+
+
+
+ Handles prediction error correction smoothing for a transform.
+
+
+
+
+ Handles prediction error correction smoothing for a Vector3.
+
+
+
+
+ Handles prediction error correction smoothing for a Vector2.
+
+
+
+
+ Handles prediction error correction smoothing for a Quaternion.
+
+
This component is used to replicate the position and rotation of an object. Therefore, it’s the same as the Network Transform, the difference is that Network Rigidbody 2D must be used if you want to have client-side prediction over Box2D objects since it replicates several other properties necessary for correct prediction.
+
+
+ Represents a network-serializable reference to a of type within the networked simulation.
+ This struct stores the object and behaviour ids, allowing retrieval of the referenced behaviour from a .
+
+ The type of being referenced.
+
+
+
+ Represents a network-serializable reference to a within the networked simulation.
+ This struct stores the object network id, allowing retrieval of the referenced object from a .
+
+ The type of being referenced.
+
This component is used to replicate the position and rotation of an object. Therefore, it’s the same as the Network Transform, the difference is that Network Rigidbody must be used if you want to have client-side prediction over PhysX objects since it replicates several other properties necessary for correct prediction.
+
+
+ Executes the physics (PhysX or Box2D) simulation step during the NetworkFixedUpdate callback of Netick.
+
+
The containing this .
@@ -284,6 +328,13 @@
IMPORTANT NOTE: properties (which can be interpolated) marked with [] attribute will return interpolated values when accessed in this method.
+
+
+ Base class for all networked behaviors in Netick.
+ Inherit from this class to create custom network-synchronized logic.
+ Provides access to network state, input, and misc utility methods.
+
+
The network id of this .
@@ -309,6 +360,16 @@
Returns true if this is the owner of this Object. In this version of Netick: Server=Owner.
+
+
+ Returns true if this is the host.
+
+
+
+
+ Returns true if this is a client or the host.
+
+
Returns true if this is providing inputs to this Object.
@@ -381,6 +442,21 @@
Fetches a network input for this tick. Returns false if no input source is currently providing inputs to this Object, or when input loss occurs (in case of a remote input source).
+
+
+ Called in the client when the client becomes interested in this object.
+
+
+
+
+ Called in the client when the client becomes uninterested in this object.
+
+
+
+
+ Called in the server (or the client if it is the input source) when the input source of this Object has changed.
+
+
Called on the server when the input source of this Object has disconnected.
@@ -560,7 +636,7 @@
-
+
Retrieves the associated with the given .
@@ -626,6 +702,22 @@
+
+
+ Finds the instance associated with the specified .
+ Returns null if networking is not running or if no matching sandbox is found for the object's scene.
+
+ The to find the sandbox for.
+ The associated with the object's scene, or null if not found.
+
+
+
+ Finds the instance associated with the specified .
+ Returns null if networking is not running or if no matching sandbox is found for the object's scene.
+
+ The to find the sandbox for.
+ The associated with the object's scene, or null if not found.
+
Use this to associate an object with this sandbox.
@@ -740,7 +832,7 @@
- This player.
+ The local player (this) player of this sandbox instance.
@@ -822,53 +914,53 @@
Always always returns null except when called inside the body of an RPC method, it returns the we are executing RPCs from. Works the same as , except when the RPC is called by the local player, it returns .
-
+
Called after all NetworkFixedUpdate methods have been executed.
Note: it's called with every resimulation on the client.
-
+
Called before any NetworkFixedUpdate method have been executed.
Note: it's called with every resimulation on the client.
-
+
Called after all NetworkUpdate methods have been executed.
-
+
Called before any NetworkUpdate method have been executed.
-
+
Called after all NetworkRender methods have been executed.
-
+
Called before any NetworkRender method have been executed.
+
+
+ Use this to subscribe/unsubscribe to/from Netick events.
+
+
Gets a specific input for the next tick.
-
-
-
Sets a specific input for the next tick.
-
-
@@ -880,7 +972,7 @@
Port of the server.
RawValue sent with the connection request. Could be used to decide whether or not to allow the connection.
-
+
[Server Only] Disconnects a client from the server.
@@ -975,6 +1067,12 @@
Should we start a server too.
+
+
+ Starts Netick as a client.
+
+ The sandbox representing the client
+
Starts Netick as a client.
diff --git a/Netick/Runtime/Netick.dll b/Netick/Runtime/Netick.dll
index be6a084..d6cf1a1 100644
Binary files a/Netick/Runtime/Netick.dll and b/Netick/Runtime/Netick.dll differ
diff --git a/Netick/Runtime/Netick.xml b/Netick/Runtime/Netick.xml
index f1f4ccb..da0325b 100644
--- a/Netick/Runtime/Netick.xml
+++ b/Netick/Runtime/Netick.xml
@@ -64,7 +64,7 @@
- Represents an networked struct identifier for a .
+ Represents a networked struct identifier for a .
@@ -77,6 +77,57 @@
A networked collection.
+
+
+ Gets the number of elements contained in the queue.
+
+
+
+
+ Removes all elements from the queue.
+
+
+
+
+ Adds an item to the end of the queue if there is capacity.
+
+ The item to add.
+ true if the item was added; otherwise, false if the queue is full.
+
+
+
+ Removes and returns the item at the beginning of the queue.
+
+ The item removed from the beginning of the queue.
+ Thrown if the queue is empty.
+
+
+
+ Attempts to remove and return the item at the beginning of the queue.
+
+ When this method returns, contains the object removed from the queue, or the default value if the queue is empty.
+ true if an item was dequeued; otherwise, false.
+
+
+
+ Returns the item at the beginning of the queue without removing it.
+
+ The item at the beginning of the queue.
+ Thrown if the queue is empty.
+
+
+
+ Attempts to return the item at the beginning of the queue without removing it.
+
+ When this method returns, contains the object at the beginning of the queue, or the default value if the queue is empty.
+ true if an item was found; otherwise, false.
+
+
+
+ Adds an item to the underlying original queue. Used for local operations.
+
+ The item to add.
+
Interpolation time in seconds.
@@ -96,20 +147,12 @@
Tries to obtain interpolation data for this frame.
-
-
-
-
Returns true if there was interpolation data for this frame.
Tries to obtain interpolation data for this frame. This is the array version.
-
-
-
-
Returns true if there was interpolation data for this frame.
@@ -221,11 +264,94 @@
A snapshot of the state of a collection. Note this must not be used outside the scope of an OnChanged call or a NetworkRender call.
+
+
+ Determines whether the dictionary contains the specified key.
+
+ The key to locate in the dictionary.
+ true if the dictionary contains an element with the specified key; otherwise, false.
+
+
+
+ Determines whether the dictionary contains a specific value.
+
+ The value to locate in the dictionary.
+ true if the value is found; otherwise, false.
+
A networked collection.
+
+
+ Removes all keys and values from the dictionary.
+
+
+
+
+ Gets or sets the value associated with the specified key.
+
+ The key whose value to get or set.
+ The value associated with the specified key.
+ Thrown when the key does not exist in the dictionary.
+
+
+
+ Gets the number of elements contained in the dictionary.
+
+
+
+
+ Adds the specified key and value to the dictionary.
+
+ The key of the element to add.
+ The value of the element to add.
+ true if the key/value pair was added; false if the key already exists or the dictionary is full.
+
+
+
+ Removes the value with the specified key from the dictionary.
+
+ The key of the element to remove.
+ true if the element is successfully removed; otherwise, false.
+
+
+
+ Tries to get the value associated with the specified key.
+
+ The key whose value to get.
+ When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter.
+ true if the key was found; otherwise, false.
+
+
+
+ Sets the value associated with the specified key if it exists in the dictionary.
+ If the key is found, updates its value.
+
+ true if the key was found and updated; otherwise, false
+
+
+
+ Determines whether the dictionary contains the specified key.
+
+ The key to locate in the dictionary.
+ true if the dictionary contains an element with the specified key; otherwise, false.
+
+
+
+ Determines whether the dictionary contains a specific value.
+
+ The value to locate in the dictionary.
+ true if the value is found; otherwise, false.
+
+
+
+ Represents a group used for interest management in the Netick.
+ An InterestManagementGroup contains a collection of entities and manages which clients are interested in those entities,
+ typically for the purpose of optimizing network traffic by only sending relevant updates to clients.
+
+
Use this attribute on a method you want to call when a specific property value changes. Example: [OnChanged(nameof(PropertyName)]
@@ -240,31 +366,143 @@
* Use the parameter "localInvoke" to specify if this Rpc should be executed on the machine it was called from.
+
+
+ A helper struct that can be used to as a timer for various gameplay purposes.
+
+
A snapshot of the state of a collection. Note this must not be used outside the scope of an OnChanged call or a NetworkRender call.
+
+
+ Determines whether the hashset snapshot contains a specific value.
+
+ The object to locate in the snapshot.
+ true if item is found; otherwise, false.
+
A networked collection.
+
+
+ Gets the number of elements contained in the set.
+
+
+
+
+ Adds an item to the set.
+
+ The element to add.
+ true if the element is added to the set; false if the element is already present or the set was full.
+
+
+
+ Removes the specified item from the set.
+
+ The element to remove.
+ true if the element is successfully removed; otherwise, false.
+
+
+
+ Determines whether the set contains a specific value.
+
+ The object to locate in the set.
+ true if item is found; otherwise, false.
+
+
+
+ Removes all item from the set.
+
+
A snapshot of the state of a collection. Note this must not be used outside the scope of an OnChanged call or a NetworkRender call.
+
+
+ Gets the number of elements in the stack.
+
+
A networked collection.
+
+
+ Gets the number of items contained in the stack.
+
+
+
+
+ Removes all items from the stack.
+
+
+
+
+ Pushes an item onto the top of the stack.
+
+ The item to push onto the stack.
+ True if the item was pushed; false if the stack is full.
+
+
+
+ Removes and returns the item at the top of the stack.
+
+ The item removed from the top of the stack, or default if the stack is empty.
+
+
+
+ Attempts to remove and return the item at the top of the stack.
+
+ The item removed from the top of the stack, or default if the stack is empty.
+ True if an item was removed; otherwise, false.
+
+
+
+ Returns the item at the top of the stack without removing it.
+
+ The item at the top of the stack, or default if the stack is empty.
+
+
+
+ Attempts to return the item at the top of the stack without removing it.
+
+ The item at the top of the stack, or default if the stack is empty.
+ True if an item was returned; otherwise, false.
+
+
+
+ Adds an item to the original stack (used for internal state).
+
+ The element to add.
+
A snapshot of the state of a collection. Note this must not be used outside the scope of an OnChanged call or a NetworkRender call.
+
+
+ Gets the first node in the linked list snapshot.
+
+
+
+
+ Gets the last node in the linked list snapshot.
+
+
+
+
+ Gets the node at the specified index in the snapshot.
+
+
Index of this node within the collection.
@@ -285,21 +523,89 @@
A networked linked list collection. This is an ordered list meaning that the elements insertion order is maintained when iterating through the collection.
-
+
- Represents a network player, which can be either a local player (representing this player) or a remote connection (representing a connected client)).
+ Gets the first node in the linked list.
-
+
- The networked index of this player.
- Note: it returns -1 on the client for the local player when not connected to a server.
- Note: the server player always has Id 0.
+ Gets the last node in the linked list.
-
+
- Use this to associate an object with this player. This is a local variable that is not synced.
+ Gets the number of items contained in the linked list.
+
+
+
+
+ Adds an item to the end of the linked list.
+
+ The item to add.
+ True if the item was added; otherwise, false.
+
+
+
+ Adds an item as the first node in the linked list.
+
+ The item to add.
+ The node that was added.
+ True if the item was added; otherwise, false.
+
+
+
+ Adds an item as the last node in the linked list.
+
+ The item to add.
+ The node that was added.
+ True if the item was added; otherwise, false.
+
+
+
+ Adds an item before the specified node in the linked list.
+
+ The node before which to insert the new item.
+ The item to add.
+ The node that was added.
+ True if the item was added; otherwise, false.
+
+
+
+ Adds an item after the specified node in the linked list.
+
+ The node after which to insert the new item.
+ The item to add.
+ The node that was added.
+ True if the item was added; otherwise, false.
+
+
+
+ Removes the first occurrence of the specified item from the linked list.
+
+ The item to remove.
+ True if the item was removed; otherwise, false.
+
+
+
+ Removes the specified node from the linked list.
+
+ The node to remove.
+ True if the node was removed; otherwise, false.
+
+
+
+ Removes all items from the linked list.
+
+
+
+
+ Gets an enumerable collection of all nodes in the linked list.
+
+
+
+
+ The NetickEngine class is the core of Netick, managing networking, simulation, interpolation, replication, etc.
@@ -370,6 +676,12 @@
[Client Only] Disconnects this client from the server.
+
+
+ Returns the size of the entirety of the game's networked state snapshot size, in bytes. This includes the sizes of all allocated blocks.
+
+
+
Attaches a to the simulation.
@@ -380,12 +692,6 @@
Detaches a from the simulation.
-
-
- Returns the size of the entirety of the game's networked state snapshot size, in bytes. This includes the sizes of all allocated blocks.
-
-
-
Updates Netick logic.
@@ -396,6 +702,28 @@
Call this to invoke NetworkRender on simulated entities. This might not be needed if you are running a headless build.
+
+
+ Represents a network player, which can be either a local player (representing this player) or a remote connection (representing a connected client)).
+
+
+
+
+ The networked index of this player.
+ Note: it returns -1 on the client for the local player when not connected to a server.
+ Note: the server player always has Id 0.
+
+
+
+
+ Use this to associate an object with this player. This is a local variable that is not synced.
+
+
+
+
+ Represents a network tick.
+
+
Implements this to inform Netick about the size (in 32 bit words) of your connection meta data.
@@ -511,9 +839,33 @@
A networked list collection. This is an unordered list meaning that the order of the elements during iteration is undefined.
-
+
- Always use NetworkBool instead of bool, for networked properties and RPC parameters.
+ Gets the number of items contained in the list.
+
+
+
+
+ Removes all elements from the list.
+
+
+
+
+ Adds an item to the list.
+
+ The item to add.
+ True if the item was added; otherwise, false.
+
+
+
+ Removes an item from the list.
+
+ The item to add.
+ True if the item was removed; otherwise, false.
+
+
+
+ Manages interest groups and area of interest (AoI) layers.
@@ -521,7 +873,7 @@
Internal method. Never call this.
-
+
Internal method. Never call this.
@@ -531,11 +883,16 @@
Internal method. Never call this.
-
+
Internal method. Never call this.
+
+
+ Always use NetworkBool instead of bool, for networked properties and RPC parameters.
+
+
----------------------------------------------------
@@ -560,5 +917,35 @@
Note: the low-level transport must implement for this method to have an effect.
+
+
+ Represents a fixed-size network-serializable string with a maximum length of 8 characters.
+
+
+
+
+ Represents a fixed-size network-serializable string with a maximum length of 16 characters.
+
+
+
+
+ Represents a fixed-size network-serializable string with a maximum length of 32 characters.
+
+
+
+
+ Represents a fixed-size network-serializable string with a maximum length of 64 characters.
+
+
+
+
+ Represents a fixed-size network-serializable string with a maximum length of 128 characters.
+
+
+
+
+ Represents a fixed-size network-serializable string with a maximum length of 256 characters.
+
+
diff --git a/package.json b/package.json
index 20d24aa..874b5ae 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "com.karrar.netick",
- "version": "0.14.7",
+ "version": "0.14.12",
"displayName": "Netick",
"description": "A networking solution for Unity",
"unity": "2021.3",