Commit Graph

5289 Commits

Author SHA1 Message Date
vis2k
9d0b3bae81 ClientScene.DestroyAllClientObjects: use same syntax as NetworkServer.CleanupNetworkIdentities 2021-03-07 11:53:07 +08:00
vis2k
6447871d8f DestroyAllClientObjects/CleanupNetworkIdentities: add comments 2021-03-07 11:51:26 +08:00
vis2k
4d971c1e57 NetworkServer.CleanupNetworkIdentities: add comments 2021-03-07 11:41:43 +08:00
vis2k
11718d9521 NetworkIdentity.OnDestroy: add comment 2021-03-07 11:39:44 +08:00
vis2k
22f1754ff8 xml to comment 2021-03-07 11:38:55 +08:00
vis2k
80fcb39b15 Update issue templates 2021-03-07 11:24:25 +08:00
Pandanym
921a7a2fde
feat: Added bool to Discovery to disable automatic active discovery (#2580)
* Use a negative value for ActiveDiscoveryInterval to disable automatic broadcasting

If you want to extend NetworkDiscoveryBase using the templates, you may hit this problem where you want to disable the automatic discovery. But you can't without modifying the base class. This is a proposition that is not breaking for users of the NetworkDiscovery.

* Added a bool to NetworkDiscoveryBase to toggle ActiveDiscovery

* Added tooltip and made enableActiveDiscovery field public
2021-03-06 21:43:40 +08:00
vis2k
a6f6f80f65
fix: NetworkIdentity.isLocalPlayer is only set, but never reset. fixes a bug where isLocalPlayer would be false in OnDestroy, so some components couldn't rely on it in OnDestroy. fixes #2615 (this is also faster than comparing ClientScene.localPlayer each time) (#2616)
* fix: NetworkIdentity.isLocalPlayer is only set, but never reset. fixes a bug where isLocalPlayer would be false in OnDestroy, so some components couldn't rely on it in OnDestroy. fixes #2615 (this is also faster than comparing ClientScene.localPlayer each time)

* fix: NetworkIdentity.OnStartClient now sets isLocalPlayer early so isLocalPlayer is true in OnStartClient callbacks already
2021-03-06 19:30:16 +08:00
vis2k
1fb8990f39 breaking: remove onLocalPlayerChanged over engineering. it was added in #1920 for #1923 which was never merged. keep it simple. 2021-03-06 18:57:58 +08:00
vis2k
2d421df9c7 comment formatting 2021-03-06 18:39:38 +08:00
vis2k
89ea278036 NetworkIdentity.isClient: add comment on how it's expected to behave 2021-03-06 18:30:16 +08:00
vis2k
ee1f941290 fix: NetworkIdentity.isServer is only set, but never reset. fixes a bug where isServer would be false in OnDestroy, so some components couldn't rely on it in OnDestroy. fixes #2533 2021-03-06 18:29:25 +08:00
vis2k
b0cae3c049 comment 2021-03-06 18:09:15 +08:00
vis2k
7e00056d97 comments 2021-03-06 18:07:40 +08:00
vis2k
e7f6a3ea81 comments 2021-03-06 18:06:50 +08:00
vis2k
e4f9b2f94d NetworkIdentity.isServer: make comments readable 2021-03-06 18:04:38 +08:00
vis2k
0e0456809b NetworkIdentity.isClient: make comments readable 2021-03-06 18:02:50 +08:00
vis2k
63f96a9c4d add comment 2021-03-06 14:31:18 +08:00
vis2k
faa8f65e42 add TODO (remove SendToReady) 2021-03-06 14:31:16 +08:00
vis2k
064d30614d [Obsolete] SendToClientOfPlayer so we can remove it later. unnecessary complexity.
(it was previously used in NetworkServer.Update, but now we refactored it)
2021-03-06 14:31:13 +08:00
vis2k
b0b89d489d add TODO 2021-03-06 14:31:11 +08:00
vis2k
aa357dc58b perf: NetworkServer.Update: separate connections update loop moved into the main loop. now there is only one connections loop anymore. 2021-03-06 14:31:07 +08:00
vis2k
5775a36e49 perf: NetworkServer.Update: inactive connection check moved into the main connections foreach loop. Avoids one extra foreach-connections loop. 2021-03-06 14:31:04 +08:00
vis2k
7f0984548c syntax: NetworkServer.Update 'conn' renamed to 'connection 2021-03-06 14:31:01 +08:00
vis2k
6b83411593 syntax: CheckForInactiveConnections moved above NetworkServer.Update 2021-03-06 14:30:58 +08:00
vis2k
6cedb5b404 perf: push->pull broadcasting part 1: feature parity 2021-03-06 14:30:55 +08:00
vis2k
57d4db2e8d Compression: largest three compression from DOTSNET with safe normalized quaternions in case clients send invalid data (#2584) 2021-03-06 14:30:51 +08:00
vis2k
9232dab3a0 add preprocessordefine 2021-03-06 14:23:00 +08:00
vis2k
25ece5a0d5 fix: NetworkManager.StopServer/StopClient: avoid NullReferenceException when called in OnApplicationQuit or from tests 2021-03-06 14:22:56 +08:00
vis2k
425e3131dc fix: NetworkServer.SpawnObserversForConnection refactored to support all visibility cases (ForceShown/ForceHidden/Default) and all systems (legacy/new/default). fixes #2606 2021-03-06 14:22:52 +08:00
vis2k
a277f5c7b7 NetworkClientTests: UpdateTransport: restore original order before we changed it in 'MemoryTransport use new EarlyUpdate' commit 2021-03-04 19:09:34 +08:00
vis2k
7641aa73d4 Websockets: use new EarlyUpdate to remove warnings 2021-03-04 17:40:23 +08:00
vis2k
7e41302ca9 Telepathy: use new EarlyUpdate to remove warnings 2021-03-04 17:37:50 +08:00
vis2k
371ddc457a MemoryTransport uses new EarlyUpdate functions to remove warning 2021-03-04 17:26:52 +08:00
Raguel
c94cbe2811
Hot fix for scene rename (#2614)
Co-authored-by: Alice Loverdrive <al.zhumagali@gmail.com>
2021-03-04 17:12:09 +08:00
Robin Rolf
978a3deb7f
Add scripting define for update loop changes (#2613) 2021-03-04 17:10:48 +08:00
vis2k
96750d80d5 use icons 2021-03-03 14:30:28 +08:00
vis2k
4f58366e0f
perf: kcp Tick split into TickIncoming/Outgoing to utilize the new NetworkEarly/LateUpdate functions. minimizes latency. (#2608) 2021-03-02 19:18:18 +08:00
vis2k
5ba677118e kcp2k V1.9: Tick() split into TickIncoming()/TickOutgoing() to use in Mirror's new update
functions.
2021-03-02 18:43:11 +08:00
vis2k
b882653768 syntax 2021-03-02 15:57:30 +08:00
vis2k
b663636a5b
perf: Transport.Client/Server Early/LateUpdate to fix data races and allow transports to reduce latency by doing all receiving & sending in one frame. (#2605)
* fix: NetworkClient/Server: use the new custom NetworkLateUpdate instead of Unity's LateUpdate. fixes possible data races where other component's LateUpdate could be called before/after NetworkServer/Client LateUpdate causing non obvious data races.

* perf: Transport.Client/Server Early/LateUpdate to fix data races and allow transports to reduce latency by doing all receiving & sending in one frame.
2021-03-02 15:28:50 +08:00
vis2k
43e6fb4c53
fix: NetworkClient/Server: use the new custom NetworkLateUpdate instead of Unity's LateUpdate. fixes possible data races where other component's LateUpdate could be called before/after NetworkServer/Client LateUpdate causing non obvious data races. (#2604) 2021-03-02 15:28:30 +08:00
vis2k
edea4089e4 perf: avoid NetworkIdentity.visibility access allocations from obsolete messages when accessing .visibilityCache 2021-03-01 19:08:59 +08:00
vis2k
a2b828a511 syntax 2021-03-01 18:41:29 +08:00
vis2k
4fedf417b1
feature: add custom NetworkEarlyUpdate (before any Update/FixedUpdate), NetworkLateUpdate (after any Update/FixedUpdate/LateUpdate) loops (#2603)
* NetworkLooper helper class with explanation

* AddSystemToPlayerLoopList from ECS and tests

* rename to Append

* change function type to UpdateFunction, actually add it

* better

* use Array.Resize

* syntax

* better logging

* addmode

* better

* FindPlayerLoopEntryIndex helper to verify

* better

* disable logs

* syntax

* test for PreLateUpdate

* add at runtime

* better log

* NetworkServer/Client.Update renamed to LateUpdate to make it more obvious

* NetworkLoops call NetworkServer/Client funcs

* logs

* Unity 2019 ifdef

* disable logs

* add comment

* obsoletes

* syntax

* change

* internal
2021-03-01 17:51:42 +08:00
vis2k
5809c50c2c
NetworkPingDisplay simplified (#2602) 2021-03-01 14:28:46 +08:00
vis2k
19f9ea0a6a Documentation moved to https://mirror-networking.gitbook.io 2021-02-26 14:15:43 +08:00
vis2k
a67fd9084b RegisterPrefab with assetId: add comment 2021-02-25 15:10:27 +08:00
vis2k
8854844a7f dontListen: add comment 2021-02-25 09:57:48 +08:00
vis2k
8d3f33081b
NetworkServer: obsolete redundant RegisterHandler version without connection parameter (#2594) 2021-02-25 09:56:02 +08:00