Commit Graph

5540 Commits

Author SHA1 Message Date
vis2k
d4a5bd71d0 Mathd: Clamp01 reuses Clamp 2023-04-01 11:45:15 +08:00
vis2k
db923a486e ExponentialMovingAverage: alpha changed from float to double for better precision 2023-04-01 11:43:49 +08:00
vis2k
5fe306fdc1 AccurateInterval: syntax 2023-04-01 11:40:29 +08:00
vis2k
a637b831d7 remove unused using 2023-04-01 11:24:21 +08:00
vis2k
2ea568f404 Batcher: readonly .batches 2023-04-01 11:17:37 +08:00
MrGadget1024
31fa8a4b3c fix(SimpleWebTransport): Default sslProtocols to Tls12 2023-03-29 11:50:25 -04:00
MrGadget
40361f62bf
fix(NetworkServer): Don't disconnect on OnEntityStateMessage for object without authority (#3439) 2023-03-29 17:37:08 +02:00
MrGadget1024
b377d765ec fix(Chat Example): moved playerNames HashSet to ChatAuthenticator 2023-03-28 13:13:17 -04:00
MrGadget1024
48b2ee638f chore(SimpleWebTransport): formatting 2023-03-28 08:17:19 -04:00
MrGadget1024
8ce21b40b8 chore(SimpleWebTransport): formatting and syntax 2023-03-28 02:26:17 -04:00
MrGadget1024
22d4fb62bb fix(SimpleWebTransport): Improved tooltips 2023-03-28 01:18:44 -04:00
MrGadget1024
484820e293 feat(SimpleWebTransport): Implemented ClientConnect(Uri uri) 2023-03-28 00:58:32 -04:00
MrGadget
238233da3f
fix(NetworkTransformeliable): fix offset and sendIntervalMultiplier (#3438)
* fix(NetworkTransformeliable): fix offset and sendIntervalMultiplier

* Removed unused using

* latest fixes and comments

* moved comments

* Update NetworkTransformReliable.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-03-28 05:06:52 +02:00
mischa
ae50522895
fix; NetworkTransformUnreliable now broadcasts in LateUpdate as well (#3410) (#3421) 2023-03-28 04:59:26 +02:00
vis2k
527dda561a revert previous commit NetworkTime modifications. keep TimeAsDouble 2023-03-27 10:56:13 +08:00
MrGadget
70e972aeb5
fix: Remove all usage of Time.timeAsDouble (#3436)
- Use NetworkTime.localTime everywhere for Unity 2019 LTS compatibility.
2023-03-26 04:32:44 +02:00
MrGadget
8a4cf9efd7
perf(SyncDictionary): Don't send value for OP_REMOVE (#3435) 2023-03-25 15:48:00 +01:00
MrGadget
41ae4833b8
feat(NetworkTransformReliable): Added SendIntervalMultiplier to optionally reduce bandwidth (#3424)
* NetworkTransformReliable - formatting for consistancy / legibility

* feat(NetworkTransformReliable): Added SendIntervalMultiplier

* fixed conflict

* formatting

* formatting

* formatting

* formatting

* formatting

* indention

* syntax

* syntax

* formatting

* syntax

* syntax

* Restored formatting changes

* one more formatting revert

* Update NetworkTransformReliable.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-03-25 12:51:09 +01:00
MrGadget1024
377f65a919 fix(FadeInOut): Added OnValidate 2023-03-22 11:05:29 -04:00
MrGadget
26bb7e4e09
perf(InterestManagement): Don't Rebuild Observers In OnDestroy (#3430)
* perf(SceneInterestManagement): Only RebuildSceneObservers in Update
Don't RebuildSceneObservers in OnDestroy...that will happen in Update.
Multiple objects could be destroyed in same frame and we don't
want to rebuild for each one...let Update do it once.

* perf(MatchInterestManagement): Only RebuildMatchObservers in Update
Don't RebuildMatchObservers in OnDestroy...that will happen in Update.
Multiple objects could be destroyed in same frame and we don't
want to rebuild for each one...let Update do it once.

* perf(TeamInterestManagement): Only RebuildMatchObservers in Update
Don't TeamInterestManagement in OnDestroy...that will happen in Update.
Multiple objects could be destroyed in same frame and we don't
want to rebuild for each one...let Update do it once.

* SceneInterestManagement: Add curentScene to dirtyScenes in OnDestroy

* MatchInterestManagement - add match to dirtyMatches

* TeamInterestManagement - add team to dirtyTeams
2023-03-22 15:11:31 +01:00
MrGadget1024
2d9a2c93a4 FadeInOut - added comment 2023-03-22 09:12:53 -04:00
MrGadget1024
1aedd8d7c0 fix(AdditiveLevels): FadeInOut more user friendly 2023-03-22 09:10:49 -04:00
MrGadget1024
e29325d450 removd logging 2023-03-21 14:57:04 -04:00
MrGadget1024
fef184704f FadeInOut: Added GetDuration 2023-03-21 14:50:27 -04:00
MrGadget1024
6e2227dcbf fix(Additive Levels): Improve FadeInOut timing 2023-03-21 13:24:34 -04:00
MrGadget1024
5c7de2b6e0 fix(Discovery Template): wrapped OnValidate with #if UNITY_EDITOR 2023-03-21 06:55:32 -04:00
MrGadget1024
f0d288be1b Updated Discovery Template
- Added OnValidate and Start overrides
- Improved comments
2023-03-21 06:10:05 -04:00
MrGadget1024
343cfc1bad Updated Discovery Example 2023-03-21 06:10:05 -04:00
MrGadget1024
199ee490e5 fix(Discovery): Updated Network Discovery
- Moved transport and OnServerFound to base class
- Consolidated Start in base class
- Virtual OnValidate in base class
- Better public field order
- Added missing tooltip
2023-03-21 06:10:05 -04:00
JesusLuvsYooh
069e417edc
Fix(InterestManagementBase): Disable feature fully, if component unticked. (#3406)
* Draft Awake->OnEnabled

Fix: InterestManagement still partially working when using Awake, OnEnabled fixes it.

* Updated commeents

* Dont ask.
2023-03-21 02:54:45 +01:00
vis2k
3f02534978 perf: NetworkBehaviour.syncInterval default set to 0 to send every NetworkServer.sendInterval. fixes #3292 2023-03-20 17:09:44 +08:00
mischa
30d7b5b3a8
fix: #3427 NetworKTransformReliable now has a timelineOffset to account for decoupled arrival of NetworkTime and NetworkTransform snapshots (#3428)
* fix: #3427 NetworKTransformReliable now has a timelineOffset to account for decoupled arrival of NetworkTime and NetworkTransform snapshots

* bool
2023-03-20 03:36:21 +01:00
vis2k
1a34614e4c KcpClient/Server: change config visibility to protected 2023-03-19 11:31:39 +08:00
vis2k
dd50a43b9b KcpClient/Server: change callbacks to protected so inheriting classes can use them too 2023-03-19 11:27:56 +08:00
vis2k
660b57ecb7 KcpPeer: fix log message. 2023-03-19 11:19:29 +08:00
MrGadget1024
638b3536a5 fix(NetworkAuthenticatorTemplate): Added missing overrides 2023-03-18 11:04:56 -04:00
MrGadget
4ce8b2a431
fix: Reader / Writer extensions for Unity structs with properties (#3426)
* fix: Reader / Writer extensions for Unity structs with properties

* removed blank lines
2023-03-18 09:10:53 +01:00
MrGadget1024
b8e7aa0567 Added DriftEMA, DeliveryTimeEMA, and RTT to NetworkClient OnGUI 2023-03-18 16:05:28 +08:00
vis2k
7d93d0156e perf: snapshot interpolation default catchup speed increased to 2%, and slowdown speed increased to 4% to avoid jitter 2023-03-18 16:04:22 +08:00
MrGadget1024
ef86df8454 NetworkReaderExtensions - syntax 2023-03-16 15:26:11 -04:00
MrGadget
ff5115e04a
fix(NetworkManager): Call OnServerDisconnect for Host Client (#3419) 2023-03-16 13:27:49 +01:00
vis2k
a9b216d2e6 snapshot interpolation demo: vsync reminder. it's too easy to forget. 2023-03-16 19:23:53 +08:00
vis2k
d63af8d22c Snapshot Interpolation Demo: add more buttons for testing 2023-03-16 18:31:06 +08:00
vis2k
be8857a509 TimelineClamp: add comments 2023-03-16 11:24:37 +08:00
vis2k
8d857de09b kcp2k V1.34 [2023-03-15]
- Send/SendTo/Receive/ReceiveFrom NonBlocking extensions.
  to encapsulate WouldBlock allocations, exceptions, etc.
  allows for reuse when overwriting KcpServer/Client (i.e. for relays).
2023-03-15 13:00:37 +08:00
vis2k
69de3f0379 NetworkTransformUnreliable: syntax (early returns) 2023-03-14 17:18:27 +08:00
vis2k
5f1ec83cca NetworkTransformUnreliable: UpdateClientInterpolation helper function 2023-03-14 17:17:33 +08:00
vis2k
6e142d8cc0 NetworkTransformUnreliable: UpdateServerInterpolation helper function 2023-03-14 17:16:54 +08:00
vis2k
255789bc57 NetworkTransformUnreliable: UpdateServerBroadcast helper function 2023-03-14 17:15:57 +08:00
vis2k
feab9041b4 NetworkTransformUnreliable: UpdateClientBroadcast helper function 2023-03-14 17:15:11 +08:00
vis2k
9b25758a4e syntax 2023-03-14 17:13:37 +08:00
vis2k
73e953ee2a perf: kcp2k V1.33
- perf: KcpServer/Client RawReceive now call socket.Poll to avoid non-blocking
  socket's allocating a new SocketException in case they WouldBlock.
  fixes https://github.com/MirrorNetworking/Mirror/issues/3413
- perf: KcpServer/Client RawSend now call socket.Poll to avoid non-blocking
  socket's allocating a new SocketException in case they WouldBlock.
  fixes https://github.com/MirrorNetworking/Mirror/issues/3413
2023-03-14 16:57:56 +08:00
MrGadget1024
f31529580b Examples - Unity 2021 updates 2023-03-12 15:19:21 -04:00
MrGadget1024
1955587c9e Room example Unity updates 2023-03-12 14:39:43 -04:00
MrGadget1024
c35b43bb2e WebSocketServer - syntax 2023-03-12 14:21:23 -04:00
MrGadget1024
bfcef5563b ClientHandshake -added log 2023-03-12 14:21:06 -04:00
MrGadget1024
8d348a75f6 WebSocketServer - Improved logging 2023-03-12 14:11:07 -04:00
MrGadget1024
8638ab96eb SimpleWebServer - log ProcessMessageQueue overflow 2023-03-12 14:05:38 -04:00
MrGadget1024
d7315be32e ServerSslHelper - added logging 2023-03-12 14:04:26 -04:00
MrGadget1024
cc6f4aa120 ClientHandshake - log Unexpected Handshake Response 2023-03-12 14:02:18 -04:00
MrGadget1024
46b30aafe0 SimpleWebClient - log ProcessMessageQueue overflow 2023-03-12 13:59:54 -04:00
MrGadget1024
724be4ffd1 RemoteStatistics - syntax 2023-03-12 13:36:54 -04:00
MrGadget1024
c7ddae1bc3 NetworkStatistics - move UI down 2023-03-12 13:32:42 -04:00
mischa
7137ace5fd
fix: NetworkTransformReliable fix jitter (fixes: #3368) (#3410)
* ninja nt

* remove unused

* unused

* comments
2023-03-12 16:12:27 +01:00
vis2k
25ebb0620b fix: NetworkTransformReliable Reset() now resets 'last' too 2023-03-12 23:08:49 +08:00
vis2k
844fe69e11 fix: SnapshotInterpolation.TimelineClamp uses Mathd.Clamp for Unity 2020 support 2023-03-12 22:50:43 +08:00
vis2k
cae12a43fc Mathd.Clamp for Unity 2020 support 2023-03-12 22:50:13 +08:00
vis2k
53658a5886 fix: kcp2k V1.32 KcpPeer RawInput now doesn't disconnect in case of random internet noise 2023-03-12 11:07:26 +08:00
vis2k
8762167a13 Snapshot Interpolation demo: reuse SnapshotInterpolationSettings 2023-03-12 10:31:19 +08:00
mischa
2f68666683
breaking: expose NetworkClient's Snapshot Interpolation settings in NetworkManager (#3411) 2023-03-12 03:25:43 +01:00
vis2k
5d324d35f1 SnapshotInterpolation: better explain timeline clamp 2023-03-11 13:24:07 +08:00
vis2k
5a0c8269c8 remove unused code 2023-03-11 11:57:21 +08:00
vis2k
313c7a18cd fix(SnapshotInterpolation): Added TimelineClamp (#3402) 2023-03-11 10:46:00 +08:00
vis2k
67aa480fdd Snapshot Interpolation tests: check local timeline and fail early to prepare for clamping 2023-03-11 10:03:37 +08:00
MrGadget1024
712032a0aa Formatting 2023-03-10 04:37:01 -05:00
vis2k
80b23f029d feature: ExpontentialMovingAverage.Reset() 2023-03-10 17:33:25 +08:00
vis2k
b1e62cfac3 SnapshotInterpolation.Timescale: rename threshold parameters to absolute and update comment. because that's what they are. 2023-03-10 16:13:15 +08:00
vis2k
f62d68dbf3 comment 2023-03-10 16:05:47 +08:00
vis2k
fd63333563 SnapshotInterpolation: add explanation why timescale is calculated when inserting 2023-03-10 16:03:40 +08:00
vis2k
86505af92d Snapshot Interpolation Demo: simulate moving timeline ahead 2023-03-10 14:52:31 +08:00
vis2k
20c2899e3d Snapshot Interpolation Demo: simulate moving timeline behind 2023-03-10 14:52:29 +08:00
vis2k
60f021e543 Snapshot Interpolation Demo: simulate 1 fps 2023-03-10 14:51:13 +08:00
vis2k
da6c7180bb CCU demo: readme added 2023-03-08 15:29:51 +08:00
vis2k
733e663d11 syntax 2023-03-08 14:22:58 +08:00
vis2k
0d471af61c script icon 2023-03-08 10:31:40 +08:00
MrGadget1024
0cd06db1f2 NetworkTransform - formatting 2023-03-06 14:36:00 -05:00
MrGadget1024
4b34dc2fe8 breaking(NetworkManager): Removed obsolete OnServerError / OnClientError
BREAKING CHANGE: Removed obsolete OnServerError / OnClientError
2023-03-06 11:52:41 -05:00
MrGadget1024
788fd4df91 Revert "breaking(NetworkManager)!: Removed obsolete OnServerError / OnClientError"
This reverts commit 3f7c1af819.
2023-03-06 11:50:37 -05:00
MrGadget1024
3f7c1af819 breaking(NetworkManager)!: Removed obsolete OnServerError / OnClientError 2023-03-06 09:16:49 -05:00
MrGadget1024
a74f8f9ea2 Revert "breaking!(NetworkManager): Removed obsolete OnServerError / OnClientError"
This reverts commit d45bd661ef.
2023-03-06 09:13:48 -05:00
MrGadget1024
d45bd661ef breaking!(NetworkManager): Removed obsolete OnServerError / OnClientError 2023-03-06 08:49:37 -05:00
vis2k
a0605ae651 kcp V1.31 [2023-03-05]
- KcpClient: Tick/Incoming/Outgoing can now be overwritten (virtual)
- breaking: KcpClient now takes KcpConfig in constructor instead of in Connect.
  cleaner, and prepares for KcpConfig.MTU setting.
- KcpConfig now includes MTU; KcpPeer now works with KcpConfig's MTU, KcpServer/Client
  buffers are now created with config's MTU.
2023-03-05 14:10:17 +08:00
vis2k
31b6f195ce KcpTransport: config, server, client protected so inheriting classes can access them 2023-03-04 22:26:24 +08:00
vis2k
582a02eec8 KcpTransport: OnGUIStatistics helper function for easier OnGUI overwrites 2023-03-04 22:23:10 +08:00
vis2k
7b1d6fd412 KcpTransport: virtual Awake/OnValidate/OnGUI to allow inheritance more easily 2023-03-04 22:20:54 +08:00
vis2k
def24f8510 fix: NetworkLoop now only runs in play mode, not in edit mode 2023-03-04 19:33:19 +08:00
vis2k
8f66bd68ca fix: #3392 NetworkLoop now checks if the function was already added before. fixes functions being added twice with Domain Reload disabled. 2023-03-04 19:29:39 +08:00
MrGadget
91014bd614
breaking: Remove NetworkClient.serverIP (#3394)
* breaking: Remove NetworkClient.serverIP
- If we're never going to set it to anything, no reason to have it.
- Transport has no mechanism to return anything for it

Host client hardcodes `address` to "localhost" in both LocalConnectionToServer and LocalConnetionToClient, so obsolete the former telling users to use the latter if they aren't already.

Users can get the endpoint from NetworkManager or Discovery, as they must be doing now since those work and serverIp does not.

* Update main.yml

* fix: kcp2p V1.30 (#3391)

- fix: set send/recv buffer sizes directly instead of iterating to find the limit.
  fixes: https://github.com/MirrorNetworking/Mirror/issues/3390
- fix: server & client sockets are now always non-blocking to ensure main thread never
  blocks on socket.recv/send. Send() now also handles WouldBlock.
- fix: socket.Receive/From directly with non-blocking sockets and handle WouldBlock,
  instead of socket.Poll. faster, more obvious, and fixes Poll() looping forever while
  socket is in error state. fixes: https://github.com/MirrorNetworking/Mirror/issues/2733

* Shortened PingWindowSize to get a faster more accurate result. (#3395)

* Shortened PingWindowSize to get a faster more accurate result.

Shortened PingWindowSize to get a faster more accurate result.
It taking too long to calculate the average may look bad to users

* Revert "Shortened PingWindowSize to get a faster more accurate result."

This reverts commit 0a5916b4dc.

* Revert "Shortened PingWindowSize to get a faster more accurate result."

This reverts commit 0a5916b4dc.

* Shortened PingWindowSize to get a faster more accurate result.

Shortened PingWindowSize to get a faster more accurate result.
It taking too long to calculate the average may look bad to users

* Shortened PingWindowSize to get a faster more accurate result.

Shortened PingWindowSize to get a faster more accurate result.
It taking too long to calculate the average may look bad to users, choosing 6 gives us an average of 3 results, where as the previous 10, would wait for 5, it should be a slight visual improvement.

* fix: Use PingWindowSize instead of hardcoded value (#3396)

fix: Use PingWindowSize instead of hardcoded value

* KcpClient: Tick/Incoming/Outgoing can now be overwritten (virtual)

* RunUnityTests - Updated unityVersion

* fix: Write for non-spawned NB only writes 0 netId (fixes: #3399) (#3400)

* Failing test for non-spawned NB writer/reader

* fix: Write for non-spawned NB only writes 0 netId

Instead of writing 0 and component index which does not match what the reader expects (it will stop reading netId is 0)
Fixes #3399

* breaking: Removed old Unity 2018 / 2019_3 compiler defines (#3397)

- we only suppport Unity 2019.4.40 and later LTS releases.
BREAKING: Removed old 2018 / 2019 compiler defines

* RunUnityTests - try different test reporter

* RunUnityTests commented out Archive and Publish temporarily

* RunUnityTests - disable game-ci built-in test reporter

* RunUnityTests - cleanup

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
Co-authored-by: JesusLuvsYooh <57072365+JesusLuvsYooh@users.noreply.github.com>
Co-authored-by: vis2k <info@noobtuts.com>
Co-authored-by: Robin Rolf <imer@imer.cc>
2023-03-04 06:39:30 +01:00
MrGadget
bb2e7b2308
breaking: Removed old Unity 2018 / 2019_3 compiler defines (#3397)
- we only suppport Unity 2019.4.40 and later LTS releases.
BREAKING: Removed old 2018 / 2019 compiler defines
2023-02-28 16:11:40 +01:00
Robin Rolf
74f5339b09
fix: Write for non-spawned NB only writes 0 netId (fixes: #3399) (#3400)
* Failing test for non-spawned NB writer/reader

* fix: Write for non-spawned NB only writes 0 netId

Instead of writing 0 and component index which does not match what the reader expects (it will stop reading netId is 0)
Fixes #3399
2023-02-28 16:10:49 +01:00
vis2k
eaea01caa6 KcpClient: Tick/Incoming/Outgoing can now be overwritten (virtual) 2023-02-26 14:29:15 +08:00
JesusLuvsYooh
3252dec547
fix: Use PingWindowSize instead of hardcoded value (#3396)
fix: Use PingWindowSize instead of hardcoded value
2023-02-25 09:56:29 -05:00
JesusLuvsYooh
4603bb1a4d
Shortened PingWindowSize to get a faster more accurate result. (#3395)
* Shortened PingWindowSize to get a faster more accurate result.

Shortened PingWindowSize to get a faster more accurate result.
It taking too long to calculate the average may look bad to users

* Revert "Shortened PingWindowSize to get a faster more accurate result."

This reverts commit 0a5916b4dc.

* Revert "Shortened PingWindowSize to get a faster more accurate result."

This reverts commit 0a5916b4dc.

* Shortened PingWindowSize to get a faster more accurate result.

Shortened PingWindowSize to get a faster more accurate result.
It taking too long to calculate the average may look bad to users

* Shortened PingWindowSize to get a faster more accurate result.

Shortened PingWindowSize to get a faster more accurate result.
It taking too long to calculate the average may look bad to users, choosing 6 gives us an average of 3 results, where as the previous 10, would wait for 5, it should be a slight visual improvement.
2023-02-25 11:11:56 +01:00
mischa
228a577683
fix: kcp2p V1.30 (#3391)
- fix: set send/recv buffer sizes directly instead of iterating to find the limit.
  fixes: https://github.com/MirrorNetworking/Mirror/issues/3390
- fix: server & client sockets are now always non-blocking to ensure main thread never
  blocks on socket.recv/send. Send() now also handles WouldBlock.
- fix: socket.Receive/From directly with non-blocking sockets and handle WouldBlock,
  instead of socket.Poll. faster, more obvious, and fixes Poll() looping forever while
  socket is in error state. fixes: https://github.com/MirrorNetworking/Mirror/issues/2733
2023-02-23 03:14:31 +01:00
MrGadget
a1db764b7c
Organize WeaverTypes (#3393)
* Organize WeaverTypes
- Put all NetworkBehaviors together
- Put Writer with Reader
- Put Remote things together
- moved ScriptableObjectType down

* moved NetworkClientConnectionReference up
2023-02-22 07:07:45 +01:00
MrGadget
69d5cf3c8f
breaking: AsmDef Updates (#3388)
* breaking: AsmDef Updates
- KcpTransport moved up
- SimpleWeb moved into folder
- AsmDef chains updated and simplified

* Reverted accidental change

* reverted accidental change

* Mirror.Tests - reverted ref removal
- needed for 2019 and 2020
2023-02-20 04:56:52 +01:00
Robin Rolf
cfe27a179b
fix: never use custom NB writers for SyncVars (#3387)
We always use a specific reader for NB syncvars, so if a custom defined writer handles data differently this leads to data mismatches.
Supporting custom readers for NB syncvars will just lead to too many edge cases and unexpected behaviour, so dont do it (see https://github.com/MirrorNetworking/Mirror/issues/2680#issuecomment-1435093212 for rationale).

Fixes #2680
2023-02-20 04:29:48 +01:00
Robin Rolf
94bb3690ae
fix: NetworkBehaviour SyncVar uses netId lookup (#3386)
* fix: NetworkBehaviour SyncVar uses netId lookup

Not only types derived from NetworkBehaviour
Fixes #2939

* Update Assets/Mirror/Editor/Weaver/Extensions.cs

* Update Assets/Mirror/Editor/Weaver/Processors/NetworkBehaviourProcessor.cs

* Update Assets/Mirror/Editor/Weaver/Processors/SyncVarAttributeProcessor.cs

* Update Assets/Mirror/Editor/Weaver/Processors/SyncVarAttributeProcessor.cs

* Update Assets/Mirror/Editor/Weaver/Processors/SyncVarAttributeProcessor.cs

* Update Assets/Mirror/Editor/Weaver/Readers.cs

* Update Assets/Mirror/Editor/Weaver/Writers.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-17 12:09:53 +01:00
MrGadget1024
5784ff6d8a script icons 2023-02-16 21:55:50 -05:00
MrGadget1024
4f1a1899aa Extensions - updated comment 2023-02-16 09:07:55 -05:00
MrGadget1024
2f2a6907de Extenstions - Added comment to GetStableHashCode 2023-02-16 09:04:43 -05:00
MrGadget1024
adafd484d7 Fixed log msg 2023-02-16 08:27:11 -05:00
MrGadget1024
e4281fe5bf fix: fixed warning in test 2023-02-16 08:20:01 -05:00
MrGadget1024
9e0c59526c fix: Extensions - Remove static StableHashes dictionary
- Now that all callers to GetStableHashCode are either one-timers or design-time (weaver) the dictionary is no longer needed.
2023-02-16 08:19:48 -05:00
Robin Rolf
5d6022ff19
Remove outdated comment (#3385) 2023-02-16 13:21:01 +01:00
Robin Rolf
8b7bc6858f
perf: Weave in pre-computed function hash for RPCs (#3384)
* perf: Weave in pre-computed function hash for RPCs

Instead of computing it at runtime for every call
See #3381, #3377 and #3375

* Update Assets/Mirror/Editor/Weaver/Processors/CommandProcessor.cs

* Update Assets/Mirror/Editor/Weaver/Processors/RpcProcessor.cs

* Update Assets/Mirror/Editor/Weaver/Processors/TargetRpcProcessor.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-16 13:01:03 +01:00
Robin Rolf
b933dcbe1a
feat: InterestManagementBase (#3379)
* feat: InterestManagementBase

A interest management base class that allows more advanced interest management by bypassing the built-in HashSet checks via Rebuild overriding

* Update Assets/Mirror/Core/InterestManagementBase.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-16 12:57:31 +01:00
Robin Rolf
c2d834315c
cleanup: move observer HashSet rebuild logic to IM (#3383)
This cleanup step prepares for InterestManagement classes being able to customize the rebuild logic, but for that we should move it out of the NetworkServer class
2023-02-16 12:11:54 +01:00
JesusLuvsYooh
e0e262678b
feature: NetworkTransform interpolation can be disabled (#3378)
* Interpolation off bools for NetworkTransform.

Gives a snap-like effect to position, rotation and scaling.

* Update Assets/Mirror/Components/NetworkTransformBase.cs

* Update NetworkTransformBase.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-16 04:19:02 +01:00
Robin Rolf
569938c8c7
perf: Use static generic class to cache message id (#3381)
* perf: Use static generic class to cache message id

we can (ab)use c# generics to cache the message id in a static field
this is significantly faster than doing a runtime Dictionary lookup in my testing (16% thread cpu-> ~0.22% for 121 moving nts)
generic classes have separate static fields per type specification, so we can store things per-type there, exactly what we need!

* Obsolete NetworkMessages.GetId

* Update Assets/Mirror/Core/NetworkMessages.cs

* Copy comment from GetId up to the Id field

* wording

---------

Co-authored-by: MrGadget <9826063+MrGadget1024@users.noreply.github.com>
2023-02-15 16:39:25 +01:00
MrGadget
59dc88c981
perf: Cache Stable Hashes (#3377)
* perf: Cache Stable Hashes
- Static dictionary of message hashes
- ResetStatics

* Added debug log for future debugging.

* Update Extensions.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-14 02:45:36 +01:00
JesusLuvsYooh
adc28267f7 Updated function name in code summary. 2023-02-12 16:19:43 +00:00
MrGadget1024
80211ba827 fix: NetworkRoomManager.ReadyStatusChange is now a virtual method
- Script Template updated accordingly.

Fixes #1889
2023-02-09 11:21:06 -05:00
MrGadget
e260d1eb2a
fix: NetworkWriter - Change MaxStringLength to ushort.MaxValue (#3374)
* fix: NetworkWriter - Change MaxStringLength to ushort.MaxValue
- local `realsize` in NetworkReaderExtensions.ReadString changed to ushort with proper casting
- Comments added to NetworkWriterExtensions
- Comments added to NetworkReaderExtensions
- Log output updated in both for consistency

* Added comment

* Changes per request
2023-02-09 09:24:03 -05:00
MrGadget
9f7ed98ccc
feat: Read / Write DateTime (#3373)
* feat: Read / Write DateTime
- no UTC conversion...users can do that on their own if they want / need to.

DateTime is a public struct but has no public fields (all properties) so no error is thrown if users try to use it in SyncVar / Cmd / Rpc / NetMsg, but no value is put on the wire and SyncVar hooks don't fire because the client determines no actual value change.

* Added nullable DateTime support

* Removed mysterious using
2023-02-09 09:25:57 +01:00
MrGadget1024
efeab67331 NetworkRoomManager - refactor CheckReadyToBegin 2023-02-08 10:05:01 -05:00
MrGadget1024
324c41e1c7 NetworkRoomManager - refactor CheckReadyToBegin 2023-02-08 10:04:30 -05:00
MrGadget1024
bbcf4b38c0 breaking: MIRROR_73_OR_NEWER 2023-02-08 03:04:41 -05:00
MrGadget1024
3ef5e06431 Revert "breaking: MIRROR_73_OR_NEWER"
This reverts commit 8596f1d827.
2023-02-08 03:02:30 -05:00
MrGadget1024
8596f1d827 breaking: MIRROR_73_OR_NEWER 2023-02-08 02:57:27 -05:00
MrGadget
229a1a6509
perf: Distance Interest Management caches custom ranges to avoid runtime TryGetComponent overhead (#3372)
* fix: Distance Interest Mgmt static dictionary

* Clear on Reset

* Allow for changing range at runtime

* Use OnSpawned / OnDestroyed

* reverted default visRange

* Update DistanceInterestManagement.cs

* Update DistanceInterestManagement.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-08 05:02:55 +01:00
MrGadget1024
340a4b907a DistanceInterestManagementCustomRange - larger default visRange 2023-02-07 10:13:41 -05:00
MrGadget1024
f86010b192 DistanceInterestManagement - larger default visRange 2023-02-07 10:12:45 -05:00
MrGadget1024
cbcfeede16 fix: Removed buggy canvas from example player prefabs 2023-02-07 10:09:24 -05:00
Robin Rolf
2a021f73f5
fix: Weaver doesn't NRE on generic array (#3371)
* Failing generics weaver test for T[]

* fix: weaver doesn't handle generic array field

T[] would cause a NRE:

(0,0): error ----------------------------------------------
(0,0): error Exception :System.NullReferenceException: Object reference not set to an instance of an object.
(0,0): error    at Mirror.Weaver.Extensions.IsDerivedFrom(TypeReference tr, Type baseClass) in Mirror\Editor\Weaver\Extensions.cs:line 21
(0,0): error    at Mirror.Weaver.Extensions.IsDerivedFrom[T](TypeReference tr) in Mirror\Editor\Weaver\Extensions.cs:line 17
(0,0): error    at Mirror.Weaver.SyncObjectProcessor.FindSyncObjectsFields(Writers writers, Readers readers, Logger Log, TypeDefinition td, Boolean& WeavingFailed) in Mirror\Editor\Weaver\Processors\SyncObjectProcessor.cs:line 25
(0,0): error    at Mirror.Weaver.NetworkBehaviourProcessor.Process(Boolean& WeavingFailed) in Mirror\Editor\Weaver\Processors\NetworkBehaviourProcessor.cs:line 76
(0,0): error    at Mirror.Weaver.Weaver.WeaveNetworkBehavior(TypeDefinition td) in Mirror\Editor\Weaver\Weaver.cs:line 109
(0,0): error    at Mirror.Weaver.Weaver.WeaveModule(ModuleDefinition moduleDefinition) in Mirror\Editor\Weaver\Weaver.cs:line 125
(0,0): error    at Mirror.Weaver.Weaver.Weave(AssemblyDefinition assembly, IAssemblyResolver resolver, Boolean& modified) in Mirror\Editor\Weaver\Weaver.cs:line 208
(0,0): error ----------------------------------------------
2023-02-07 14:10:15 +01:00
MrGadget1024
63235f2f73 fix: Added missing EventSystem to example scenes 2023-02-07 02:42:09 -05:00
MrGadget1024
a3dbc9dbb6 fix: Improved Player Controller in examples 2023-02-06 11:27:29 -05:00
MrGadget1024
a8a6b403fe fix: Updated Multiple Matches example
- MatchController needed longer delay in ServerEndMatch
- Syntax and formatting
2023-02-05 23:53:24 -05:00
MrGadget1024
1399a930ac Extended wait to .5 seconds for RpcExitGame to process 2023-02-05 22:55:23 -05:00
MrGadget1024
10553cab84 Removed Debug logs 2023-02-05 22:54:32 -05:00
MrGadget1024
4920f5ff6b Merged master 2023-02-05 20:35:40 -05:00
MrGadget1024
42d4723f4e fix: Network Manager - don't call OnClientConnect from FinishLoadScene 2023-02-05 19:37:56 -05:00
MrGadget1024
40e4a57be2 fix: Network Manager now calls OnClientConnect as soon as authenticated
- No longer waits for scene change first so users can override on successful connect.
- clientLoadedScene flag is set before calling OnClientConnect.
2023-02-05 19:32:36 -05:00
MrGadget1024
70cee43a71 fix: Examples code review and updates
- ServerCallback / ClientCallback attributes applied
- Commented out Debug.Logs removed
- Syntax cleanup
- Reset Player prefabs to Default layer
- Simplified TryGetComponent usage
- All Prefabs updated to Unity 2021.3.17
2023-02-05 18:04:54 -05:00
MrGadget1024
5a161a07ce Simplified TryGetComponent usage 2023-02-05 14:14:21 -05:00
MrGadget1024
f451087d81 WIP 2023-02-05 12:16:09 -05:00
MrGadget1024
467aa70e3d CanvasController - use attributes 2023-02-05 08:28:07 -05:00
MrGadget1024
35f72c198e MatchNetworkManager - removed comments 2023-02-05 07:08:37 -05:00
MrGadget1024
dca22bd5d3 MatchController - syntax 2023-02-05 07:08:19 -05:00
MrGadget1024
d3038478cf fix: Updated examples to handle StopClient for Host 2023-02-04 21:19:29 -05:00