Commit Graph

290 Commits

Author SHA1 Message Date
Karrar
e90c1d6533 Improved bandwidth usage when using Narrow Phase Filtering. 2025-07-30 11:36:32 +03:00
Karrar
a5c7bef946 Changed the size of LiteNetLibTransport._connectionBytes to be 1000. 2025-07-30 05:59:14 +03:00
Karrar
f449244367 Fixed an issue where invoking an RPC on the server from within another RPC (originally invoked by a client) could prevent the new RPC from being delivered to the source client, even if it was correctly scoped to them. 2025-07-28 16:10:55 +03:00
Karrar
97ee05413c Added codegen errors for the use of generic type parameters as network properties or RPC parameters. 2025-07-26 11:40:14 +03:00
Karrar
0d6fcba6d7 Fixed an issue where the previous snapshot of a network collection could be incorrect. Also fixed a bug in NetworkDictionary and NetworkHashSet where key existence checks and value retrievals could fail, despite the key being present. 2025-07-25 19:07:23 +03:00
Karrar
a77b5a2b9c Added SyncTransformOnSpawn to NetickConfig. This setting, enabled by default, controls whether the initial position and rotation of spawned objects are synchronized at spawn time. Disabling it can help reduce bandwidth usage or serve as an information-hiding measure. 2025-07-24 01:34:45 +03:00
Karrar
55c8cd5b54 Added an optional predicate parameter to lag compensation queries to allow custom filtering of potential containers during the broadphase stage, improving control over query results. 2025-07-23 00:47:51 +03:00
Karrar
758b073942 Fixed Netick throwing an exception on the client when an object's parent was changed without using NetworkObject.SetParent. 2025-07-22 19:41:57 +03:00
Karrar
a637c9fc92 Fixed an issue with the previous commit. 2025-07-22 06:06:11 +03:00
Karrar
4d97886a3c Changed NetworkObject.Id to return -1 when the object is spawned but the client is not interested in it and hasn't yet received any state for it. 2025-07-22 01:09:40 +03:00
Karrar
3ece834de2 Changed NetworkAwake (in the client) to invoke after the object state has been applied. 2025-07-21 00:08:08 +03:00
Karrar
54e7f6d8ed Updated XML documentation. 2025-07-20 19:23:21 +03:00
Karrar
681f67c135 Fixed an exception on startup when a NetickBehaviour is present on the sandbox prefab. 2025-07-19 19:18:45 +03:00
Karrar
5f77e7b394 Added IsMarkedForDestruction to NetworkObject. This flag returns true if Sandbox.Destroy has been invoked on an object in the server, and the object is scheduled to be removed from the simulation (destroyed) at the end of the current tick. 2025-07-19 00:07:24 +03:00
Karrar
823fbb5e53 Fixed an issue with static RPCs with RpcPeers.Owner target, which are invoked by the owner/server. 2025-07-17 17:41:45 +03:00
Karrar
6f63dc3b1a Fixed an issue with static RPCs with RpcPeers.Owner source. 2025-07-17 17:29:38 +03:00
Karrar
276dcb2a65 Fixed an issue when changing the networked state of objects in an additive scene that is being unloaded, causing spawned objects in the future not to sync. 2025-07-17 02:49:46 +03:00
Karrar
d405291150 Added IsInterested to NetworkObject and NetworkBehaviour. On the client, it returns true if this client is interested in this object. On the server, it always returns true. 2025-07-16 23:51:02 +03:00
Karrar
d73fc09caa Fixed an issue with NetworkBehaviour.IsPredicted returning false in NetworkAwake for predicted objects. 2025-07-16 23:20:01 +03:00
Karrar
dd1274a9ca Changed the syncing logic of a network object's parent to prevent null reference exceptions when the user sets the object's parent to null using transform.parent or transform.SetParent (instead of NetworkObject.SetParent), and the previous parent is later destroyed. 2025-07-16 17:59:39 +03:00
Karrar
63fabfadda Fixed an issue where targeted RPCs with target: RpcPeers.Everyone were not invoked on the target player if the caller was the target player. 2025-07-16 01:14:06 +03:00
Karrar
035bc58c2b Fixed issue with accessing Length getter of Network Array Structs. 2025-07-16 00:14:49 +03:00
Karrar
d67e299b44 Fixed a code gen issue with static RPCs with no serializable parameters. 2025-07-16 00:08:55 +03:00
Karrar
e0b6616f93 Fixed a codegen issue with Guid type. 2025-07-09 14:23:18 +03:00
Karrar
cccdbffd65 Fixed a null reference exception in Sandbox.SetPlayerObject when passed a null player object. 2025-07-09 07:13:48 +03:00
Karrar
f6ea3fd0f6 Added Sandbox.GetBehavioursOfType to performantly get all scripts (in the simulation) of a specific type. 2025-07-08 15:43:01 +03:00
Karrar
3e235a3bf6 Changed Sandbox.GetPlayerObject to return null gracefully when no object is associated with a player, instead of throwing an exception. 2025-07-07 18:00:33 +03:00
Karrar
49f7867cd7 Added RaycastAll extension methods for PhysicsScene and PhysicsScene2D. These extensions wrap Raycast overloads that populate a hits array, offering a more intuitive alternative to Unity's inconsistently named methods. 2025-07-07 15:09:27 +03:00
Karrar
864f003677 Fixed code gen issue for RPC methods where the only parameter is RpcContext. 2025-07-07 14:44:25 +03:00
Karrar
53ddf149e1 Added support for targeted RPCs and optional RpcContext parameter
- Enables sending RPCs to specific players
- Introduces `RpcContext` struct for contextual metadata (e.g., sender info)
2025-07-05 16:39:49 +03:00
Karrar
466c31df64 Added Vector2ErrorCorrector and FloatErrorCorrector types for smoothly correcting prediction errors. 2025-07-02 01:48:15 +03:00
Karrar
e19a418de5 Changed Sandbox.GetPlayerFromId to Sandbox.GetPlayerById. 2025-06-30 04:37:17 +03:00
Karrar
9f31f4f16c Fixed an issue in code gen where non-networked properties within structs marked with [Networked] were being incorrectly modified, leading to code gen errors. 2025-06-28 23:23:16 +03:00
Karrar
88832b2723 Separated core LiteNetLib wrapper logic into LiteNetLibTransport.cs. LiteNetLibTransportProvider.cs now exclusively contains the LiteNetLibTransportProvider class to address Unity Editor-related issues. 2025-06-28 04:36:16 +03:00
Karrar
07feb115b3 Added a warning for [Networked] structs when float-quantizable members (e.g., float, Vector2, Vector3) are declared as fields instead of properties. 2025-06-28 04:23:33 +03:00
Karrar
40b7deedb7 Deleted ~Samples. 2025-06-27 21:50:45 +03:00
Karrar
a128b527ed Fixed an issue where some clients did not receive data from the server when multithreading was enabled and the number of connected clients was odd. 2025-06-27 07:21:06 +03:00
Karrar
1b0d33d8f0 Read the description for detailed changes.
- Added `Sandbox.Players`: a synchronized list of `NetworkPlayerId` structs representing connected players.
- Added `Sandbox.Events.OnPlayerJoined` and `Sandbox.Events.OnPlayerLeft` callbacks, synchronized across all clients.
- Changed internal interpolation of quaternions to use `Slerp` instead of `Lerp`.
- Fixed a potential crash caused by undefined behavior when reaching `NetickConfig.MaxPlayers` and destroying network objects.
- Fixed an issue where sandbox-loaded scenes were not being unloaded during shutdown.
- Fixed a bug preventing Prediction Error Correction from functioning correctly.
2025-06-27 05:47:00 +03:00
Karrar
8e2db0f357 Fixed an issue where multiple keys with identical hash codes caused undefined behavior in NetworkDictionary and NetworkHashset. 2025-06-14 18:10:49 +03:00
Karrar
fb0bb8ba67 Improved Prediction Error Correction Smoothing by changing the correction method. 2025-06-14 18:10:08 +03:00
Karrar
5d7ebde5e1 Fixed showing the reversed icon for the folding state of the sandbox element in the Sandboxes tab of Netick window. 2025-06-08 15:29:22 +03:00
Karrar
0ec3babf0d Added the sandbox name next to the scene name in the hierarchy UI in the editor. 2025-06-06 15:55:42 +03:00
Karrar
49a8a05b2a Added Accurate Local Interpolation to Netick Config. By default, Netick uses the predicted (and thus potentially inaccurate) From snapshot for local interpolation even after rollback & resims, which results in basic smoothing over prediction errors. However, enable this if you want to always use the reconciled From snapshot. 2025-05-28 19:38:00 +03:00
Karrar
e13c8efacf Added Head and Tail properties and GetNode method to NetworkLinkedListSnapshot to make performing a traditional linked list iteration easier. 2025-05-24 14:21:35 +03:00
Karrar
4a8d3b76c9 Improved Remote Interpolation buffering in the client. Now, it should adjust faster when network conditions improve. In addition, added Extra Interpolation Delay to Netick Config, which determines the amount of extra remote interpolation delay/buffering added in the client, regardless of connection quality. This is a value between 0 and 1, where 1 is equivalent to one send tick worth of delay/buffering. 2025-05-18 12:33:51 +03:00
Karrar
0f873217c8 Fixed an issue that, sometimes, caused an exception to be thrown in NetworkBehaviour.InternalReset at runtime after changing the size of a network array at editor/codegen time. 2025-05-15 08:42:14 +03:00
Karrar
cea642e073 Fixed an issue with scene network objects in additive scenes not being added to the simulation by Netick, which was caused by the previous change. 2025-05-15 04:59:53 +03:00
Karrar
b9a2e60966 Changed how the Scene Id of scene network objects is assigned. Now, it's only set once when the object is first created. And it's no longer an ascending value, it's a unique (within the object's scene) random value in the range of int.MinValue and int.MaxValue, excluding -1, which is used as the invalid id. The ascending id still exists, but now is called Runtime Scene Id, and it's only set at runtime and used internally by Netick. 2025-05-13 14:08:11 +03:00
Karrar
6c88474657 Made a small change in how scene object ids are assigned. 2025-05-11 09:09:47 +03:00
Karrar
d442880219 Added GetPreviousNetworkUnorderedList to OnChangedData. 2025-05-10 08:58:27 +03:00