Commit Graph

6239 Commits

Author SHA1 Message Date
MrGadget
436ada9a0b feat(SyncSet): Add individual Actions for operations
Deprecates Callback Action.
2024-09-21 16:31:34 -04:00
MrGadget
d132a53cd1 style(SyncSetTest): code formatting 2024-09-21 16:31:34 -04:00
MrGadget
bbf85c689d fix(SyncSet): Clear after Callback
Allows users to iterate the set before it's wiped
2024-09-21 16:31:34 -04:00
MrGadget
a74a3d8db2 fix(SyncSet): Change Callback to Action 2024-09-21 16:31:34 -04:00
MrGadget
4c5a5dfec3 style(SyncSetTest): code formatting 2024-09-21 16:31:34 -04:00
MrGadget
f86acf6bed chore(SyncSet): code formatting 2024-09-21 16:31:34 -04:00
mischa
c9896c6f3e readme 2024-09-21 16:31:34 -04:00
mischa
c330942c9f Prediction Example: stacked predicted boxes 2024-09-21 16:31:34 -04:00
mischa
867bf7c492 PredictedRigidbody: sync & show remote.sleeping to easier debug objects coming to rest 2024-09-21 16:31:34 -04:00
MrGadget
824712df9c feat(SyncList): Add individual Actions for operations (#3794) 2024-09-21 16:31:34 -04:00
MrGadget
1919e61856 style(SyncListTest): Formatting 2024-09-21 16:31:34 -04:00
MrGadget
0e6661f36a chore(:SyncListTest): Improved tests 2024-09-21 16:31:34 -04:00
MrGadget
aecc8f2587 fix(SyncList): Clear after Callback
Allows users to iterate the list before it's wiped
2024-09-21 16:31:34 -04:00
MrGadget
c7305db462 fix(SyncList): Change Callback to Action 2024-09-21 16:31:34 -04:00
mischa
dc2f35a347 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-09-21 16:31:34 -04:00
MrGadget
fb1fc3a0ae style(SyncList): formatting 2024-09-21 16:31:34 -04:00
mischa
bdac4445ca PredictedRigidbody: virtual Awake 2024-09-21 16:31:34 -04:00
F_CIL
06f0a4b291 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-09-21 16:31:34 -04:00
MrGadget
5c52e78b10 feat(SyncDictionary): Add individual Actions for operations (#3791) 2024-09-21 16:31:34 -04:00
MrGadget
5c96c81e35 SyncDictionary: Add oldValue to AddOperation (#3790)
This is preparation for Actions coming in subsequent PR.
2024-09-21 16:31:34 -04:00
MrGadget
877067af76 fix(SyncDictionary): Clear after Callback (#3789) 2024-09-21 16:31:33 -04:00
MrGadget
05d68f91af chore(SyncDictionaryTest): Improved tests 2024-09-21 16:31:33 -04:00
MrGadget
0b8b11e78f style(SyncDictionary): code formatting 2024-09-21 16:31:33 -04:00
mischa
ea01b7c060 Billiards readme: link prediction article 2024-09-21 16:31:33 -04:00
mischa
a0bb738705 Billiards (not predicted): add latency simulation and improve explanation 2024-09-21 16:31:33 -04:00
mischa
cded6bc736 Predicted Billiards: fix pocket resets for latest prediction and update Readme to be ready for users! 2024-09-21 16:31:33 -04:00
mischa
e564ff92d0 Predicted Billiards: fix Rigidbody access for latest prediction 2024-09-21 16:31:33 -04:00
mischa
8334f3549c Predicted Billiards: fix dragging with predicted Rigidbody 2024-09-21 16:31:33 -04:00
mischa
a3e8ef0b8f Predicted Billiards: fix ghost materials 2024-09-21 16:31:33 -04:00
mischa
a3e6dd3cb5 perf: Prediction.CorrectHistory removed O(N) insertion. adjusting successive values is enough. 2024-09-21 16:31:33 -04:00
mischa
1d004dcd21 fix: Prediction.CorrectHistory now adjusts afterIndex after removals/insertions 2024-09-21 16:31:33 -04:00
mischa
39338b413d Prediction: explain insertions complexity 2024-09-21 16:31:33 -04:00
MrGadget
1eecc055c5 fix(SimpleWeb.jslib): Locally Scope Runtime 2024-09-21 16:31:33 -04:00
MrGadget
e257232517 style(SimpleWeb.jslib): Code formatting 2024-09-21 16:31:33 -04:00
MrGadget
c373f9f0e7 fix(SimpleWeb): scope websocket locally instead of globally 2024-09-21 16:31:33 -04:00
Robin Rolf
714f231d43 fix(LobbyServiceCreateDialogue): Added warning about Edgegap Lobby Name bug (#3783) 2024-09-21 16:31:33 -04:00
Robin Rolf
16f892e94d fix: Edgegap Lobby Create UI Tweaks (#3782)
* chore: Edgegap Lobby Create UI Tweaks

* 3 loading dots

* help urls
2024-09-21 16:31:33 -04:00
MrGadget
501129fb68 EncryptionTransportInspector: Fixed button label 2024-09-21 16:31:33 -04:00
MrGadget
8eda3231be fix(EdgegapLobbyKcpTransport): Fixed HelpURL 2024-09-21 16:31:33 -04:00
Robin Rolf
074e0d6dc6 chore: old unity compat for PredictedRigidbody (#3781) 2024-09-21 16:31:33 -04:00
Robin Rolf
9ce8f9b5f8 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-09-21 16:31:33 -04:00
mischa
9d7de40aa7 Prediction: RingBuffer perf comments 2024-09-21 16:31:33 -04:00
mischa
7cf0b884a6 perf: PredictedRigidbody MoveTowardsCustom: only calculate distance factor once 2024-09-21 16:31:33 -04:00
mischa
8705a9b0c2 perf: PredictedRigidbody MoveTowardsCustom 2024-09-21 16:31:33 -04:00
mischa
eb93ce4e3d perf: PredictedRigidbody smoothFollowThreshold squared caching 2024-09-21 16:31:33 -04:00
mischa
237ffac7a9 PredictedRigidbody: update hard follow commented code 2024-09-21 16:31:33 -04:00
mischa
501867cda0 perf: PredictedRigidbody caches physics transform to use GetPositionAndRotation 2024-09-21 16:30:36 -04:00
mischa
fbb3d563ba perf: PredictedRigidbody UpdateGhosting: only every few frames 2024-09-21 16:30:36 -04:00
mischa
fb5adf3fb7 prediction benchmark updated 2024-09-21 16:30:36 -04:00
mischa
0657da87ea perf: PredictedRigidbody RecordState only grabs count once 2024-09-21 16:30:36 -04:00
mischa
2ecafaa634 perf: PredictedRigidbody state properties inlined 2024-09-21 16:30:36 -04:00
mischa
4f642d73a3 perf: PredictedRigidbody RecordState only calls NetworkTime.time getter once 2024-09-21 16:30:36 -04:00
mischa
39fbaabd3b perf: PredictedRigidbody FixedUpdate caches sqr computations 2024-09-21 16:30:36 -04:00
mischa
c8f022584a inlining 2024-09-21 16:30:36 -04:00
mischa
ae0a6a9c3e perf: PredictedRigidbody caches IsMoving sqr computations 2024-09-21 16:30:36 -04:00
mischa
0789d41798 perf: PredictedRigidbody syncs a blittable struct once instead of doing 5 separate reads/writes 2024-09-21 16:30:36 -04:00
mischa
9497121c45 PredictedSyncData struct first step: same reads & writes 2024-09-21 16:30:36 -04:00
mischa
ed12063f49 perf: PredictedRigidbody doesn't log "Separating Physics" anymore 2024-09-21 16:30:36 -04:00
mischa
75fb9ff57c perf: Prediction.Sample() removed SortedList foreach iteration allocations(!) 2024-09-21 16:30:36 -04:00
mischa
1083dc5504 perf: PredictedRigidbody doesn't log hard correction when ahead anymore 2024-09-21 16:30:36 -04:00
mischa
07eba2dfc6 PredictedRigidbody: syntax 2024-09-21 16:30:36 -04:00
mischa
597fd933c4 PredictedRigidbody: OnDeserialize parsing grouped together (syntax change) 2024-09-21 16:30:36 -04:00
mischa
8b86e709be Prediction: syntax 2024-09-21 16:30:36 -04:00
mischa
7cc63de0ec readme changed from .txt to .md for formatting 2024-09-21 16:30:36 -04:00
mischa
4b1d179a76 Examples: Prediction Benchmark with readme & current results 2024-09-21 16:30:36 -04:00
mischa
7702db6e03 PredictedRigidbody: make .predictedRigidbody accessible to other components! 2024-09-21 16:30:36 -04:00
MrGadget
00069b9c7c fix(ILPostProcessorAssemblyResolver): Ignore Bee.BeeDriver
- There is now BeeDriver2, so using StartsWith
2024-09-21 16:30:36 -04:00
Robin Rolf
5bb5c72af9 fix: EdgegapKcp StopHost() null reference exception (#3779)
see https://github.com/MirrorNetworking/Mirror/issues/3708
2024-09-21 16:30:36 -04:00
mischa
dcfab19ab8 fix: #2503 Weaver Custom Read Write functions for Serialization not working over multiple assembly definitions 2024-09-21 16:30:36 -04:00
MrGadget
58863e16a7 SimpleWebTransport: moved overrides down 2024-09-21 16:30:36 -04:00
Robin Rolf
88f4400570 feat: SWT overrides Transport.IsEncrypted & EncryptionCipher (#3777)
TLS isn't technically correct, but there's no good way to get that info
2024-09-21 16:30:36 -04:00
Robin Rolf
ab57b62cbe feat: EncryptionTransport overrides IsEncrypted & Cipher (#3776) 2024-09-21 16:30:36 -04:00
mischa
35a3d86e87 feat(Transport): IsEncrypted, EncryptionCipher virtuals 2024-09-21 16:30:36 -04:00
mischa
42c9e6fc62 fix: NetworkServer.OnCommandMessage NullReferenceException due to log message accessing a guaranteed-to-be-null value 2024-09-21 16:30:36 -04:00
mischa
b90f6f30ab fix: NetworkServer.Destroy now warns instead of throwing for null objects again 2024-09-21 16:30:35 -04:00
Robin Rolf
c15d465874 chore: EncryptionTransport help url (#3774) 2024-09-21 16:30:35 -04:00
MrGadget
c9206716c0 Removed empty folder meta 2024-09-21 16:30:35 -04:00
MrGadget
4c36f35fdd breaking: Asset Store Release
BREAKING CHANGE: Asset Store Release
2024-09-21 16:30:35 -04:00
Robin Rolf
8f0a952d16 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-09-21 16:30:35 -04:00
Robin Rolf
d929a9a9ea 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-09-21 16:30:35 -04:00
mischa
f54b281af7 MIRROR_88_OR_NEWER 2024-09-21 16:30:35 -04:00
mischa
7715ac700b fix: NetworkServer.Spawn now activates inactive GameObjects (for example, in case they were previously Unspawned) 2024-09-21 16:29:37 -04:00
mischa
1e40999503 fix: NetworkServer.Destroy never destroys scene objects anymore since unlike prefabs, once they are gone we can never instantiate them again (#3771) 2024-09-21 16:29:37 -04:00
mischa
0164e0a4ad refactor: NetworkServer DestroyObject(DestroyMode) logic moved to Unspawn() + Destroy to remove the DestroyMode parameter 2024-09-21 16:29:37 -04:00
mischa
50c1cb71bb LagCompensator: preview notice 2024-09-21 16:29:37 -04:00
mischa
daf3e606da LagCompensator: rename collider field to be more obvious in Inspector 2024-09-21 16:29:37 -04:00
mischa
351b4b113a feat: LagCompensator as convenience component that wraps all the Lag Compensation logic 2024-09-21 16:29:37 -04:00
mischa
99bd93b95e fix(Prediction): disable setting scale for joints since it causes issues with parenting 2024-09-21 16:29:37 -04:00
MrGadget
3d7ef0cc60 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-09-21 16:29:37 -04:00
mischa
8094f88469 fix(Prediction): ConfigurableJoints' range of motion is now moved correctly 2024-09-21 16:29:37 -04:00
mischa
fb13fa37e2 fix(PredictedRigidbody): reduce-send-rate considers angular velocity now too! 2024-09-21 16:29:37 -04:00
mischa
449c33a694 Prediction: sync delta rotations too [FakeByte] 2024-09-21 16:29:37 -04:00
mischa
e7c8898679 Prediction: only set velocity if not kinematic 2024-09-21 16:29:36 -04:00
mischa
54c8caac54 Prediction: better motion smoothing time 2024-09-21 16:29:36 -04:00
mischa
05787f3853 Prediction: sync angularVelocity too 2024-09-21 16:29:36 -04:00
mischa
6cb4017deb perf(Prediction): ghosts-on-demand(!) 2024-09-21 16:29:36 -04:00
MrGadget
ee97a8bd65 CanvasNetworkManagerHUD: fixed indent 2024-09-21 16:29:36 -04:00
mischa
205cbc2d63 PredictedRigidbody: add OnBeforeApplyState callback 2024-09-21 16:29:36 -04:00
MrGadget
136c1d2b30 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-09-21 16:29:36 -04:00
MrGadget
0821e56105 fix(SWT): Improved logging in ClientHandshake
- Added hint to check Server Roles for handshake key mismatches
2024-09-21 16:29:36 -04:00