MrGadget
09ba26f239
chore(SyncDictionary): Reorganized methods
2024-04-03 17:24:29 -04:00
mischa
629c560bce
Stacked Prediction Example: show ping
2024-04-04 00:26:40 +08:00
mischa
83807e978d
Predicted Billiards: remove unused code
2024-04-02 17:12:48 +08:00
mischa
779da04b7f
Predicted Billiards Example: remove old 'inputs' code
2024-04-02 16:26:56 +08:00
mischa
83d652c7f4
fix(EdgegapHosting): only include enabled scenes in build ( #3798 )
...
* fix(EdgegapHosting): only include enabled scenes in build
* syntax
2024-04-02 16:23:51 +08:00
MrGadget
37db5037cd
chore(NetworkInformationPreview): align values to labels better
2024-04-02 00:47:30 -04:00
MrGadget
65dcbe40e1
chore: Added LagCompensatorInspector ( #3796 )
2024-03-29 13:31:52 +08:00
MrGadget
f2291fc5a8
fix(LagCompensator): Updated Attributes
...
ServerCallback, DisallowMultipleComponent, and HelpURL
2024-03-28 13:36:08 -04:00
MrGadget
24883cfe02
chore(NetworkManager): Fixed SendRate Tooltip
2024-03-28 11:28:08 -04:00
MrGadget
c439bf80e8
chore(NetworkManager): Clarified SendRate Tooltip
2024-03-28 11:21:17 -04:00
mischa
0c2321aca6
perf(PredictedRigidbody): introduce FAST mode where physics & renderers aren't separated
2024-03-28 22:11:52 +08:00
mischa
b815c87a6d
forgot to remove logs
2024-03-28 21:32:26 +08:00
mischa
5b24c886ba
fix(PredictedRigidbody): increase default motion smoothing angular velocity threshold
2024-03-28 21:31:07 +08:00
mischa
8e2bcc02d3
perf(PredictedRigidbody): OnReceivedState compares sqr magnitude (part 2)
2024-03-27 23:07:36 +08:00
mischa
a6adc2599f
syntax
2024-03-27 23:07:36 +08:00
mischa
4b632edc4c
perf(PredictedRigidbody): OnReceivedState compares sqr magnitude
2024-03-27 23:07:36 +08:00
mischa
dba373b27d
perf(PredictedRigidbody): revert syncing 'sleeping' because it cut benchmark performance in half (!)
2024-03-27 23:07:36 +08:00
MrGadget
fa64d7abc7
fix(RemoteStatistics): Changed default hotKey to backQuote
...
- Same as GUIConsole, and for the same reason (F11 is fullscreen in browser)
2024-03-26 08:17:05 -04:00
MrGadget
f15b9f3539
feat(SyncSet): Add individual Actions for operations
...
Deprecates Callback Action.
2024-03-24 12:01:17 -04:00
MrGadget
0fe29dcd9e
style(SyncSetTest): code formatting
2024-03-24 10:18:58 -04:00
MrGadget
ee61745c4d
fix(SyncSet): Clear after Callback
...
Allows users to iterate the set before it's wiped
2024-03-24 10:16:48 -04:00
MrGadget
527b754061
fix(SyncSet): Change Callback to Action
2024-03-24 10:10:29 -04:00
MrGadget
bed7e81555
style(SyncSetTest): code formatting
2024-03-24 10:07:49 -04:00
MrGadget
efae595453
chore(SyncSet): code formatting
2024-03-24 10:07:08 -04:00
mischa
717823f302
readme
2024-03-24 12:00:45 +08:00
mischa
d1f0f3098a
Prediction Example: stacked predicted boxes
2024-03-24 11:59:32 +08:00
mischa
0fc617d2cb
PredictedRigidbody: sync & show remote.sleeping to easier debug objects coming to rest
2024-03-24 11:58:33 +08:00
MrGadget
5e1c80255c
feat(SyncList): Add individual Actions for operations ( #3794 )
2024-03-23 14:54:38 -04:00
MrGadget
c69e13df2a
style(SyncListTest): Formatting
2024-03-23 14:38:23 -04:00
MrGadget
f5c2336112
chore(:SyncListTest): Improved tests
2024-03-23 14:38:23 -04:00
MrGadget
7236447ef9
fix(SyncList): Clear after Callback
...
Allows users to iterate the list before it's wiped
2024-03-23 14:38:23 -04:00
MrGadget
f2b89867a0
fix(SyncList): Change Callback to Action
2024-03-23 14:38:23 -04:00
mischa
f2d43de036
fix: PredictedRigidbody now always teleports to corrections to avoid objects not being able to move to a corrected position if there's another object inbetween
2024-03-23 23:57:40 +08:00
MrGadget
a356ef7aa4
style(SyncList): formatting
2024-03-23 11:48:27 -04:00
mischa
48beaf597c
PredictedRigidbody: virtual Awake
2024-03-23 23:43:19 +08:00
F_CIL
8420c3fc6c
Update comments for SyncVar ( #3792 )
...
The current comments for SyncVar is somewhat misleading. That is to say, it is mentioned in the comments that SyncVar can only be modified on the server side, and will be automatically synchronized to the client. But in fact, if syncDirection is set to ClientToServer, SyncVar should be modified on the client and automatically synchronized to the server and other clients. The same error exists in the comments of hook attribute
2024-03-23 18:58:42 +08:00
MrGadget
81238b69d1
feat(SyncDictionary): Add individual Actions for operations ( #3791 )
2024-03-23 10:44:52 +08:00
MrGadget
b59fa3511e
SyncDictionary: Add oldValue to AddOperation ( #3790 )
...
This is preparation for Actions coming in subsequent PR.
2024-03-22 12:49:01 +08:00
MrGadget
74a4f25a61
fix(SyncDictionary): Clear after Callback ( #3789 )
2024-03-22 11:02:54 +08:00
MrGadget
f7329f621c
chore(SyncDictionaryTest): Improved tests
2024-03-21 10:53:42 -04:00
MrGadget
e83c127747
style(SyncDictionary): code formatting
2024-03-21 09:55:16 -04:00
mischa
d19f27a936
Billiards readme: link prediction article
2024-03-21 12:37:20 +08:00
mischa
6c6b3e49e0
Billiards (not predicted): add latency simulation and improve explanation
2024-03-21 12:14:03 +08:00
mischa
831e2c506c
Predicted Billiards: fix pocket resets for latest prediction and update Readme to be ready for users!
2024-03-21 11:48:54 +08:00
mischa
3850756a5b
Predicted Billiards: fix Rigidbody access for latest prediction
2024-03-20 21:31:07 +08:00
mischa
a39c557e13
Predicted Billiards: fix dragging with predicted Rigidbody
2024-03-20 21:26:29 +08:00
mischa
376ed53483
Predicted Billiards: fix ghost materials
2024-03-20 18:38:14 +08:00
mischa
ac87583df8
perf: Prediction.CorrectHistory removed O(N) insertion. adjusting successive values is enough.
2024-03-18 16:24:12 +08:00
mischa
a84b7863ac
fix: Prediction.CorrectHistory now adjusts afterIndex after removals/insertions
2024-03-18 15:52:24 +08:00
mischa
af35e8678f
Prediction: explain insertions complexity
2024-03-18 15:49:08 +08:00
MrGadget
dfa551239e
fix(SimpleWeb.jslib): Locally Scope Runtime
2024-03-17 14:10:38 -04:00
MrGadget
36bac87b63
style(SimpleWeb.jslib): Code formatting
2024-03-17 14:09:51 -04:00
MrGadget
b062fe77ff
fix(SimpleWeb): scope websocket locally instead of globally
2024-03-15 21:29:44 -04:00
Robin Rolf
80687d3b4c
fix(LobbyServiceCreateDialogue): Added warning about Edgegap Lobby Name bug ( #3783 )
2024-03-15 16:02:50 -04:00
Robin Rolf
9641842147
fix: Edgegap Lobby Create UI Tweaks ( #3782 )
...
* chore: Edgegap Lobby Create UI Tweaks
* 3 loading dots
* help urls
2024-03-15 13:19:50 -04:00
MrGadget
84cb7089bf
EncryptionTransportInspector: Fixed button label
2024-03-15 11:44:36 -04:00
MrGadget
3ccf1c1ce5
fix(EdgegapLobbyKcpTransport): Fixed HelpURL
2024-03-15 11:16:52 -04:00
Robin Rolf
3a4f68dfcc
chore: old unity compat for PredictedRigidbody ( #3781 )
2024-03-15 22:12:20 +08:00
Robin Rolf
a23c5b75ad
feat: Edgegap Lobby Transport & Demo ( #3780 )
...
* feat: Edgegap Lobby Transport & Example
* Code Cleanup
* Rename data -> models
* Remove debug logs
* Log errors as OnClient/ServerError dont always log
* Only show joinable lobbies
* naming
* Transport help url
* old unity compat
* Unity 2020 compat as well
* Readme
* lobby name is required + correct placeholder
* Update lobby ui prefab too
* Lobby creation ui tweaks
* lobby url tooltip tweak
* Remove test lobby url
2024-03-15 14:09:04 +00:00
mischa
4d6ac92b62
Prediction: RingBuffer perf comments
2024-03-15 13:44:46 +08:00
mischa
52d00aa3e3
perf: PredictedRigidbody MoveTowardsCustom: only calculate distance factor once
2024-03-15 13:33:04 +08:00
mischa
e7e02c6662
perf: PredictedRigidbody MoveTowardsCustom
2024-03-15 13:21:11 +08:00
mischa
3daa3db8a4
perf: PredictedRigidbody smoothFollowThreshold squared caching
2024-03-15 12:55:09 +08:00
mischa
f532f0a283
PredictedRigidbody: update hard follow commented code
2024-03-15 12:32:42 +08:00
mischa
2a70862462
perf: PredictedRigidbody caches physics transform to use GetPositionAndRotation
2024-03-14 17:57:41 +08:00
mischa
0fc6688cea
perf: PredictedRigidbody UpdateGhosting: only every few frames
2024-03-14 17:55:44 +08:00
mischa
be0efc9fb6
prediction benchmark updated
2024-03-14 15:37:59 +08:00
mischa
fde90897f3
perf: PredictedRigidbody RecordState only grabs count once
2024-03-14 15:30:28 +08:00
mischa
1c7cc41bbd
perf: PredictedRigidbody state properties inlined
2024-03-14 15:30:25 +08:00
mischa
7f0a774968
perf: PredictedRigidbody RecordState only calls NetworkTime.time getter once
2024-03-14 15:30:22 +08:00
mischa
cbc67aecc0
perf: PredictedRigidbody FixedUpdate caches sqr computations
2024-03-14 15:29:52 +08:00
mischa
0781dd58c0
inlining
2024-03-14 15:29:33 +08:00
mischa
ce00db0943
perf: PredictedRigidbody caches IsMoving sqr computations
2024-03-14 15:29:30 +08:00
mischa
a4f42194cf
perf: PredictedRigidbody syncs a blittable struct once instead of doing 5 separate reads/writes
2024-03-14 14:57:38 +08:00
mischa
fb1d2ee683
PredictedSyncData struct first step: same reads & writes
2024-03-14 14:57:38 +08:00
mischa
3e852d3cb3
perf: PredictedRigidbody doesn't log "Separating Physics" anymore
2024-03-14 14:57:38 +08:00
mischa
95881c02b5
perf: Prediction.Sample() removed SortedList foreach iteration allocations(!)
2024-03-14 14:57:38 +08:00
mischa
cd4715fc7c
perf: PredictedRigidbody doesn't log hard correction when ahead anymore
2024-03-14 14:57:38 +08:00
mischa
59ef0e0cf3
PredictedRigidbody: syntax
2024-03-14 14:57:19 +08:00
mischa
949022e265
PredictedRigidbody: OnDeserialize parsing grouped together (syntax change)
2024-03-14 11:39:52 +08:00
mischa
f7a29718b9
Prediction: syntax
2024-03-13 19:33:43 +08:00
mischa
82737f58fa
readme changed from .txt to .md for formatting
2024-03-13 17:19:48 +08:00
mischa
a88ec0e5c1
Examples: Prediction Benchmark with readme & current results
2024-03-13 17:18:21 +08:00
mischa
62bf067f0e
PredictedRigidbody: make .predictedRigidbody accessible to other components!
2024-03-13 13:26:08 +08:00
MrGadget
a25b74565f
fix(ILPostProcessorAssemblyResolver): Ignore Bee.BeeDriver
...
- There is now BeeDriver2, so using StartsWith
2024-03-12 12:22:14 -04:00
Robin Rolf
fafc10b639
fix: EdgegapKcp StopHost() null reference exception ( #3779 )
...
see https://github.com/MirrorNetworking/Mirror/issues/3708
2024-03-12 00:35:21 +08:00
mischa
65f33dee90
fix : #2503 Weaver Custom Read Write functions for Serialization not working over multiple assembly definitions
2024-03-08 15:20:23 +08:00
MrGadget
f10bc77195
SimpleWebTransport: moved overrides down
2024-03-07 07:57:22 -05:00
Robin Rolf
1a915ccde7
feat: SWT overrides Transport.IsEncrypted & EncryptionCipher ( #3777 )
...
TLS isn't technically correct, but there's no good way to get that info
2024-03-07 12:52:33 +08:00
Robin Rolf
bac0f77cd7
feat: EncryptionTransport overrides IsEncrypted & Cipher ( #3776 )
2024-03-07 12:51:42 +08:00
mischa
d558c17815
feat(Transport): IsEncrypted, EncryptionCipher virtuals
2024-03-07 12:10:36 +08:00
mischa
421804378b
fix: NetworkServer.OnCommandMessage NullReferenceException due to log message accessing a guaranteed-to-be-null value
2024-03-07 11:47:51 +08:00
mischa
9e15f2423d
fix: NetworkServer.Destroy now warns instead of throwing for null objects again
2024-03-06 11:20:56 +08:00
Robin Rolf
9b2a6a3023
chore: EncryptionTransport help url ( #3774 )
2024-03-05 17:20:15 -05:00
MrGadget
e59e370f4f
Removed empty folder meta
2024-03-05 16:44:13 -05:00
MrGadget
9b103d5370
breaking: Asset Store Release
...
BREAKING CHANGE: Asset Store Release
2024-03-05 12:44:01 -05:00
Robin Rolf
dac1f6406f
fix: EncryptionTransport uses KDF to ensure fixed size key ( #3773 )
...
* reset _time
* fix: EncryptionTransport use KDF to ensure fixed size key
* Expose pub key through transport
* Old Unity compat
2024-03-05 12:13:09 -05:00
Robin Rolf
5482e60ff0
feat: EncryptionTransport ( #3768 )
...
* initial working transport
* code cleanup & transport wrap tests
* better connection tests
* Handle bouncycastle exceptions
* clean up usings
* Mirror icon :)
* list to allow for removing entries during loop
* Profiler sampling
* Unity 2019 compat
* code style
* pubkey validation
* use builtin aes engine selector
this is overly optimistic, as the hardware accelerated engine is only available on .net core 3 or higher
* Older unity version fix
2024-03-05 08:51:34 -05:00
mischa
a87e65c2c7
MIRROR_88_OR_NEWER
2024-03-05 20:26:49 +08:00
mischa
8344063563
fix: NetworkServer.Spawn now activates inactive GameObjects (for example, in case they were previously Unspawned)
2024-03-05 11:56:47 +01:00
mischa
dbc3887529
fix: NetworkServer.Destroy never destroys scene objects anymore since unlike prefabs, once they are gone we can never instantiate them again ( #3771 )
2024-03-03 17:56:39 +08:00
mischa
6b526d754f
refactor: NetworkServer DestroyObject(DestroyMode) logic moved to Unspawn() + Destroy to remove the DestroyMode parameter
2024-03-02 18:11:39 +08:00
mischa
f7d47ef8b7
LagCompensator: preview notice
2024-02-26 08:56:43 +01:00
mischa
6b21de516d
LagCompensator: rename collider field to be more obvious in Inspector
2024-02-25 12:49:34 +01:00
mischa
9081b2e3d2
feat: LagCompensator as convenience component that wraps all the Lag Compensation logic
2024-02-24 16:50:33 +01:00
mischa
8dc4b616c4
fix(Prediction): disable setting scale for joints since it causes issues with parenting
2024-02-22 08:47:25 +01:00
MrGadget
490dea82ab
fix: Safer version for FindAnyObjectByType ( #3765 )
...
Unity docs are a mess on when FindAnyObjectByType was implemented:
- 2021.3 says it is
- 2022.1 says it's not
- 2022.2 says it is
2024-02-16 17:22:59 +01:00
mischa
2ed1d7329c
fix(Prediction): ConfigurableJoints' range of motion is now moved correctly
2024-02-16 11:22:06 +01:00
mischa
78cdaef9c4
fix(PredictedRigidbody): reduce-send-rate considers angular velocity now too!
2024-02-14 19:45:28 +01:00
mischa
41a6591f8a
Prediction: sync delta rotations too [FakeByte]
2024-02-14 11:02:08 +01:00
mischa
beea27275f
Prediction: only set velocity if not kinematic
2024-02-14 11:01:03 +01:00
mischa
3960d5beaa
Prediction: better motion smoothing time
2024-02-14 11:00:40 +01:00
mischa
1532c46557
Prediction: sync angularVelocity too
2024-02-14 11:00:26 +01:00
mischa
2f9d60be48
perf(Prediction): ghosts-on-demand(!)
2024-02-11 17:07:54 +01:00
MrGadget
946716b29a
CanvasNetworkManagerHUD: fixed indent
2024-02-10 07:28:03 -05:00
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
mischa
eab82ee465
Prediction: simplify CorrectHistory by moving InsertCorrection into CompareState
2024-01-10 15:38:52 +01:00
mischa
e06fcd5535
Prediction: call ApplyState directly; move ApplyCorrection into Compare state. prepares for more improvements later.
2024-01-10 15:36:11 +01:00
mischa
9aadcbf442
syntax
2024-01-10 15:25:29 +01:00
mischa
13aa0c2e6b
Prediction: syntax
2024-01-10 14:36:44 +01:00
mischa
157a86fa7b
Prediction: simplify CompareState. detect edge cases early instead of late to prepare for more refactoring
2024-01-10 14:34:18 +01:00
MrGadget
9b9b9cc400
fix(NetworkServer): Improve Warnings ( #3727 )
...
* fix(NetworkServer): Improve Warnings
- Attempt to dig up the Object, component, and method name to make debugging easier
- Changes identity to identity.name so the object name is logged correctly.
* Update Assets/Mirror/Core/NetworkServer.cs
Co-authored-by: mischa <16416509+miwarnec@users.noreply.github.com>
* Update Assets/Mirror/Core/NetworkServer.cs
Co-authored-by: mischa <16416509+miwarnec@users.noreply.github.com>
* Use GetFunctionMethodName
* cleanup
---------
Co-authored-by: mischa <16416509+miwarnec@users.noreply.github.com>
2024-01-10 13:46:48 +01:00
MrGadget1024
ac72d3670d
fix(NetworkServer): Log message cleanup
2024-01-10 07:24:26 -05:00
MrGadget
d86d297c26
feat(RemoteProcedureCalls): Added GetFunctionMethodName ( #3732 )
...
* fix(Weaver): Move InvokeRpcPrefix from Weaver to RemoteProcedureCalls
* feat(RemoteProcedureCalls): Added GetFunctionMethodName
2024-01-10 13:17:44 +01:00
MrGadget
110580a454
fix(Weaver): Move InvokeRpcPrefix from Weaver to RemoteProcedureCalls ( #3731 )
2024-01-10 13:16:49 +01:00
mischa
849dd94ce7
Tests: Prediction.Sample()
2024-01-10 11:51:22 +01:00
mischa
b3e102e4fd
perf(PredictedRigidbody): comparing idle objects now skips recording state (= inserting into tree structure) as well
2024-01-10 10:27:27 +01:00
MrGadget
6e0c4a66d8
fix(NetworkManager): Prevent client from calling ServerChangeScene ( #3729 )
...
- Throws error if server isn't active
- allows for changing to offline scene regardless
2024-01-10 10:16:47 +01:00
MrGadget1024
6445547aef
fix(SyncVarAttributeAccessReplacer): Corrected error log message
...
- assembly identifiers were reveresed.
- also improved phrasing
2024-01-10 04:09:15 -05:00
MrGadget1024
8543f1f37d
fix(NetworkIdentity): Improved DisallowChildNetworkIdentities Error Logging
...
References the offending object so it gets highlighted in the Editor when the error is clicked.
2024-01-09 19:43:48 -05:00
MrGadget1024
28b1e8b374
fix(NetworkBehaviour): Improved OnValidate Error Logging
...
References the offending object so it gets highlighted in the Editor when the error is clicked.
2024-01-09 19:43:17 -05:00
mischa
24513562a4
perf(PredictedRigidbody) make CompareState O(1) for idle objects by comparing last first
2024-01-09 12:47:50 +01:00
mischa
a295d7d330
PredictedRigidbody: cleaner 'remember last' approach that allows for reuse elsewhere
2024-01-09 12:47:50 +01:00
mischa
f05623526c
PredictedRigidbody: explain the concept
2024-01-09 12:47:50 +01:00
JesusLuvsYooh
dd950018dc
fix: NT-Unreliable Quaternion Compression Fix ( #3725 )
...
* fix: NT-Unreliable Quaternion Compression Fix
Credits to ninja of course :D
* Client using server snapshots fix.
* Nothing to see here..
* Added comment to Quat Rotation Fix
2024-01-09 11:37:47 +01:00
mischa
c6741061d9
Prediction: explain SortedList
2024-01-08 19:41:05 +01:00
mischa
b0933a1d07
remove TODO
2024-01-08 18:01:53 +01:00
mischa
587a5fe92a
perf(Prediction): replace O(logN) binary search with O(1) in RecordState
2024-01-08 18:01:36 +01:00
mischa
609c3e1e41
Prediction: RigidbodyState moved to separate file
2024-01-08 17:48:14 +01:00
mischa
10b3b234a4
Prediction: CorrectHistory moved into Prediction.cs for easier unit testing
2024-01-08 17:42:53 +01:00
mischa
8225f97d5d
Prediction: move Debug.DrawLine before the recalculations
2024-01-08 17:42:50 +01:00
mischa
f51af69499
Prediction: move snapping above insertion because insertion would've been useless if snapped
2024-01-08 17:42:48 +01:00
mischa
19a47e67b2
Prediction: disable correction message logging
2024-01-08 17:07:28 +01:00
mischa
011ce5a331
comments
2024-01-08 11:56:07 +01:00
mischa
a843232a86
adjust defaults
2024-01-08 11:43:04 +01:00
mischa
ba16e2f949
fix(PredictedRigidbody): now snaps into place below a velocity threshold to fix dancing rigidbodies near rest position due to prediction fighting with corrections
2024-01-08 11:34:50 +01:00
MrGadget
e32914969f
feat(NetworkClient): Add RegisterHandler with ChannelId ( #3728 )
...
- Same as NetworkServer...allows NetworkMessage handlers to have a channelId param
This is NetworkServer's version:
```cs
public static void RegisterHandler<T>(Action<NetworkConnectionToClient, T, int> handler, bool requireAuthentication = true)
where T : struct, NetworkMessage
{
ushort msgType = NetworkMessageId<T>.Id;
if (handlers.ContainsKey(msgType))
{
Debug.LogWarning($"NetworkServer.RegisterHandler replacing handler for {typeof(T).FullName}, id={msgType}. If replacement is intentional, use ReplaceHandler instead to avoid this warning.");
}
// register Id <> Type in lookup for debugging.
NetworkMessages.Lookup[msgType] = typeof(T);
handlers[msgType] = NetworkMessages.WrapHandler(handler, requireAuthentication, exceptionsDisconnect);
}
```
2024-01-08 10:37:47 +01:00
MrGadget
1299676d79
fix(Multiplexer): Avoid KeyNotFoundException in OriginalId ( #3723 )
...
Fixes : #3719
2024-01-08 09:53:08 +01:00
MrGadget1024
c38603b0c5
fix(NetworkServer): RemovePlayerForConnection use NetworkConnectionToClient
...
- This has to be an oversight - all callers are passing NetworkConnectionToClient
2024-01-07 11:16:15 -05:00
mischa
7ff1fd0dfe
fix(KCP): KcpClient RawSend may throw ConnectionRefused SocketException when OnDisconnected calls SendDisconnect(), which is fine
2024-01-07 12:53:47 +01:00
mischa
df918ecf9f
fix(Prediction): InsertCorrection would produce NaN multipliers, spreading through prediction code
2024-01-07 12:37:45 +01:00