Commit Graph

6119 Commits

Author SHA1 Message Date
mischa
3354363eae PredictedRigidbody: add OnBeforeApplyState callback 2024-02-09 17:46:22 +01:00
MrGadget
157bf67a86
feat(NetworkRigidbody): Default Sync Direction = Client To Server (#3764)
- This is done in Reset so Network Behaviour isn't effected.
- This will not change components already in place on objects / prefabs unless user manually chooses Reset in the inspector.
2024-02-09 09:47:23 +01:00
MrGadget
fab87866f3 fix(SWT): Improved logging in ClientHandshake
- Added hint to check Server Roles for handshake key mismatches
2024-02-08 10:32:54 -05:00
MrGadget
1d5c8b6f87 feat(NetworkAnimator): Default Sync Direction = Client To Server
- This is done in Reset so Network Behaviour isn't effected.
- This will not change NA components already in place on objects / prefabs unless user manually chooses Reset in the inspector.
2024-02-07 17:40:16 -05:00
Robin Rolf
146a49eb09
breaking: perf: change NB.syncVarDirtyBits to field (#3762)
@miwarnec saw the property showing up while profiling. Very much unnecessary, so lets change that to a field.
BREAKING: Changed NetworkBehaviour.syncVarDirtyBits from a "get-only" property to a field
2024-02-07 18:04:36 +01:00
mischa
1bd84f06d1 perf(PredictedRigidbody): OnSerialize faster 2024-02-05 20:59:55 +01:00
mischa
8e21a2101c fix(PredictedRigidbody): fix host mode [FakeByte] 2024-02-05 09:10:48 +01:00
mischa
0556eb2e57 fix(PredictedRigidbody): only show 'hard correcting because too old' warning if older than entire state history limit. not when starting to record only 2-3 entries yet. 2024-02-05 09:07:36 +01:00
mischa
fcea3ce9d4 Prediction: expose physics copy components to inheriting classes 2024-02-02 09:07:31 +01:00
mischa
d00af697bb perf(PredictedRigidbody): reduce sends to 1 Hz while idle(!) 2024-02-02 09:00:55 +01:00
mischa
6b44b2a407 perf(PredictedRigidbody): only record state if changed(!) 2024-02-02 08:30:23 +01:00
MrGadget
54110660ac
fix(NetworkManager): FinishStartHost-Don't force localhost (#3759) 2024-02-01 18:06:28 +01:00
JesusLuvsYooh
fbd64dfb79
feat: NT-UR bit flag changed detection to lower bandwidth usage. (#3721)
* feat: NT-UR bit flag changed detection to lower bandwidth usage.

Also major credits to our Ninja.

* Tooltip updated

* fix: NT-Unreliable Quaternion Compression Fix

Credits to ninja of course :D

* NT-U new improvements

Credits to Ninja

* Nothing to see here..

* Added comment to Quat Rotation Fix

* Sensitivity check to improve value comparisons.

Without this, X 0 and X -4.955753E-07 (0) would trigger as a change of value.
Helps epsilon/floating point inaccuracies.

* Moved around checks.

rotationChanged not needed now for non-compressed bool, as we check individual rotation sensitivity changes.
We can move this inside quat compress check.

* Use Rot/All, not just RotX as a compress changed flag.

* Set Just Rot.

* Updated Reset to ResetState

* Fixing PR 3571/3572/3572 in this new bitflag branch

---------

Co-authored-by: ninjakickja <80569286+ninjakickja@users.noreply.github.com>
2024-02-01 11:04:23 -05:00
MrGadget
3e0a6ae64e SyncDictionary: Fixed typo in comment 2024-02-01 06:32:28 -05:00
James Frowen
188a41073f
fix(NetworkClient): Call NetworkTime.SendPing from OnTransportConnected (#3686)
* fix: fixing time not being sent on connect

client does not send ping if connecting to server within 2 seconds of starting, the new PingNow function will tell client to send the message right away instead of after lastPingTime+PingInterval

* Update Assets/Mirror/Core/NetworkTime.cs

* Update Assets/Mirror/Core/NetworkTime.cs

* Update Assets/Mirror/Core/NetworkClient.cs

* Update Assets/Mirror/Core/NetworkTime.cs

---------

Co-authored-by: MrGadget <9826063+MrGadget1024@users.noreply.github.com>
2024-02-01 06:21:15 -05:00
MrGadget
fe32a0569f NetworkTime: SendPing method added. 2024-02-01 06:14:22 -05:00
mischa
d304ada178 Prediction: warn about not readable meshes 2024-01-31 22:02:04 +01:00
MrGadget
4ca0583d2c NetworkManager: fixed comment 2024-01-30 06:07:51 -05:00
MrGadget
72f085c9a7
fix(MultiplexTransport): Use TryGetValue for Lookups (#3758) 2024-01-30 04:42:44 -05:00
mischa
6b915f3517 fix typos 2024-01-30 08:48:59 +01:00
MrGadget
4ecf28d6ab KcpTransport: fixed ToString to match other transports 2024-01-29 21:38:29 -05:00
MrGadget
3ed770ac45 fix(MultiplexTransport): Fixed log output 2024-01-29 21:34:47 -05:00
mischa
1f123b783c ThreadLog: more obvious prefix! 2024-01-29 23:54:42 +01:00
Robin Rolf
dd7337c84f
perf(Extensions): Add shim for transform.GetPositionAndRotation (#3755)
Doesn't exist in unity versions 2021.2 or earlier
2024-01-29 12:49:31 -05:00
mischa
158c5971bb perf(PredictedRigidbody): next round of optimizations 2024-01-29 12:05:14 +01:00
MrGadget
c5aa7d5808 fix(MultiplexTransport): Better Startup Logging 2024-01-29 04:51:28 -05:00
mischa
2b92ac7674 perf(Prediction): optimize ghosts. deep profiling: 93 objects before=0.08ms after =0.03ms! 2024-01-28 12:41:13 +01:00
mischa
1899539e03 perf(Prediction): optimize LateUpdate because this shows in profiler! deep profiling: 93 objects, before=0.54ms, after=0.22ms => 2.5x faster! 2024-01-28 12:29:18 +01:00
mischa
f926514a6e perf(Prediction): cache .transform getter because this is performance critical 2024-01-28 12:29:18 +01:00
mischa
5e56b96f43 syntax 2024-01-28 12:29:18 +01:00
mischa
44338c5551 Prediction: rename DestroyCopies to DestroyGhosts for consistency 2024-01-28 12:29:18 +01:00
Justin Nolan
24c0c9ed3f
Add network mesages to lookup dict in network client replace handler (#3754) 2024-01-28 11:09:47 +01:00
Justin Nolan
1c365fc3d5
Add network messages to lookup dict in network server replace handler (#3753) 2024-01-28 11:09:35 +01:00
mischa
2c603fd406 PredictedRigidbody: improve logging 2024-01-27 11:47:34 +01:00
mischa
86805e82d2 Edgegap Hosting: updated to latest version for fixes and Websocket support 2024-01-27 10:56:42 +01:00
MrGadget
7a2cae3cfd NetworkBehaviour: Improved comments 2024-01-26 02:02:53 -05:00
MrGadget
061e49acca PredictionUtils: Fixed pre-Unity 2020.3 errors 2024-01-25 09:50:46 -05:00
MrGadget
5616f8c5a0 PredictionUtils: Fixed pre-Unity 2022.3 errors 2024-01-25 09:35:02 -05:00
MrGadget
41d12e67c3
perf(Team Interest Mgmt): Complete Overhaul (#3730)
* WIP

* perf(Team Interest Mgmt) Use Dictionary instead of spawned
This is better than iterating all spawned objects and doing TryGetComponent in Update.

* TeamIntMgmt WIP

* NetworkTeam SerializeField, no SyncVar

* Fixed Tooltip

* Removed SyncVar on forceShown

* Fixed issues per review

* Fixed comments and naming

* Remove ReadOnly
2024-01-25 14:23:13 +01:00
mischa
1e62b2450a Prediction: add support for predicted objects which are children of parents with non-default scale 2024-01-25 12:22:12 +01:00
mischa
957e5c3283 Prediction: support all Joints 2024-01-25 12:01:19 +01:00
MrGadget
66df601b78
feat(SyncVar): Arrays are supported (#3750)
* feat(SyncVar): Arrays are supported

* Moved and revised SyncVarsCantBeArray test
- Now named SyncVarsCanBeArray
- thisShouldntWork renamed to thisShouldWork
2024-01-25 11:10:06 +01:00
mischa
9f8c801795 Prediction: collider materials are now copied too 2024-01-24 14:49:37 +01:00
mischa
42dffbe898 Prediction: comments 2024-01-24 14:49:34 +01:00
mischa
8564e88d97 Prediction: MovePhysicsComponents helper function 2024-01-24 14:40:01 +01:00
mischa
ea13dc67f9 Prediction: move GameObject/MonoBehaviour copying code into PredicitonUtils.cs 2024-01-24 14:38:44 +01:00
mischa
84fec3d286 oops 2024-01-24 13:36:14 +01:00
mischa
38129b7696 fix(Prediction): child colliders now have the correct layer too 2024-01-24 13:34:55 +01:00
mischa
3c3c5c56fd fix(Prediction): when copying child Colliders, copy their relative position/rotation/scale too 2024-01-24 12:48:17 +01:00
mischa
a26d5f0e60 comments 2024-01-24 12:19:39 +01:00
mischa
0e75e3153f Prediction: now supports colliders on children 2024-01-24 11:40:49 +01:00
mischa
c87c74bce1 fix(Prediction): now supports interest management by moving physics copy's components back onto self before destroying the physics copy 2024-01-23 11:30:07 +01:00
mischa
eb96b6155e Prediction: MoveAllColliders helper for reuse 2024-01-23 11:26:43 +01:00
mischa
2c65404cf3 Prediction: make Move.* functions static for reuse later 2024-01-23 11:26:43 +01:00
mischa
bf771e283c fix(Prediction): fix MoveColliders not copying isTrigger 2024-01-23 11:26:43 +01:00
mischa
b11a13795b Prediction: catch errors early 2024-01-23 10:26:56 +01:00
mischa
59ec51600a Prediction: catch errors 2024-01-23 10:26:07 +01:00
mischa
4e8890967d Prediction: fix wrong null check 2024-01-23 10:21:26 +01:00
mischa
d4f55d8761 Prediction: disable log spam 2024-01-23 10:13:48 +01:00
MrGadget
537bc3faad
fix(MirrorBenchmarkIdle): Spawn Amount Correction 2024-01-22 15:28:26 -05:00
mischa
673500b226 Prediction: physics copy now has the correct layer assigned to fix predicted objects falling through the ground in games which use custom physics collision matrix 2024-01-22 12:49:39 +01:00
MrGadget
3e254f9ef9
breaking(NetworkIdentity): Rename visible to visibility (#3748)
* breaking(NetworkIdentity): Rename visible to visibility

* Remove TODO comment
2024-01-22 12:25:40 +01:00
MrGadget
50d0008d03
feat(NetworkClient): Add ReplaceHandler with channel param (#3747)
* breaking(NetworkClient): Remove NetworkConnection parameter from ReplaceHandler
There is only one connection on client.
Aligns with RegisterHandler that takes no NetworkConnection parameter.

* feat(NetworkClient): Add ReplaceHandler with channel param
2024-01-22 10:45:32 +01:00
MrGadget
4c0d979d4d fix(Room Example): Updated Reward Script
- Added Headers
- made `available` private with ReadOnly
2024-01-21 16:18:56 -05:00
JesusLuvsYooh
b69b5ae604
perf(BenchmarkIdle Example): Lowered spawn amount to 10k (#3745)
50k causes a long delay, and looks like Unity has initially frozen, even on beefy machines.
To prevent users from thinking this, and perhaps force closing, amount is lowered to something still crazy, but more reasonable. :)
- Nothing else has been touched
2024-01-21 10:02:42 -05:00
Justin Nolan
d97739df71
Add missing replace handler override to NetworkServer (#3744) 2024-01-21 14:55:37 +01:00
mischa
ac344fd9d1 Prediction: detect renderers in children 2024-01-21 12:28:33 +01:00
MrGadget
258a84c066
feat(NetworkTransform): Default Sync Direction = Client To Server (#3741)
* feat(NetworkTransform): Default Sync Direction = Client To Server
- This is done in Reset so Network Behaviour isn't effected.
- This will not change NT components already in place on objects / prefabs unless user manually chooses Reset in the inspector.

* Update Assets/Mirror/Components/NetworkTransform/NetworkTransformBase.cs

---------

Co-authored-by: mischa <16416509+miwarnec@users.noreply.github.com>
2024-01-20 10:47:41 +01:00
MrGadget
e10ab75bf5
fix(InterestManagement): Separate ResetState (#3743)
* fix(InterestManagement): Separate ResetState
We should not have hijacked Unity's callback for runtime resets.

* Updated Template
2024-01-20 10:46:29 +01:00
MrGadget
dd1a457f71
fix(NetworkIdentity): Separate ResetState (#3742)
* fix(NetworkTransform): Separate ResetState
We should not have hijacked Unity's callback for runtime resets.

* Rename test too
2024-01-20 10:46:13 +01:00
MrGadget
87979aeb38 fix: Updated Network Transform Template 2024-01-19 14:30:05 -05:00
MrGadget
b885db3703
fix(NetworkTransform): Separate ResetState (#3738)
We should not have hijacked Unity's callback for runtime resets.
2024-01-19 18:23:35 +01:00
MrGadget
ac050a804d
fix(NetworkServerTest): Updated tests (#3739)
- Expect Errors from PR #3737
2024-01-19 09:39:05 -05:00
MrGadget
e1a1f49d0c
fix: NetworkServer and NetworkClient respect exceptionDisconnect (#3737)
Throws error for disconnect, warning otherwise.
2024-01-19 11:07:33 +01:00
mischa
1791d29da2 Prediction: force syncInterval=0 for now to reduce risks of projects misconfiguring this 2024-01-15 21:13:20 +01:00
mischa
98061c0f59 Prediction: increase default snap threshold from 0.5 to 2.0 to reduce jitter/fighting at 500ms RTT before objects are coming to rest 2024-01-15 15:46:41 +01:00
mischa
552ea5a6b1 Prediction: snapping now inserts the snapped state into history for more accurate corrections afterward 2024-01-15 10:45:31 +01:00
mischa
3719b25d3d Prediction: snapping now applies velocity. fixes stop-start-stop effect for final slow movements 2024-01-15 10:45:31 +01:00
MrGadget
f963f0eb9e fix(NetworkMatch): Added read only display of MatchID 2024-01-14 08:54:57 -05:00
mischa
0cb96901b8 Prediction: add server state ghost too 2024-01-14 13:39:29 +01:00
mischa
d3f916fc25 Prediction: inverse control flow where instead of separating renderers, we separate physics 2024-01-14 11:18:40 +01:00
mischa
ea136ee265 Prediction: recordInterval option 2024-01-14 10:15:33 +01:00
MrGadget
4e5e7a18c4 fix(NetworkAnimator): Added gameObject to Debug.LogWarnings 2024-01-13 16:27:49 -05:00
MrGadget
82a96a28f0 style(Attributes): removed space 2024-01-13 16:24:27 -05:00
mischa
832eb79876 Prediction: remove preview warning 2024-01-12 12:09:36 +01:00
mischa
7ec272f733 NetworkIdentity: make clientStarted internal, this doesn't need to be in the user facing API 2024-01-12 10:46:28 +01:00
mischa
7fae26ff6f PredictedRigidbody: add user callbacks 2024-01-11 19:45:28 +01:00
mischa
4dde5bf7d8 PredictedRigidbody: remove 'preview' warning! 2024-01-11 14:28:40 +01:00
mischa
10e7d716a7 PredictedRigidbody: now corrects rotations (hard, without deltas for now) 2024-01-11 14:23:59 +01:00
mischa
92444bfcb3 PredictedState: add quaternion requirements 2024-01-11 14:23:02 +01:00
mischa
0cb3568bb1 PredictedRigidbody: correctionThreshold renamed to positionCorrectionThreshold for clarity 2024-01-11 13:43:00 +01:00
mischa
8de65b5ae3 syntax 2024-01-11 13:42:51 +01:00
mischa
79c4298db9 Prediction: InsertCorrection moved into CorrectHistory, with complete step by step test coverage for the algorithm 2024-01-11 13:07:15 +01:00
mischa
383aff2698 fix(Prediction): revert to previous Sample() implementation, but with manual 'afterIndex' counting to fix failing test 2024-01-11 11:52:14 +01:00
mischa
e441ddb88d Predicton: update comment 2024-01-11 11:32:21 +01:00
MrGadget
d5bbfee793 fix(NetworkAnimator): Enable -> OnEnable 2024-01-10 15:06:22 -05:00
mischa
d525be9670 perf(Prediction): CorrectHistory now starts at the 'afterIndex' from Sampling. replaces two full iterations with two half = one full iteration 2024-01-10 15:56:03 +01:00
mischa
b1419db4f4 Prediction: Sample() now returns 'afterIndex' to reuse in the other iteration later 2024-01-10 15:56:01 +01:00
mischa
8473eff1ff Prediction.CorrectHistory: reuse 'key'. same but cleaner. 2024-01-10 15:41:33 +01:00
mischa
0fd342e6a9 Prediction: CompareState renamed to OnReceivedState 2024-01-10 15:39:53 +01:00