Commit Graph

5734 Commits

Author SHA1 Message Date
mischa
100847cc31
fix: #3308 scene change NetworkClient.owned null entry. NetworkIdentity.OnDestroy now removes from owned. (#3325) 2022-12-30 18:02:34 +01:00
MrGadget1024
17c5a6c956 comment added 2022-12-30 07:23:52 -05:00
MrGadget1024
205ced88aa fix: Use NetworkClient.Send
- there is a null check in Send before attempting to use the connection
2022-12-30 07:20:24 -05:00
MrGadget1024
321b68238d FPS - fixed namespace 2022-12-28 09:19:45 -05:00
vis2k
ac3d6b7699 NetworkTransformBase: expose lists for outside access 2022-12-28 09:29:40 +01:00
MrGadget1024
fdd7a32402 NetworkManager Template - moved Awake override up 2022-12-27 20:00:33 -05:00
MrGadget
3faec24681
NetworkTransformBase - make snapshot lists readonly (#3322)
- code smell
2022-12-27 22:42:22 +01:00
MrGadget1024
16d8c08a75 Network Manager Template - moved setting singleton to Awake 2022-12-27 15:23:08 -05:00
MrGadget1024
26e3c5a4fa TimeSampleTests- Bigger Within so it passes more reliably 2022-12-27 10:38:46 -05:00
mischa
6cf03d60a3
fix: #3315 ClientToServer SyncList support (#3320)
* SyncDirection demo: add SyncList test

* resaved prefab

* update error message

* logs

* disable AddOperation ReadOnly checks for now

* logs

* IsRecording adjusted to client

* kcp: larger timeout for debugging

* WORKS but not very clean yet

* update comments

* IsReadOnly moved to SyncObject

* IsWriteable lambda

* better

* fix tests

* fix host mode

* tests

* tests

* throw if undefined behaviour

* fix test

* remove logs
2022-12-26 10:39:55 +01:00
vis2k
19b712fac8 Weaver: Rpc hash collision warning improved. 2022-12-23 12:03:21 +01:00
vis2k
e1e6fb0098 NetworkBehaviour.OnSerialize/OnDeserialize: De/SerializeSyncObjects helper functions for cleaner code 2022-12-22 23:38:56 +01:00
vis2k
cd6e34f4b4 fix: kcp2k V1.26 [2022-12-22]
- KcpPeer.RawInput: fix compile error in old Unity Mono versions
- fix: KcpServer sets up a new connection's OnError immediately.
  fixes KcpPeer throwing NullReferenceException when attempting to call OnError
  after authentication errors.
- improved log messages
2022-12-22 22:59:42 +01:00
vis2k
13c349d27a SyncDirection example: increase spacing 2022-12-22 22:59:39 +01:00
vis2k
a8bb5e3647 syntax 2022-12-22 22:59:37 +01:00
MrGadget1024
4434ab1be3 NetworkServer - added gameobject param to debug logs 2022-12-22 16:23:17 -05:00
MrGadget1024
6c101c5c85 NetworkLerpRigidbody - syntax 2022-12-22 02:44:52 -05:00
MrGadget1024
6bb396ef5b NetworkRigidbody2D - syntax 2022-12-22 02:41:38 -05:00
MrGadget1024
bcd9621a89 NetworkRigidbody2D - HelpURL 2022-12-22 02:35:22 -05:00
MrGadget1024
faede54e14 NetworkRigidbody - syntax 2022-12-22 02:33:31 -05:00
MrGadget1024
274721b297 fix: AddComponentMenu hide example / obsolete components
Added [AddComponentMenu("")] to:
- BenchmarkNetworkManager
- CCUNetworkManager
- NetworkTransformChild
2022-12-22 02:22:23 -05:00
MrGadget1024
b662e367a9 NetworkRoomManager removed maxxConnections checks
- NetworkServer cuts them off earlier.
2022-12-21 09:59:27 -05:00
MrGadget1024
e468443a2e Merge branch 'master' of https://github.com/vis2k/Mirror 2022-12-21 09:57:30 -05:00
MrGadget1024
22fa56da70 Discovery Template - Changed to structs 2022-12-21 09:57:24 -05:00
vis2k
d4dc9a7585 fix broken tests 2022-12-21 10:36:22 +01:00
Tubeliar
74a24150f6
breaking: Reduce code duplication with common base class for NetworkTransform and NetworkTransformReliable (#3314)
* Move Networktransform OnGUI and gizmos to a common baseclass

* Move networktransform teleportation and reset to common base class

* Move networktransform adding snapshots to common base class

* Move networktransform snapshot construction and application to common base class

* Move networktransform awake, onvalidate and IsClientWithAuthority to common base class
2022-12-20 22:14:18 +01:00
TCROC
ebc087ad54
Fixed server and client connection attempt with AddPlayer before authentication completes (#3310)
* Fixed server and client connection attempt before authentication completes

* Removed auth check on server

* Updated with suggestions from MrGadget
2022-12-20 11:03:20 -05:00
vis2k
c50ea9cb55 script icons 2022-12-20 10:49:23 +01:00
MrGadget1024
48926e841a NetworkRoomManager - kick late joiner
- OnServerConnect should do this, but for corner case of miraculous timing, do it here too.
2022-12-18 20:31:35 -05:00
MrGadget1024
0b082530ba Restored [RequireComponent(typeof(NetworkTransform))]
In these 4 examples, NT Unreliable is fine.
2022-12-18 18:49:42 -05:00
MrGadget1024
2991598405 Merge branch 'master' of https://github.com/vis2k/Mirror 2022-12-14 23:51:44 -05:00
MrGadget1024
461ce27908 fix: Added clientStarted check to OnStopClient
- fixes: #3245
2022-12-14 23:51:08 -05:00
vis2k
fe3627f03b perf: fix: KcpTransport CongestionWindow force disabled. enabling this would cause a significant slowdown in throughput, with only 2-3 MTU sized messages being flushed per update. best to keep this disabled, as the feature may be broken in kcp. 2022-12-14 21:09:13 +01:00
vis2k
1a0a9a0cce KcpTransport: [Header] improved 2022-12-14 21:04:39 +01:00
vis2k
f14d423183 kcp2k V1.25 [2022-12-14]
- breaking: removed where-allocation. use IL2CPP on servers instead.
- breaking: KcpConfig to simplify configuration
- high level cleanups
- perf: KcpPeer: StopWatch replaced with time parameters.
  all peers can now share the same stopwatch on servers.
2022-12-14 21:04:28 +01:00
vis2k
69ac95e55e NetworkClient: improve 'found null entry' message to not sound the same as on the server 2022-12-14 18:30:16 +01:00
vis2k
3e3a1cbb44 fix: #3307 kcp2k V1.24 2022-12-14 01:04:16 +01:00
mischa
42a0c8ef67
fix: #3302 StartHost: user callbacks OnStartServer/OnStartHost aren't invoked until everything was set up in FinishStartHost. (#3304) 2022-12-13 13:17:53 +01:00
mischa
b58084583f
Welcome message moved out of NetworkManager into standalone Editor script, per-session instead of per-play. (#3306) 2022-12-13 13:16:59 +01:00
MrGadget1024
83581f0be1 syntax 2022-12-13 05:52:37 -05:00
MrGadget1024
da3f3e2f29 Merge branch 'master' of https://github.com/vis2k/Mirror 2022-12-13 05:27:14 -05:00
MrGadget1024
9c4774f14f SWT - fixed server logging showColor 2022-12-13 05:27:09 -05:00
vis2k
60948b13b3 NetworkManager.SetupServer: OnStartServer callback is now invoked manually by callers to prepare for host mode fix for #3302 2022-12-12 17:52:37 +01:00
vis2k
db8c54f913 NetworkServer.localConnection: strong typing 2022-12-12 16:35:54 +01:00
vis2k
0e9edbd0ad NetworkClient.activeHost to replace .isHostClient (consistent with NetworkServer.activeHost) 2022-12-12 15:50:45 +01:00
vis2k
a4f3872a01 NetworkServer.activeHost to replace .localClientActive 2022-12-12 15:50:41 +01:00
vis2k
6088591269 NetworkClient.RegisterSystemHandlers renamed to RegisterMessageHandlers for consistency with NetworkServer.RegisterMessageHandlers 2022-12-12 15:25:59 +01:00
vis2k
725fdc24f4 syntax for readability 2022-12-12 15:19:15 +01:00
vis2k
97b365c54f NetworkManager.IsSceneActive moved to Utils.IsSceneActive as it's a general purpose Unity function, unrelated to NetworkManager itself 2022-12-12 15:18:17 +01:00
vis2k
599519e163 NetworkManager.FinishStartHostClient merged with FinishStartHost, because the functions configures both server & client, just as FinishStartHost does. this is less confusing. 2022-12-12 14:29:42 +01:00
vis2k
636995e3f0 HostMode.ActivateHostScene to move ActivateHostScene out of NetworkServer.cs 2022-12-12 14:27:12 +01:00
vis2k
0a9fcdcf06 HostMode.InvokeOnConnected to move ConnectLocalServer out of NetworkClient 2022-12-12 14:23:48 +01:00
vis2k
def22c864d HostMode.cs - to move host mode connection setup out of NetworkClient 2022-12-12 14:13:31 +01:00
vis2k
ca3bfed93a TODO 2022-12-12 13:58:23 +01:00
vis2k
e0ffc66be8 NetworkClient.ConnectHost: local connection setup moved into a separate function 2022-12-12 13:56:13 +01:00
vis2k
1b7906c1ed NetworkManager.StartHostClient renamed to FinishStartHostClient to be more obvious 2022-12-12 13:48:11 +01:00
vis2k
d406a55e49 Utils.CreateLocalConnections for use from NetworkClient.ConnectHost & Tests 2022-12-12 13:40:50 +01:00
vis2k
8c5152dc65 revert: "Weaver: added missing HashSet<T> reader/writer generation after recent PR" - tests are still failing 2022-12-10 22:37:59 +01:00
vis2k
51eeb8a22d add comments 2022-12-10 22:36:27 +01:00
vis2k
5e6b647723 Tests: add missing attribute 2022-12-10 22:16:22 +01:00
vis2k
25794f2411 NetworkClient.InternalAddPlayer: improve error message 2022-12-10 02:47:09 +01:00
vis2k
6f98725247 MIRROR_70_0_OR_NEWER 2022-12-09 21:36:39 +01:00
vis2k
5509bb73bb fix: 2019 support 2022-12-09 21:36:36 +01:00
vis2k
8f480ad963 add comments 2022-12-09 20:47:50 +01:00
vis2k
c994bb41b7 syntax 2022-12-09 20:47:33 +01:00
Reuben Carolan
7b4e174d23 feature: Weaver HashSet<T> support (we already had List<T> support) for cases where we a struct may need to serialize a HashSet member for serialization etc. 2022-12-09 20:45:49 +01:00
MrGadget1024
c36e1f564d Added [Multiplexer] to logging 2022-12-09 09:23:53 -05:00
MrGadget1024
6ae165e308 SimpleWebTransport - Added UNITY_SERVER around Exception logging
- don't need color tags on server
2022-12-09 09:08:17 -05:00
MrGadget1024
33f1f95b8b WebSocketServer- added false for showColor to server side logging 2022-12-09 09:01:40 -05:00
MrGadget1024
1412c4606c Added [SimpleWebTransport] to logging in case using Multiplexer 2022-12-09 08:57:12 -05:00
MrGadget1024
1cf5e7f333 Added [KCP] to logging in case using Multiplexer 2022-12-09 08:42:07 -05:00
MrGadget1024
ce462aea99 Added [Telepathy] to logging in case Multiplexer is used 2022-12-09 08:35:41 -05:00
MrGadget1024
a7fb58d54f Updated NetworkManager Script Template 2022-12-07 16:22:34 -05:00
vis2k
b91c7027a5 fix: kcp V1.23 - fixes #3296 2022-12-07 19:14:59 +01:00
vis2k
98e7d2f475 Basic Example: added GUIConsole for easier debugging 2022-12-07 19:14:42 +01:00
MrGadget1024
519b9e0bd8 fixed comment 2022-12-07 19:14:39 +01:00
MrGadget1024
05e18380c0 Updated Basic Example 2022-12-07 19:14:35 +01:00
vis2k
566407cd86 Tests: fix Unity 2020 compilation 2022-12-05 07:43:25 -05:00
vis2k
5e1f17373a comment 2022-12-04 17:03:57 -05:00
vis2k
d5f7c4bc01 fix: ClientToServer [SyncVar] wouldn't be broadcast to other clients because server never set it dirty 2022-12-04 16:51:24 -05:00
vis2k
4743d27f74 SyncDirection demo: add more spacing 2022-12-04 16:38:08 -05:00
vis2k
9d00ba3261 SyncDirection demo: zoom in 2022-12-04 16:37:16 -05:00
vis2k
1598a7cd15 SyncDirection demo: local player color 2022-12-04 16:36:41 -05:00
mischa
4ae4834f7a
fix: #3290: Weaver HasNetworkConnectionParameter now supports inheritance (#3293)
* test to reproduce

* fix: #3290: Weaver HasNetworkConnectionParameter now supports inheritance
2022-12-04 17:31:41 +01:00
vis2k
859138f137 Weaver: add explanations for Is vs. IsDerivedFrom 2022-12-04 11:00:14 -05:00
vis2k
4c0c5e74d3 Tests: TargetThatIsTotallyValid renamed to TargetRpcWithNetworkConnection for easier debugging 2022-12-04 10:47:55 -05:00
mischa
6d60471868
fix: #3280 #3083 #3217 MultiplexTransport connectionId multiplexing out of int.max range (#3291)
* lookup wip

* so far

* transport lookup

* wip

* okokok

* all done

* better

* x

* tests
2022-12-04 13:57:51 +01:00
vis2k
5991a9a53a fix: MultiplexTransport.ServerStart: AddServerCallbacks is only called once, not for each transport 2022-12-03 22:20:44 -05:00
vis2k
b770f9ffa9 spacing 2022-12-03 20:04:12 -05:00
vis2k
9fd1e65eab syntax: move Multiplex connectionId calculations to the top of the file 2022-12-03 20:01:42 -05:00
vis2k
2566911e78 MultiplexTransport: Test to reproduce #3280 2022-12-03 19:49:13 -05:00
vis2k
d77655f19b comment improved 2022-12-03 19:32:58 -05:00
vis2k
9d212bc117 // A Test behaves as an ordinary method 2022-12-03 19:23:31 -05:00
vis2k
02de011ab0 perf: MultiplexTransport.ServerSend: remove unnecessary O(N) loop 2022-12-03 19:21:56 -05:00
vis2k
25959df80c MultiplexTransportTests: add ServerSend tests via NSubstitute 2022-12-03 19:17:02 -05:00
vis2k
5bfc646bd8 MultiplexTransportTests: add substitute explanations 2022-12-03 19:11:59 -05:00
vis2k
4f45e9eada comments 2022-12-03 19:01:24 -05:00
vis2k
9ad3f08392 MultiplexTransport: parameters switched to be more obvious 2022-12-03 18:59:18 -05:00
vis2k
2b1ebea7b7 MultiplexTransport: ID functions renamed to be more obvious 2022-12-03 18:56:54 -05:00
vis2k
0dfd4e15cc comments 2022-12-03 18:52:13 -05:00
vis2k
33a697896c syntax 2022-12-03 18:46:21 -05:00
vis2k
2def856707 syntax 2022-12-03 18:45:51 -05:00
vis2k
40564da5cc Tests: MultiplexTransport To/From ID computations 2022-12-03 18:42:52 -05:00
vis2k
beb9c04218 comments 2022-12-03 18:39:33 -05:00
vis2k
e8d178688f Tests: MultiplexTest renamed to MultiplexTransportTest 2022-12-03 18:36:32 -05:00
vis2k
576bcd80d7 MultiplexTransport: Id calculations made static for easier testing 2022-12-03 18:31:06 -05:00
vis2k
f4d4563a43 MultiplexTransport: syntax for readability 2022-12-03 18:28:19 -05:00
vis2k
27a22620db breaking: virtual NetworkManager.OnClientDisconnect is now simply a user callback. users don't need to call base or StopClient anymore when overwriting. 2022-12-03 13:49:27 -05:00
vis2k
ff3039bdb4 breaking: fix: circular calls from Transport -> NetworkClient -> NetworkManager.OnClientDisconnected -> StopClient() -> NetworkClient.Disconnect() -> ...
NetworkManager.OnClientDisconnect now doesn't call NetworkClient.Disconnect anymore.
NetworkManager.StopClient() still calls NetworkManager.OnClientDisconnect for compatibility.
2022-12-03 13:49:27 -05:00
vis2k
3a7a5be152 fix: #3152 #3213 NetworkClient.AddTransportHandlers ensures they are only added once, never twice even if a community Transport forgets to call OnDisconnected 2022-12-03 13:36:53 -05:00
vis2k
ce9d52e8fd fix: #3287 Telepathy NullReferenceException on client after Server was forcefully closed 2022-12-03 13:31:26 -05:00
vis2k
9da1786979 KcpTransport: expose conversion methods 2022-11-30 13:34:45 -05:00
vis2k
aeba5940bf KcpClient: expose RawReceiveBuffer 2022-11-30 13:29:55 -05:00
vis2k
6938bd15e6 Tanks demo: add NetworkPingDisplay for latency tests 2022-11-30 13:16:31 -05:00
vis2k
f0aae71f16 kcp2k V1.22 2022-11-29 13:33:22 -05:00
MrGadget
563f6feea0 syntax 2022-11-29 06:36:57 -05:00
MrGadget
91c3439948 fix: MatchInterestManagement - Use TryGetValue in Update 2022-11-29 06:35:58 -05:00
MrGadget
904d44333e MatchInterestManagement - naming consistency 2022-11-29 06:34:19 -05:00
MrGadget
c0908a2f58 fix: SceneInterestManagement - Use TryGetValue in Update 2022-11-29 06:33:33 -05:00
MrGadget
c70145d535 ServerCallback attributes added 2022-11-29 06:23:10 -05:00
MrGadget
94e315caca TeamInterestManagement- syntax 2022-11-29 06:19:41 -05:00
MrGadget
12c83effbb fix: SceneInterestManagement - use TryGetValue in OnDestroyed 2022-11-29 06:17:49 -05:00
MrGadget
f67aa64d59 fix: MatchInterestManagement - use TryGetValue in OnDestroyed 2022-11-29 06:16:53 -05:00
MrGadget
186702f810
feat: Add Mirror.Transports AsmDef (#3282)
- Keeps transports in their own assembly to users' own AsmDef's can reference them.
2022-11-28 12:12:51 +01:00
MrGadget
094b925797
fix: Fix vector3 long warnings (#3281)
* fix: Suppress Warnings in Vector3Long

* fix comment

* formatting

* Formatting
2022-11-28 12:11:44 +01:00
MrGadget
a86a115a30
Fix time as double unity 2019 (#3279)
* NetworkServer - TimeAsDouble compatibility for Unity 2019

* NetworkStatistics - TimeAsDouble compatibility for Unity 2019

* Simplified - rely on defines in NetworkTime
2022-11-27 07:35:05 -05:00
MrGadget
abd1c1689d NetworkRoomManager - Removed OnRoomClientAddPlayerFailed virtual method
- Fixes #3168
- There is no good place to call that - use OnRoomClientDisconnect or OnRoomStopClient
2022-11-26 14:03:29 -05:00
MrGadget
71668c530f Team and Match Interest Management Updates
- Fixes #3273 (removed erroneous evaluation in OnCheckObserver)
- NetworkTeam TeamId and Force Shown are now SyncVars for debugging
- Better naming of variables
2022-11-26 13:36:59 -05:00
vis2k
73b83c14cc Merge remote-tracking branch 'origin/master' 2022-11-24 11:03:34 +01:00
vis2k
d100ecb4c4 kcp2k V1.21 [2022-11-24]
- high level refactor, part one.
  - KcpPeer instead of KcpConnection, KcpClientConnection, KcpServerConnection
  - RawSend/Receive can now easily be overwritten in KcpClient/Server.
    for non-alloc, relays, etc.
2022-11-24 10:51:47 +01:00
MrGadget
51209096a3 Updated RigidbodyPhysics Example 2022-11-23 05:56:30 -05:00
MrGadget
8fc73b034b Updated Examples Player Prefabs
Default NT Settings Updated
2022-11-23 05:21:23 -05:00
MrGadget
6c041dce22 Merge branch 'master' of https://github.com/vis2k/Mirror 2022-11-23 05:08:24 -05:00
MrGadget
bd88d665de Updated Rigidbody Pysics Example 2022-11-23 05:08:10 -05:00
vis2k
e1a5f0300f perf: kcp2k V1.20 [2022-11-22]
- perf: KcpClient receive allocation was removed entirely.
  reduces Mirror benchmark client sided allocations from 4.9 KB / 1.7 KB (non-alloc) to 0B.
- fix: KcpConnection.Disconnect does not check socket.Connected anymore.
  UDP sockets don't have a connection.
  fixes Disconnects not being sent to clients in netcore.
- KcpConnection.SendReliable: added OnError instead of logs
2022-11-23 00:18:41 +01:00
vis2k
9c0814fa54 Tanks demo resaved 2022-11-22 12:04:47 +01:00
vis2k
cc170b2569 update script icon 2022-11-22 12:01:46 +01:00
vis2k
fcf148184e fix: Unity 2019 Vector3Long semicolon error:
https://forum.unity.com/threads/mirror-open-source-networking-for-unity.425437/page-37#post-8592787
2022-11-17 18:41:24 +01:00
JesusLuvsYooh
ca33b91460
A define mistake, fixed Under 2021 support. (#3276)
There is no HashCode.Combine in this function, so 2021 define is not needed.
Removing the define brings back support for under Unity 2021's
2022-11-17 14:40:12 +01:00
JesusLuvsYooh
eaf16608ca
Support for c# versions under 9 (is not to ! is) (#3275) 2022-11-17 14:37:48 +01:00
vis2k
c750851ac4 [RequireComponent(typeof(NetworkTransform))] tags disabled to support both NTs 2022-11-13 18:27:37 +01:00
vis2k
9b39e31e8a feature: perf: NetworkTransform V3 (Reliable) 2022-11-13 18:09:04 +01:00
vis2k
5f251f00ed rename NetworkTransform V2 folder 2022-11-13 17:59:54 +01:00
vis2k
c4ca2734fa NetworkServer.GetEntitySerializationForConnection renamed to SerializeForConnection (shorter) 2022-11-13 16:13:22 +01:00
mischa
260aaf6f8c
perf: bundle Rpcs together for each connection. saves 2 bytes of Rpc message headers per Rpc (#3257)
* buffer TargetRpcs

* buffer Rpcs

* TODO

* readonly

* ok

* better

* ensure max

* parse on client

* fix size

* oops

* adjust test
2022-11-12 12:53:42 +01:00
vis2k
a9e63724e3 remove old comment 2022-11-11 21:55:27 +01:00
vis2k
b04e8e681a SetSyncObjectDirtyBit helper function 2022-11-11 21:07:05 +01:00
vis2k
41ef03fff5 OnStartLocalPlayer multiple calls workaround explained 2022-11-11 18:49:43 +01:00
vis2k
7e1a579ff2 OnStartLocalPlayer initialization moved to NetworkClient 2022-11-11 18:25:16 +01:00
vis2k
ce819e253a OnStartClient initializations moved to NetworkClient 2022-11-11 18:19:04 +01:00
vis2k
8d7b3ec89b NetworkClient.CheckForStartClient to prepare for OnStartClient cleanup 2022-11-11 18:18:37 +01:00
vis2k
0c116e29f2 perf: NetworkIdentity.observers is now always initialized. removes extra null checks everywhere. 2022-11-10 21:09:29 +01:00
vis2k
264a652abe use explicit type 2022-11-10 20:49:45 +01:00
vis2k
940a467035 SendToReadyObservers: use explicit type 2022-11-10 20:47:12 +01:00
vis2k
5ffdd06602 OnStartServer isClient assignment moved to caller NetworkServer 2022-11-10 20:27:15 +01:00
vis2k
2c40b15a08 syntax 2022-11-10 20:27:01 +01:00
vis2k
75e7af1312 OnStartServer spawned assignment moved to NetworkServer caller 2022-11-10 20:26:56 +01:00
vis2k
c6df8f01d8 OnStartServer netId assignment moved to NetworkServer caller 2022-11-10 20:26:53 +01:00
vis2k
17d874fee8 OnStartServer netId != 0 check moved to NetworkServer caller 2022-11-10 20:26:49 +01:00
vis2k
e7abbaf531 OnStartServer isLocalPlayer initialization moved to NetworkServer caller 2022-11-10 20:26:34 +01:00
vis2k
f2b0f2bab2 OnStartServer isServer check + initialization moved to NetworkServer for cleaner code 2022-11-10 20:26:29 +01:00
vis2k
d79de6bf0c fix: #3258 NetworkWriter.WriteString now ensures capacity before manually writing into the buffer 2022-11-10 10:57:13 +01:00
vis2k
53a9717334 fix: Unity 2020 support 2022-11-09 15:04:12 +01:00
vis2k
1dada3bb4b MIRROR_2022_10_OR_NEWER 2022-11-09 10:55:50 +01:00
vis2k
3617ffac00 comment updated 2022-11-06 20:32:06 +01:00
vis2k
6315260286 syntax 2022-11-06 19:30:54 +01:00
vis2k
761b70e8e7 remove unused import 2022-11-03 16:16:39 +01:00
vis2k
d021c1a01e TimeSample moved to Tools 2022-11-03 16:15:18 +01:00
vis2k
e6a65bc5b2 breaking: remove SyncVar<T> which was meant to replace [SyncVar]s implementation behind the scenes. this hasn't happened, so we don't actually need it. 2022-11-03 16:09:36 +01:00
vis2k
085ed1da81 NetworkBehaviourSyncVar moved into separate file to keep NetworkBehaviour.cs clean 2022-11-03 15:57:16 +01:00
vis2k
a62452c826 TODO 2022-11-03 15:54:44 +01:00
vis2k
18cc7a0558 Pool moved to Tools 2022-11-03 15:52:39 +01:00
vis2k
a8241e5794 Mathd moved to Tools 2022-11-03 15:52:32 +01:00
vis2k
32561576ec Tools folder to distinguish between Unity integration and standalone algorithms 2022-11-03 15:50:28 +01:00
vis2k
395c447b02 feature: manual DeltaCompression to prepare for NetworkTransform V3 2022-11-01 17:34:41 +01:00
vis2k
9e352f5be2 Compression: ScaleToLong/Float Vector3Long variants to prepare for NetworkTransform V3 2022-11-01 17:34:10 +01:00
vis2k
701c16a307 feature: Vector3Long to prepare for NetworkTransform V3 2022-11-01 17:33:44 +01:00
MikiBordils
fb95c411ef
fix: NetworkDiscovery BroadcastAddress exposed for iOS support (#3255)
* exposing BroadCasting Address 

iOS build prevents broadcasting to 0.0.0.0, so we needed to expose it to change it for our built

* Update NetworkDiscoveryBase.cs

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2022-10-31 22:12:45 +01:00
vis2k
33e0bea844 CCU test demo: only sync on change 2022-10-31 10:46:34 +01:00
mischa
a2756af514
feature: RemoteStatistics tool (#3254) 2022-10-31 10:43:10 +01:00
vis2k
d26d12fb55 feature: CCU test demo 2022-10-31 09:23:26 +01:00
vis2k
68ab1816bb breaking: NetworkManager.serverTickRate renamed to sendRate because that's what it is 2022-10-31 09:15:19 +01:00
vis2k
723da0cecc fix: NetworkClient now only tries to broadcast every sendInterval. otherwise ClientToServer NetworkTransform components (which have syncInterval=0) would sync every single tick. prepare for NT V3 as well. 2022-10-30 18:54:50 +01:00
vis2k
3d3a542ddd comment 2022-10-30 18:53:57 +01:00
vis2k
b0f0c38592 script icons 2022-10-30 12:05:00 +01:00
vis2k
8039bcbda5 syntax 2022-10-27 19:17:42 +02:00
vis2k
c0ac491993 NetworkTransform: reorder code 2022-10-27 19:15:22 +02:00
vis2k
e473d154d9 fix: NetworkRigidbody now uses double time to keep precision over multiple days 2022-10-26 12:28:06 +02:00
vis2k
5abc261320 fix: NetworkLerpRigidbody now uses double time to keep precision over multiple days 2022-10-26 12:27:57 +02:00
vis2k
25d0e7929a fix: NetworkTransform now always sends at the same sendInterval as time interpolation. as configured in NetworkManager. 2022-10-26 12:17:49 +02:00
vis2k
8d3d623fac fix: NetworkManager now always applies the exposed NetworkServer.send/tickRate. fixes a bug where some NetworkBehaviours may try to send with NetworkServer.tickRate, which wouldn't be available on client because NetworkManager.StartServer was never called, so the rate was never set. 2022-10-26 11:28:40 +02:00
vis2k
485b65f18d perf: NetworkBehaviour.IsDirty: check bits before time 2022-10-25 19:05:10 +02:00
mischa
d05feed59e breaking: NetworkTransform.clientAuthority flag obsoleted. use SyncDirection instead. automatically sets syncDirection if still used. (#3250) 2022-10-25 11:53:12 +02:00
mischa
ca25956347
perf: breaking: NetworkTransformChild replaced by NetworkTransform with exposed .target. no more virtual property call. and no more redundant components which do the exact same thing. (#3249) 2022-10-25 11:44:24 +02:00
vis2k
79bb48bbf5 Compression: remove unnecessary inline 2022-10-24 12:49:35 +02:00
vis2k
1176494587 fix: NetworkClient.sendRate is now coupled to NetworkServer.sendRate in order to avoid snapshot interpolation errors where server & client may be on different send rates, components use the wrong rate to send vs. interpolate, etc. 2022-10-22 10:41:57 +02:00
vis2k
464bd365fe NetworkServer: sendRate comments improved 2022-10-22 10:37:20 +02:00
vis2k
b31eeb5a4f NetworkTransform: force syncDirection to follow the old clientAuthority state to make it obvious that there is only one source of truth 2022-10-22 10:26:31 +02:00
vis2k
dfd4d0b672 NetworkTransform: explain that sendInterval is coupled with time interpolation interval; use OnValidate to force syncInterval so it's more obvious in the Inspector 2022-10-22 10:16:43 +02:00
vis2k
38d94f36b1 NetworkTransform: always show OnGUI buffers. easier to debug issues if they aren't filled. 2022-10-21 19:34:23 +02:00
vis2k
8c09b936b9 syntax 2022-10-21 19:21:55 +02:00
mischa
d46e2eaf74 feature: NetworkBehaviour.SetDirty() to trigger custom OnSerialize without having to call SetSyncVarDirtyBit(1). prepares for NetworkTransform v3. (#3248)
* perf: SetSyncVarDirtyBit inlining

* feature: NetworkBehaviour.SetDirty() to trigger custom OnSerialize without having to call SetSyncVarDirtyBit(1).
prepares for NetworkTransform v3

* imer
2022-10-21 19:02:46 +02:00
vis2k
7c1fac9085 perf: SetSyncVarDirtyBit inlining 2022-10-21 19:02:41 +02:00
mischa
1b6768a691 feature: perf: NetworkConnectionToClient snapshot interpolated .remoteTimeline to simplify NetworkTransform (#3247)
* move fields to conn

* syntax

* split into time and value

* timeline moved to conn

* OnTimeSnapshot

* old

* NetworkClient sends TimeSnapshots

* server inserts

* update time interp from server

* buffer size limit moved too

* naming

* fix tests

* non public

* readonly

* comments
2022-10-21 19:02:36 +02:00
vis2k
c07c0797ec TimeSnapshot moved into it's own file 2022-10-21 12:42:59 +02:00
mischa
e0a91eeb3a
feature: SyncDirection (V2) to easily support client auth components without extra Rpcs/Cmds. previously OnSerialize was only server-to-client direction. (#3244)
* feature: SyncDirection to easily support client auth components without extra Rpcs/Cmds. previously OnSerialize was only server-to-client direction. (#3232)

* fix and test

* add test

* remove todo

* comments

* only serialize once

* simplify dirty checks

* syntax

* remove doulbe comments
2022-10-19 23:54:54 +02:00
vis2k
a1fbc55e8a Tests: syntax for easier debugging 2022-10-19 19:51:30 +02:00
vis2k
6f4c7cb805 feature: NetworkWriter.WriteBytes(byte*) unsafe version to prepare for BitTree delta compression 2022-10-19 19:39:08 +02:00
vis2k
76313cd30c Mirror.Components.asmdef: allow unsafe to prepare for NetworkTransform V3 2022-10-19 19:39:01 +02:00
vis2k
25a45a9ce8 Revert "Utils.RoundBitsToFullBytes from DOTSNET / Mirror II to prepare for manual per-field Delta Compression for NetworkTransform V3"
This reverts commit c7e3dc32d6.
2022-10-18 09:39:49 +02:00
vis2k
9c2444475c Tests: allow unsafe 2022-10-17 19:18:01 +02:00
vis2k
c7e3dc32d6 Utils.RoundBitsToFullBytes from DOTSNET / Mirror II to prepare for manual per-field Delta Compression for NetworkTransform V3 2022-10-17 18:41:14 +02:00
vis2k
d9aa7b152e Compression.ScaleToLong/Float to prepare for next NetworkTransform float<->long compression 2022-10-17 10:04:31 +02:00
vis2k
9d487b3a86 comment 2022-10-15 22:30:24 +02:00
vis2k
743e00bd20 SendTargetRpc: improve error messages 2022-10-15 20:42:43 +02:00
vis2k
ed0b7339eb assetId is now printed as decimal instead of hex, for consistency with Unity Inspector which also shows it as decimal. 2022-10-14 11:18:33 +02:00
vis2k
270be5f452 fix: #3234 assetId setter now allows overwriting an old assetId after duplicating a prefab.
the previous assetId Guid to int commit (4430001521) changed AssignAssetId() from modifying m_assetId to assetId.set directly, which introduced this bug.
2022-10-14 11:13:42 +02:00
vis2k
8006251382 NetworkIdentity.assetId.set: update explanation, copied the wrong one from Mirror II 2022-10-14 11:00:54 +02:00
vis2k
149d907823 syntax 2022-10-13 17:38:39 +02:00
vis2k
bf55c68d96 unnecessary 2022-10-13 17:27:41 +02:00
vis2k
9120de1016 comment 2022-10-13 13:46:52 +02:00
vis2k
e647df8fa3 feature: NetworkConnection.owned objects are now available on server AND on client 2022-10-13 13:29:06 +02:00
vis2k
6bb42e9e81 breaking: NetworkConnectionToServer.clientOwnedObjects renamed to .owned (simplify API) 2022-10-13 11:03:42 +02:00
vis2k
8cb64383fc add deprecated dates 2022-10-13 11:01:19 +02:00
mischa
a20bad57e5
breaking: .hasAuthority renamed to .isOwned because it's easier to understand, and to prepare for SyncDirection where there is a difference between: (#3231)
isOwned = is this one of the client connection's .owned entities?
authority = can we modify this component's state? depends on SyncDirection AND owned
2022-10-13 10:59:39 +02:00
vis2k
90028b43ea NetworkServer.sendInterval calculated separately so it's easier to change sendRate later 2022-10-13 10:49:07 +02:00
vis2k
1433bb7993 comment 2022-10-12 21:22:16 +02:00
vis2k
2bab435832 perf: NetworkIdentity.Serialize: only iterate if any dirty bit set, otherwise don't need to iterate again 2022-10-12 21:17:10 +02:00
vis2k
4127345f8a fix: Benchmark demo Spatial Hashing radius reduced from 200 to 30 so the monsters actually despawn when walking out of range in the demo 2022-10-12 21:14:55 +02:00
vis2k
e6886e8a84 fix: ensure Serialize writes nothing at all if not dirty and add test so it's never missed again(!).
fixes unchanged objects sending an unnecessary 1 byte dirty mask after recent dirtybits improvement.
2022-10-12 21:06:03 +02:00
vis2k
8ec99fa153 NetworkIdentity: ValidateComponents for use from initialize, serialize, deserialize all together 2022-10-12 12:33:25 +02:00
vis2k
227940e054 comment 2022-10-12 11:13:58 +02:00
vis2k
9dd04e2efa fix: NetworkIdentity.MaxNetworkBehaviours and EnsureMax function so we have the same code in both places, where previously Serialize() still checked for 255 instead of 64 2022-10-12 11:08:12 +02:00
mischa
c179d233a1
fix: Unity 2019, 2020 support added again (#3230)
* fix: Examples/AdditiveLevels/Prefabs/Portal doesn't depend on TextMeshPro anymore (for 2019 compatibility)

* packages: removed unnecessary TextMeshPro (causes errors in Unity 2019)

* fix: NetworkReader byte[] constructor added again for 2019 support

* fix: NetworkReader byte[] SetBuffer added again for 2019 support

* fix: NetworkClient OnTimeSnapshotMessage: NetworkTime.localTime for 2019 support

* fix: NetworkServer NetworkLateUpdate: NetworkTime.localTime for 2019 support

* fix: Read/WriteGuid support for 2019

* fix: NetworkTransformBase: NetworkTime.localTime for 2019 support

* fix: Grid2D new hashSet constructor without capacity for 2019 support

* 2019

* this
2022-10-10 23:32:13 +08:00
vis2k
e7110d3015 TODO 2022-10-10 14:52:19 +02:00
vis2k
5efcd8f113 inlining 2022-10-10 10:56:16 +02:00
vis2k
2310c248c1 NetworkBehaviour.IsDirty: shorter 2022-10-10 10:56:05 +02:00
vis2k
76ea4369ba NetworkClient: common Initialize() method for all connect functions 2022-10-10 10:37:37 +02:00
vis2k
fe6147dd4d fix: NetworkClient ConnectHost now initializes time interpolation as well 2022-10-10 10:34:08 +02:00
mischa
88e4260252
perf: NetworkBehaviour.Serialize safety check reduced from 4 bytes length header to 1 byte length hash, while keeping error correction (#3229)
* wip

* self correction

* separate function

* test
2022-10-10 15:51:15 +08:00
mischa
b5ac61c7b2
perf: NetworkIdentity.Serialize bandwidth reduced from 1 byte per component index to (roughly) 1 bit per component (#3228)
* serialize with varint masks

* deserialize

* test

* fixfix

* redundant

* unused

* comment

* faster

* old

* comment

* comment
2022-10-10 15:50:28 +08:00
vis2k
01cd1041f6 update comment 2022-10-09 22:34:57 +02:00
vis2k
2a3e681e03 comment 2022-10-09 16:47:12 +02:00
vis2k
58a89a5d24 Tests: split VarInt and VarUInt tests 2022-10-09 15:25:52 +02:00
vis2k
16d5a7e6ed naming 2022-10-09 15:12:01 +02:00
vis2k
822ecdaaba syntax 2022-10-09 15:11:23 +02:00
vis2k
d2775e5d42 NetworkIdentity.DeserializeAll renamed to Deserialize, now that the other Deserialize method was moved to NetworkBehaviour 2022-10-09 14:03:36 +02:00
vis2k
482d5777d9 NetworkIdentity.SerializeAll renamed to Serialize, now that the other Serialize method was moved to NetworkBehaviour 2022-10-09 14:03:11 +02:00
vis2k
389726b011 NetworkIdentity.Deserialize(NetworkBehaviour) moved to NetworkBehaviour.Deserialize 2022-10-09 13:57:43 +02:00
vis2k
882b3a69b3 NetworkIdentity.Serialize(NetworkBehaviour) moved to NetworkBehaviour.Serialize 2022-10-09 13:56:46 +02:00
vis2k
10296e0586 syntax 2022-10-09 13:51:01 +02:00
vis2k
10e34488e2 NetworkIdentity: OnDeserializeAllSafely renamed to DeserializeAll 2022-10-09 13:45:56 +02:00
vis2k
41f60a5486 NetworkIdentity: OnSerializeAllSafely renamed to SerializeAll 2022-10-09 13:45:08 +02:00
vis2k
b292aebd08 NetworkIdentity: OnDeserializeSafely renamed to Deserialize 2022-10-09 13:42:22 +02:00
vis2k
deeddac185 NetworkIdentity: OnSerializeSafely renamed to Serialize 2022-10-09 13:42:02 +02:00
vis2k
22b3c71a6c comment 2022-10-09 13:38:24 +02:00
vis2k
0745e44c5c syntax 2022-10-09 13:20:57 +02:00
vis2k
3b78b87ee9 perf: all client NetworkTransforms now run on the same NetorkClient.timeline instead of each component computing its own 2022-10-09 10:45:27 +02:00
vis2k
47d5ecd776 fix: LatencySimulation now flushes properly. fixes barely any packets getting through even on 0 settings 2022-10-09 10:31:48 +02:00
vis2k
a6d055db51 syntax 2022-10-09 10:09:44 +02:00
vis2k
666d1d7df2 fix: LatencySimulation now uses Time.unscaledTimeAsDouble for long running server precision 2022-10-09 10:08:47 +02:00
vis2k
5a2962c27b syntax 2022-10-09 10:06:37 +02:00
vis2k
f1f7b37288 NetworkManager: always show OnGUI because snapshot interpolation gui is useful in builds / for debugging as well 2022-10-09 10:04:38 +02:00
vis2k
b9bf63790f breaking: perf: fix: NetworkTime from NetworkClient snapshot interpolation timeline.
-> fixes initial delayed NetworkTime jump after 1-2s from 1.. to 500... depending on how long server was running.
-> improves accuracy / precision of NetworkTime
-> prepares for NetworkTransform & NetworkTime being on the same timeline instead of each component calculating their own timeline separately
2022-10-09 08:40:01 +02:00
vis2k
7298de3929 feature: global NetworkClient snapshot interpolation timeline.
=> for usage as significantly better NetworkTime after
=> for usage in NetworkTransform after
2022-10-09 08:36:17 +02:00
vis2k
f5d1a55fdd fix tests after recent commit 2022-10-08 08:58:09 +02:00
vis2k
1ebb4368dd perf: NetworkServer: Broadcast() now only runs every tickInterval, even if Application.targetFrameRate isn't set in host mode.
previously a host may run at 120 Hz, and even with tickInterval set to 10 Hz, Broadcast() would run 120 times per second, checking every component's dirty bits + send interval.

note that the actual _send rate_ wasn't broken.
this change simply reduces the need to check for "has send rate elapsed?"

=> prepares for NetworkClient time snapshot interpolation, where time snapshots need to be sent only every sendInterval.
=> if host mode would send every update, this would be way too much.
2022-10-07 21:44:02 +02:00
vis2k
0f8553ff2f feature: AccurateInterval from Mirror II to prepare for proper RemoteStatistics measurements & snapshot time interpolation, which requires accurate send interval even if .targetFrameRate can't be set (i.e. in host) 2022-10-07 21:20:38 +02:00
vis2k
9870705141 Header 2022-10-06 13:53:11 +02:00
vis2k
c940963779 breaking: NetworkServer.tickRate and .tickInterval, set from exposed NetworkManager.serverTickInterval.
prepares for NetworkClient time interpolation
2022-10-06 13:50:48 +02:00
vis2k
d72c769882 NetworkRoomManager: remove redundant maxConnections validation 2022-10-03 09:28:15 +02:00
vis2k
26144edc22 syntax 2022-10-03 09:27:49 +02:00
vis2k
b4149f2b94 syntax 2022-10-03 09:06:05 +02:00
vis2k
4fbbc0cbc1 NetworkManager: SetupClient() for consistency with SetupServer() 2022-10-03 08:51:50 +02:00
vis2k
d4b1239dc4 syntax 2022-09-28 11:57:02 +07:00
vis2k
7a7b5a0072 syntax 2022-09-28 11:50:54 +07:00
vis2k
02336b41b5 syntax 2022-09-28 11:34:18 +07:00
vis2k
b56b12ff54 partial classes 2022-09-28 11:33:52 +07:00
vis2k
7123a7925c feature: Snapshot Interpolation split into time + value interpolation (backported from Mirror II) to allow for global time interpolation with local value interpolation, instead of interpolating everything locally per-component 2022-09-27 13:40:57 +07:00
vis2k
34acc450bd syntax 2022-09-27 12:19:15 +07:00
vis2k
fcc6c31c7a breaking: NTSnapshot renamed to TransformSnapshot 2022-09-27 12:19:08 +07:00
vis2k
6988853ee2 comment 2022-09-27 11:55:51 +07:00
vis2k
136b8d9956 feature: NetworkWriter implicit ArraySegment conversion for convenience.
also allows for implicit NetworkWriter to NetworkReader conversion.
2022-09-27 11:53:04 +07:00
vis2k
a84bf0769e syntax 2022-09-27 11:49:59 +07:00
vis2k
2037b317c1 NetworkWriter.WriteBytes: rename parameter to avoid name collision 2022-09-25 13:56:30 +07:00
vis2k
618b7a6e16 NetworkWriterExtensions: removed static state by moving .encoding into each writer 2022-09-25 13:53:12 +07:00
vis2k
ab9a92388c Tests: ReadString_InvalidUTF8 2022-09-25 13:53:12 +07:00
vis2k
2ce8ee72a8 NetworkReaderExtensions: removed static state by moving .encoding into each reader 2022-09-25 13:53:12 +07:00
vis2k
e97da2605c feature: NetworkWriter.ToString in form of "[DD-CC-BB-AA-FF @ 5/1000]" 2022-09-25 13:26:58 +07:00
vis2k
61318d4c82 NetworkWriter.DefaultCapacity exposed 2022-09-25 13:26:53 +07:00
vis2k
3b8810f532 feature: NetworkWriter.Capacity 2022-09-25 13:24:08 +07:00
vis2k
606f147872 comment 2022-09-25 13:20:59 +07:00
vis2k
3664f26d65 Read<T>: error message improved 2022-09-25 13:19:44 +07:00
vis2k
df875a4bc1 syntax 2022-09-25 13:18:38 +07:00
vis2k
6fa5a65cd3 NetworkReader.ToString improved to be more readable: "[B2-C3-D4 @ 0/3]" 2022-09-25 13:18:04 +07:00
vis2k
27398721a2 Extensions: ArraySegment.ToHexString for convenience 2022-09-25 13:17:02 +07:00
vis2k
9525a4649d NetworkReader.ReadBytesSegment: ensure count >= 0 & guarantee exception with test. 2022-09-25 13:09:54 +07:00
vis2k
44e56ae753 NetworkReader.ReadBytes: ensure count >= 0 & guarantee exception with test.
previously it did throw the same exception unintentionally in the Array.Copy call
2022-09-25 13:08:45 +07:00
vis2k
c64925f9f6 Tests cleanup 2022-09-25 13:04:06 +07:00
vis2k
78fb0b57ae NetworkReader.ReadBytesSegment: use .Remaining 2022-09-25 13:00:57 +07:00
vis2k
98be66ec13 NetworkReader.ReadBytes: use .Remaining 2022-09-25 13:00:38 +07:00
vis2k
6e042ed2a8 NetworkReader.ReadBlittable: use .Remaining 2022-09-25 13:00:13 +07:00
vis2k
81e666af9e NetworkReader: remove SetBuffer byte[] variant. implicit ArraySegment conversion is enough. 2022-09-25 12:48:09 +07:00
vis2k
0ffa971413 NetworkReader: remove byte[] constructor, implicit ArraySegment constructor is enough 2022-09-25 12:46:47 +07:00
vis2k
c9642dbbb2 NetworkReader.ReadArray: use .Remaining 2022-09-25 12:44:06 +07:00
vis2k
451cd26b47 syntax 2022-09-25 12:43:19 +07:00
vis2k
5fa5269a11 NetworkReader: more readable syntax 2022-09-25 12:43:12 +07:00
vis2k
d3ee9e325e NetworkReader.Length renamed for Capacity (more obvious, similar to List.Capacity) 2022-09-25 12:43:03 +07:00
vis2k
ee6bbaa8ba NetworkReader.Remaining uses buffer.Count directly 2022-09-25 12:40:12 +07:00
vis2k
e3c4bf5eba syntax 2022-09-25 12:38:08 +07:00
vis2k
cf0b884c1f MessagePacking renamed to NetworkMessages (it contains more network message code than just packing) 2022-09-25 12:21:38 +07:00
vis2k
8249508fa7 MessagePacking.Unpack renamed to PackId for consistency 2022-09-25 12:10:29 +07:00
vis2k
1baadc1dbe syntax & comments 2022-09-25 12:08:13 +07:00
vis2k
458eeca0e8 syntax 2022-09-25 12:07:14 +07:00
vis2k
92a766af36 update comment 2022-09-25 12:06:16 +07:00
vis2k
4d5bf360ec MessagePacking.GetId: remove unnecessary AND 2022-09-25 12:05:28 +07:00
vis2k
16c572cfc4 syntax 2022-09-25 12:05:17 +07:00
vis2k
13e6c77bad MessagePacking.HeaderSize renamed to IdSize 2022-09-25 12:03:49 +07:00
vis2k
c97bf5a06a syntax 2022-09-25 12:00:03 +07:00
vis2k
f24acb6372 Transport.activeTransport renamed to .active 2022-09-25 12:00:03 +07:00
vis2k
94345c94bf Tests: Mathd 2022-09-25 11:50:56 +07:00
vis2k
dea63ba59e syntax 2022-09-25 11:49:35 +07:00
vis2k
827a6d310c syntax 2022-09-25 11:49:11 +07:00
vis2k
4ea52a0283 fix: InterestManagement.Awake is now protected virtual (#3214) 2022-09-24 22:13:46 +07:00
vis2k
6ba926bcb1 NetworkManager: serverTickInterval for convenience (prepares for remote statistics) 2022-09-24 22:08:20 +07:00
vis2k
80abe21047 NetworkManager: auto connect client build option for CCU test bots 2022-09-24 22:08:03 +07:00
vis2k
4d5e55511c Utils.KeepInScreen 2022-09-24 22:02:35 +07:00
vis2k
4dd3c6df8c Utils.PrettySeconds 2022-09-24 22:02:30 +07:00
vis2k
72f65a1b66 rename folder 2022-09-24 21:58:23 +07:00
vis2k
c49cc5f422 Examples/_Common folder 2022-09-24 18:17:39 +07:00
vis2k
4430001521 breaking: perf: assetId as uint instead of Guid. saves 12 bytes and much conversion magic (as suggested by james). may need to resave prefabs once in case of spawn issues. 2022-09-24 18:08:12 +07:00
vis2k
9c5e10f71b breaking: NetworkBehaviour.SerializeSyncVars return type changed from bool to void to simplify weaver (and reduce branches) 2022-09-24 17:30:20 +07:00
vis2k
7c7f83362b breaking: perf: NetworkIdentity/NetworkBehaviour OnSerialize return type changed from bool to void to a-void confusion (and branches) 2022-09-23 14:21:48 +07:00
vis2k
92ff55120a weaver comments 2022-09-23 14:21:31 +07:00
vis2k
29fef498eb Weaver NetworkBehaviourProcessor: add explanation 2022-09-23 14:19:25 +07:00
vis2k
e63742523c fix broken tests caused by default transport adding. also fixes tests using kcp unintentionally. 2022-09-23 13:55:54 +07:00
vis2k
99851945e9 NetworkManager.transport field made public so it can be set from tests 2022-09-23 13:55:17 +07:00
vis2k
b82bb86fc7 remove unused import 2022-09-23 13:39:12 +07:00
vis2k
6941df570c NetworkAnimator: remove unnecessary XML comments 2022-09-23 13:37:13 +07:00
vis2k
498c3c568a remove unused imports 2022-09-23 13:32:24 +07:00
vis2k
63e3780ecd Runtime folder renamed to Core. makes it more obvious that Components/, Transports/, Authenticators/ etc. are optional 2022-09-23 13:30:08 +07:00
vis2k
f1e53a09ae remove old Runtime/Transports folder 2022-09-23 13:29:21 +07:00
vis2k
7a8a3c6e1e KCP transport moved to root Transports folder; removed old auto upgrading which would require a circular dependency 2022-09-23 13:27:19 +07:00
vis2k
70d82f844d kcp2k moved to root Transports folder 2022-09-23 13:25:57 +07:00
vis2k
8abf17acae Middleware transport moved to root Transports folder 2022-09-23 13:24:55 +07:00
vis2k
3e4f4d7614 Multiplex transport moved to root Transports folder 2022-09-23 13:23:33 +07:00
vis2k
1507c764cc Telepathy transport moved to root Transports folder 2022-09-23 13:21:56 +07:00
vis2k
1c9101b3d4 LatencySimulation transport moved to root Transports folder 2022-09-23 13:21:21 +07:00
vis2k
78e65c40ec Transports folder next to Components; SimpleWebTransport moved from Runtime to Transports 2022-09-23 13:19:19 +07:00
vis2k
de830650a5 script icons 2022-09-23 13:12:47 +07:00
vis2k
a8c84fe9b8 perf: NetworkIdentity.assetId is now cached to avoid expensive "new GUID" construction 2022-09-17 17:13:56 +08:00
vis2k
a94fe67c23 Utils.IsSceneObject common function for NetworkServer/Client 2022-09-17 17:04:25 +08:00
vis2k
a99bc0ebf5 NetworkClient: ConsiderForSpawning renamed to IsSceneObject because that's what it checks 2022-09-17 16:58:52 +08:00
vis2k
4654a281f3 NetworkServer: ValidateSceneObject renamed to IsSceneObject - that's what it checks 2022-09-17 16:58:13 +08:00
vis2k
0fbf400697 fix: Tanks demo: remove light from projectile as well to fix visual glitches 2022-09-17 16:53:15 +08:00
vis2k
478e1d8c0e perf: NetworkWriter.WriteString now writes directly into the buffer without the intermediate stringBuffer step 2022-09-17 16:51:03 +08:00
vis2k
ed8e5529ad syntax 2022-09-17 16:42:49 +08:00
vis2k
ddb79ab0eb NetworkLoop: remove old Unity 2018 code 2022-09-17 16:36:20 +08:00
vis2k
fc0a40f802 syntax 2022-09-17 16:35:19 +08:00
vis2k
5c04b84108 fix: Tanks demo: remove tank prefab spotlight causing visual glitches 2022-09-17 16:27:30 +08:00
vis2k
18abba3506 NetworkBehaviour.ComponentIndex changed to byte for consistency 2022-09-17 16:19:39 +08:00
vis2k
3e4b5b3660 perf: Grid2D initial capacity to avoid warmup allocations 2022-09-17 16:13:09 +08:00
vis2k
a6f450710c perf: Grid2D as struct to avoid memory indirection 2022-09-17 16:11:38 +08:00
vis2k
34e6e8fbd3 readonly 2022-09-17 16:09:40 +08:00
vis2k
dac82ed1e2 NetworkStatistics: expose statistics to other components 2022-09-15 13:17:38 +08:00
vis2k
bb4f2b99ec MIRROR_2022_9_OR_NEWER 2022-09-15 12:16:40 +08:00
vis2k
ac352c084d NetworkManager.GetStartPosition can now be overwritten 2022-09-14 21:38:57 +08:00
vis2k
4b75d2b53d ConsiderForSpawning & ValidateSceneObject explanations 2022-09-10 21:32:36 +08:00
vis2k
7b08d3afdd NetworkScenePostProcess set inactive explanation 2022-09-07 13:21:09 +08:00
Robin Rolf
17446f3aa3
perf: Application.isPlaying in hot path is slow (#3210)
This showed up during a recent il2cpp profile and is accounting for 1% of total cpu usage while being completely unnecessary outside of the editor
https://share.dl.je/2022/08/2022-08-28_14-44-14_CfEcmlR1L6.png
2022-09-01 19:58:32 +08:00
Yu Long
aac75491ac
Add Check for NetworkServer.Spawn (#3205)
* Added a check for repeatedly calling NetworkServer.Spawn on the same gameObject

* Update NetworkServer.cs

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2022-08-25 11:56:07 +08:00
vis2k
d9394b0dc8 fix: Telepathy Always enqueue Disconnected event (from imer) 2022-08-12 13:01:19 +08:00
Robin Rolf
1891d46b3c
fix: Telepathy ClientDisconnect calls DC event (#3198)
Kcp calls OnDisconnected for manual disconnections too so this is more consistent
2022-08-08 15:07:43 +08:00
hyouuu
8d1061089b
Make NetworkPingDisplay's width & height configurable (#3196) 2022-08-08 10:23:56 +08:00
vis2k
88825e45d5 fix: LatencySimulation error 2022-07-25 23:25:34 +08:00
vis2k
589e1f6258 Benchmark Example: backport FPS counter from Mirror II 2022-07-25 21:24:51 +08:00
eiei114
96b87ae260
fix comment typo (#3194) 2022-07-24 16:47:25 +08:00
vis2k
9846468dcc fix test 2022-07-22 12:40:12 +08:00
vis2k
0b984caced fix test 2022-07-22 12:39:43 +08:00
vis2k
77cac1b03d fix test 2022-07-22 12:38:52 +08:00
vis2k
e8fae820d1 fix test 2022-07-22 12:28:31 +08:00
vis2k
7f680ec775 fix test 2022-07-22 12:26:06 +08:00
vis2k
1320472b10 perf: Read/WriteGuid without allocations 2022-07-22 12:26:06 +08:00
vis2k
5f4a03109d fix: breaking: Spatial hashing interest management resolution formula fixed. this is why spatial hashing visibility range always seemed a bit lower than with distance interest management. 2022-07-11 23:40:37 +08:00
vis2k
97fe2764bc Tests: Grid2D proper setup 2022-07-11 20:43:56 +08:00
vis2k
0cff9d6f5d
feature: Snapshot Interpolation V2 (make sure call base Awake() when inheriting!; note this removes the interpolatePosition/Rotation/Scale options) (#3184)
* yo

* fix bug exposed by tests

* tests and latest changes

* NT
2022-06-26 20:03:42 +08:00
vis2k
880a4eebd6 Snapshot Interpolation Demo: adjust namespaces so we can use 'SnapshotInterpolation.' to actual 2022-06-16 13:26:38 +07:00
vis2k
db50c39b91 fix: Snapshot Interpolation Demo: assign material color to instanced material, fixes material asset changing color permanently 2022-06-13 18:18:59 +07:00
vis2k
f92942bb5f Snapshot Interpolation Demo: vsync notice 2022-06-13 18:17:50 +07:00
vis2k
1b0901e966 fix: Snapshot Interpolation Example: latency was accidentally applied to remoteTime instead of delivery time 2022-06-13 17:48:09 +07:00
vis2k
9915f4c0b3 Snapshot Interpolation Demo: simplify latency jitter for easier testing 2022-06-13 17:46:31 +07:00
vis2k
5063fdd08f LatencySimulation: latencySpike renamed to jitter 2022-06-13 12:18:28 +07:00
vis2k
999cf0fe32 Snap Interp demo GUI width 2022-06-12 00:15:08 +07:00
Justin Nolan
19efa2dd86
Fix compile error (#3179) 2022-06-10 22:53:05 +09:00
Justin Nolan
4b40dea700
switch expressions are not supported in unity 2020 (#3178) 2022-06-10 22:25:38 +09:00
Robin Rolf
d48d59cc08
fix: SWT header lookup needs to be case insensitive (#3176)
* fix: SWT header lookup needs to be case insensitive

See https://github.com/vis2k/Mirror/issues/3175
Closes #3175

* fix: SWT skips headers just ending in the key name

See 3495845b8c
2022-06-09 10:54:23 +08:00
vis2k
7bfa0906b0
Snapshot Interpolation visual example (#3171) 2022-06-09 10:53:49 +08:00
vis2k
e04293f980 breaking: SnapshotInterpolation.Compute(): add 'out catchup' for debugging 2022-06-03 16:40:53 +07:00
MrGadget
6de039cf9d Merge branch 'master' of https://github.com/vis2k/Mirror 2022-05-31 08:29:04 -04:00
MrGadget
77259e1c31 change label text 2022-05-31 08:28:52 -04:00
vis2k
f65b9cadbe Write/ReadBlittable explanation why private 2022-05-27 22:45:12 +07:00
vis2k
bb8412d5e7 NetworkIdentity Serialization: explain write index 2022-05-26 23:32:08 +07:00
MrGadget
adb66b427c
NetworkBehaviour: Improved logging (#3165)
* NetworkBehaviour: Improved logging

* NetworkBehaviour: Improved logging
2022-05-25 14:33:23 -04:00
MrGadget
50e6bb1101 Online scene removed Safety plane 2022-05-14 12:20:30 -04:00
MrGadget
8139c28ff0 Online scene lighting 2022-05-14 12:19:55 -04:00
MrGadget
4c52c13160 Removed CanvasRenderer 2022-05-14 12:10:27 -04:00
MrGadget
e0e098531e fixed NetworkManager Script Tempate
- broken by PR #3158
2022-05-13 10:32:44 -04:00
MrGadget
6ac03a02d6 Improved Chat example 2022-05-13 10:09:49 -04:00
MrGadget
876adb8f42 Improved Chat example 2022-05-13 09:54:12 -04:00
MrGadget
e27a1cd1e7 Improved Chat example 2022-05-13 09:39:22 -04:00
vis2k
096fe38080
breaking: OnError(Exception) changed to OnError(enum, reason) (#3158)
* TransportError

* adjust mirror

* obsoletes

* adjust transports

* Refused
2022-05-13 17:28:47 +08:00
vis2k
a2d35b82b6 Transport syntax: group fields together 2022-05-12 12:36:48 +08:00
vis2k
91e2a0f79b feature: kcp2k V1.19: OnError ErrorCodes 2022-05-12 10:30:59 +08:00
MrGadget
d3fa0c67e5
fix: NetworkClient - Check for duplicate sceneId (#3157)
* fix: NetworkClient - Check for duplicate sceneid

* renamed local var

* Update NetworkClient.cs

Co-authored-by: vis2k <info@noobtuts.com>
2022-05-12 00:06:43 +08:00
MrGadget
a8202e5d0c renamed local var 2022-05-11 10:59:10 -04:00
MrGadget
c35ddd20db fix: NetworkClient - Check for duplicate sceneid 2022-05-11 10:41:10 -04:00
vis2k
1e40bb4f00 NetworkClient/NetworkServer OnTransportError now logs a warning instead of an exception, indicating that it's a transport error and that it's fine. otherwise all kcp info/warnings would now be logged as exceptions 2022-05-08 10:51:22 +08:00
vis2k
ed8911dfef NetworkServer.OnError renamed to OnTransportError for consistency 2022-05-08 10:46:04 +08:00
vis2k
4c758c25dc NetworkClient.OnError renamed to OnTransportError for consistency 2022-05-08 10:45:31 +08:00
vis2k
35f1f225f3 fix: kcp2k V1.18
- feature: OnError to allow higher level to show popups etc.
- feature: KcpServer.GetClientAddress is now GetClientEndPoint in order to
  expose more details
- ResolveHostname: include exception in log for easier debugging
- fix: KcpClientConnection.RawReceive now logs the SocketException even if
  it was expected. makes debugging easier.
- fix: KcpServer.TickIncoming now logs the SocketException even if it was
  expected. makes debugging easier.
- fix: KcpClientConnection.RawReceive now calls Disconnect() if the other end
  has closed the connection. better than just remaining in a state with unusable
  sockets.

=> error handling based on #3155
=> fixes #3143
2022-05-08 10:42:32 +08:00
MrGadget
c65eed8ea8 Merge branch 'master' of https://github.com/vis2k/Mirror 2022-05-06 12:20:34 -04:00
MrGadget
efa2b3d4ca Syntax 2022-05-06 12:20:23 -04:00
MrGadget
876d6d86dc removed private 2022-05-06 12:19:50 -04:00
vis2k
818e0ca9fd NetworkServer.SendToObservers: use explicit NetworkConnectionToClient type 2022-04-29 19:01:26 +08:00
vis2k
298435001a fix: #3144 Reader/Writer Sprite null support & test to guarantee it never happens again 2022-04-29 10:08:33 +08:00
vis2k
f413c91cde Test: Reader/Writer Sprite 2022-04-29 10:05:23 +08:00
vis2k
ae1c7c5fe4 fix: #3144 Reader/Writer Texture2D null support & test to guarantee it never happens again 2022-04-29 09:59:52 +08:00
vis2k
b709453057 fix: NetworkReader/Writer Texture2D now sends dimensions too. fixes "Texture2D.SetPixels32: size of data to be filled was larger than the size of data available in the source array. (Texture '')" 2022-04-29 09:55:19 +08:00
vis2k
d235037954 fix: NetworkReader.ReadTexture2D fixed 'reader not found for Color32[]' error when using it from tests 2022-04-29 09:44:58 +08:00
vis2k
3a742bb7da Tests: NetworkReader/Writer Texture2D tests added 2022-04-29 09:44:54 +08:00
vis2k
728e6e2fdf syntax 2022-04-28 18:53:37 +08:00
vis2k
6c1dc5255e remove unused import 2022-04-20 10:33:53 +08:00
vis2k
1aaa4ce2a4
perf: Cmd/Rpc bandwidth hash size reduced from 4 => 2 bytes (#3148) 2022-04-20 11:33:14 +08:00
vis2k
98d7a9d7d1 NetworkReader/Extensions: inlining ReadBlittable is enough. Don't inline ReadInt etc. too, we don't want ReadBlittable to be copied in place everywhere. 2022-04-20 10:28:30 +08:00
vis2k
4ffb9dfafc NetworkWriter/Extensions: inlining WriteBlittable is enough. Don't inline WriteInt etc. too, we don't want WriteBlittable to be copied in place everywhere. 2022-04-20 10:26:43 +08:00
vis2k
cebfab010f fix: Benchmark movement destinations set around start, not around position. prevents them from stopping to move because of the wander off protection. 2022-04-19 13:29:38 +08:00
MrGadget
99d3a91f17 Fixed Authenticator Comments
- Fixes #3146
2022-04-18 22:58:16 -04:00
MrGadget
2db726df2e fix: TeamInterestManagement OnDestroyed logic 2022-04-18 09:07:15 -04:00
MrGadget
0e9d86f563
breaking: Removed Obsoletes (#3142)
* Removed Experimental NetworkTransform

* NetworkRoomManager: Removed Obsoletes

* NetworkTransformBase: Removed Obsoletes

* NetworkBehaviour: Removed Obsoletes

* NetworkManager: Removed Obsoletes

* NetworkServer: Removed Obsoletes

* SyncObject: Removed Obsoletes

* fixed comment

* fixed XML comment
2022-04-18 08:05:53 +07:00
MrGadget
8d07be97ed fixed XML comment 2022-04-17 12:40:17 -04:00
MrGadget
63fdd53903 fixed comment 2022-04-17 12:23:44 -04:00
vis2k
3839fafade remove unused import 2022-04-17 14:16:36 +08:00
vis2k
bec8e01c69 MIRROR_66_0_OR_NEWER 2022-04-17 14:01:24 +08:00
MrGadget
9c47d87bce XML Comments 2022-04-16 12:46:33 -04:00
MrGadget
c86deedbd9 Updated NetworkStatistics
- Reorganized to method call order
- Added component attributes
- XML comments for docs
2022-04-16 12:24:15 -04:00
vis2k
4d0cd1054a
fix: #3138, 3135 revert Cmd/Rpc from 2 byte indices back to 4 byte function hashes for stability (#3139)
* Revert "fix: Weaved static constructors need to always run (#3135)"

This reverts commit b0624b2f64.

* Revert "perf: Rpcs/Cmds functionHash bandwidth reduced from 4 => 2 bytes (with the potential for 1 byte VarInt) (#3119)"

This reverts commit a868368eca.

* comment
2022-04-16 19:53:55 +07:00
MrGadget
3dba6a3833 NetworkRoomManager log update 2022-04-15 11:25:14 -04:00
Robin Rolf
b0624b2f64
fix: Weaved static constructors need to always run (#3135)
Static constructors are lazily called when the class is first "used"
 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/static-constructors
 > It is called automatically before the first instance is created or any static members are referenced.
 This means, in particular circumstances, client and server may diverge on which classes they have "loaded"
 and thus the rpc index will be desynced
 One such example would be on-demand-loading of prefabs via custom spawn handlers:
   A game might not want to preload all its monster prefabs since there's quite many of them
   and it is practically impossible to encounter them all (or even a majority of them) in a single play
   session.
   So a custom spawn handler is used to load the monster prefabs on demand.
   All monsters would have the "Monster" NetworkBehaviour class, which would have a few RPCs on it.
   Since the monster prefabs are loaded ONLY when needed via a custom spawn handler and the Monster class
   itself isn't referenced or "loaded" by anything else other than the prefab, the monster classes static
   constructor will not have been called when a client first joins a game, while it may have been called
   on the server/host. This will in turn cause Rpc indexes to not match up between client/server
 By just forcing the static constructors to run via the [RuntimeInitializeOnLoadMethod] attribute
 this is not a problem anymore, since all static constructors are always run and all RPCs will
 always be registered by the time they are used
2022-04-12 12:00:15 +08:00
MrGadget
3188472f74 Syntax: same method grouping as NetworkReaderExtenstions 2022-04-11 09:42:23 -04:00
MrGadget
2f76c73c41 fix: NetworkWriterExtensions:WriteTexture2D call WriteArray instead of Write 2022-04-11 09:12:35 -04:00
vis2k
92c5b54034 add comment 2022-04-04 20:36:42 +08:00
vis2k
eded0a2b15 fix: #2705 NetworkClient.SpawnPrefab looks for spawn handlers before looking for registered prefabs, instead of the other way around 2022-04-04 19:21:26 +08:00
vis2k
7d4a9c46e4 NetworkClient: RegisterPrefabIdentity double registration warning improved with explanation (related to #2705) 2022-04-04 19:13:46 +08:00
vis2k
1a256b5060 Tanks Example: destroy projectile after 2 seconds instead of 5 seconds 2022-04-04 11:51:57 +08:00
vis2k
1a09f0dc58 Tanks Example: reuse DestroySelf() 2022-04-04 11:39:44 +08:00
vis2k
1a6c5de8ac
fix: #2060 serializing GameObjects / NetworkIdentities now throws an obvious exception for prefabs / unspawned objects (#3132)
* fix: #2060 serializing GameObjects / NetworkIdentities now throws an obvious exception for prefabs / unspawned objects

* NetworkWriter: WriteGameObject reuses WriteNetworkIdentity

* warning instead of exception
2022-04-04 01:24:35 +08:00
vis2k
3ec5ca758e comment 2022-04-03 11:39:30 +08:00
vis2k
243821f5b1 fix: #2972 ReadNetworkBehaviour now reads the correct amount of data even if the NetworkIdentity has disappeared on the client.
added test to guarantee it never happens again.
2022-04-03 10:50:04 +08:00
vis2k
a92189b272 ReadNetworkIdentity: reuse Utils.GetSpawnedInServerOrClient 2022-04-03 10:47:54 +08:00
MrGadget
c81a4374b2 fixed comment 2022-04-01 17:29:23 -04:00
MrGadget
c79c6d1e70 fix: Correct version for Queue.TryDequeue
- fixes #3131
2022-04-01 17:19:37 -04:00
vis2k
3d471db938 fix: added Queue.TryDequeue extension for Unity 2019 2022-04-01 17:18:12 +08:00
vis2k
6c2559a73e
perf: Build batches directly instead of queuing serializations (#3130)
* rename

* so far

* better

* fixx

* old

* error

* typo

* comment
2022-04-01 13:46:38 +08:00
Robin Rolf
1631402bd7
fix: Byte format test uses current culture (#3126)
Since some may use , instead of . as their decimal place seperator

Error:
String lengths are both 7. Strings differ at index 1.
  Expected: "1.00 KB"
  But was:  "1,00 KB"
2022-03-26 13:06:30 +08:00
vis2k
d8774ecd47 fix: #2954 calling StopClient in host mode does not destroy other client's objects anymore 2022-03-23 23:58:47 +08:00
vis2k
6f981224a9 fix: #2954 calling StopClient in host mode does not reset nextNetId anymore 2022-03-23 23:55:35 +08:00
vis2k
3d6c41a595
fix: #3122 DestroyAllClientObjects now also resets after unspawn handler was called (#3124) 2022-03-23 23:54:58 +08:00
MrGadget
cca7afdd08 MultipleMatches example fixed 2022-03-23 07:19:36 -04:00
MrGadget
3024427933 Fixed comments 2022-03-23 07:19:36 -04:00
vis2k
2c138c5d71 hasAuthority comment updated 2022-03-22 22:51:48 +08:00
vis2k
012d7a5d1e Tests: runtime clientscene tests simplified and they don't rely on host mode anymore 2022-03-22 22:51:35 +08:00
vis2k
4b207d2994 fix: NetworkStatistics Unity 2019 support (part two) 2022-03-19 01:45:13 +08:00
vis2k
8f357d5961 fix: NetworkStatistics Unity 2019 support 2022-03-15 00:23:11 +08:00
vis2k
f4ceb067c9 perf: NetworkTime ExponentialMovingAverage .Value & .Var as fields instead of properties to avoid call overhead 2022-03-12 20:26:40 +08:00
vis2k
d979880c5f perf: NetworkTime.time inlined 2022-03-12 20:26:20 +08:00
vis2k
18170d16b8 perf: NetworkTime.localTime inlined 2022-03-12 20:26:02 +08:00
vis2k
45e1afc812 perf: inline GetIndexFromFunctionHash because it's called for every RPC 2022-03-12 19:46:00 +08:00
vis2k
5fcbd1d550 perf: CompressVarInt uses WriteByte instead of Write<T> to avoid Action call overhead 2022-03-12 19:20:00 +08:00
vis2k
a868368eca
perf: Rpcs/Cmds functionHash bandwidth reduced from 4 => 2 bytes (with the potential for 1 byte VarInt) (#3119)
* perf: Rpcs/Cmds functionHash bandwidth reduced from 4 => 2 bytes (with the potential for 1 byte VarInt)

* tests
2022-03-12 18:26:00 +08:00
vis2k
5515eae4e8 perf: HandleRemoteCall passes componentIndex as byte to avoid extra < 0 check 2022-03-11 23:55:35 +08:00
vis2k
b6a9a95572 align NetworkStatistics exactly below NetworkManager HUD 2022-03-11 13:33:36 +08:00
vis2k
3d03146699
feature: NetworkStatistics (#3118)
* feature: NetworkStatistics

* better UI
2022-03-11 13:29:39 +08:00
vis2k
b100307929 feature: Transport.OnClient/ServerDataSent events += (prepares for NetworkStatistics) (#3117)
* feature: Transport.OnClient/ServerDataSent events += (prepares for NetworkStatistics)

* comments
2022-03-11 13:19:24 +08:00
vis2k
dc5162099e
feature: allow hooking into Transport events via += -= (prepares for NetworkStatistics) (#3116) 2022-03-11 13:10:12 +08:00
vis2k
0499dc0503 Tests: ShutdownCleanup test cleanup to prepare for Transport events += -= hooking 2022-03-10 22:19:21 +08:00
vis2k
e71f0e1cc4 script icons .meta 2022-03-10 20:29:41 +08:00
vis2k
9686c68bb7 base Transport moved to Runtime folder; Transport folder renamed to Transports 2022-03-10 20:25:49 +08:00
vis2k
99c3c0ded6 perf: NetworkConnection.Send() inlining 2022-03-10 19:57:35 +08:00
vis2k
24142b085b comments 2022-03-10 19:50:08 +08:00
vis2k
3643679ec5 comments 2022-03-10 19:46:42 +08:00
vis2k
70bd831bd8 NetworkWriterPooled moved into separate file 2022-03-10 19:45:37 +08:00
vis2k
d92dbe1572 NetworkReaderPooled moved into separate file 2022-03-10 19:45:03 +08:00
vis2k
0402d31eb2 breaking: PooledNetworkReader/Writer renamed to NetworkReader/WriterPooled 2022-03-10 19:44:13 +08:00
vis2k
f0c9a81c10
breaking: NetworkReader/WriterPool API simplified: GetReader/Writer => Get; Recycle => Return; (#3112)
* breaking: NetworkReader/WriterPool API simplified: GetReader/Writer => Take; Recycle => Return;

* rename Take() to Get()

* Pool<T> Take() => Get()
2022-03-10 19:37:21 +08:00
vis2k
006efa090e fix test 2022-03-09 16:40:31 +08:00
vis2k
926761c452 fix test 2022-03-09 16:33:34 +08:00
vis2k
70e40b88b5 test for #3106 OnStartLocalPlayer being called twice from ReplacePlayerForConnection 2022-03-09 16:25:28 +08:00
vis2k
f6df4edaae fix: #3106 NetworkClient.ChangeOwner now uses .isLocalPlayer flag to check if OnStopLocalPlayer should be called.
previously it used localPlayer static identity, but that's error prone because in this case it was set by another function before already. added test to guarantee it never fails again.
2022-03-09 16:21:43 +08:00
vis2k
e2d1ad0b5e better comment 2022-03-09 16:18:40 +08:00
vis2k
fedb6002b6 not necessary 2022-03-09 16:04:30 +08:00
vis2k
1423bee9d2 comment 2022-03-09 16:03:46 +08:00
vis2k
35ec47d213 Tests: guarantee OnStopLocalPlayer is called when using RemovePlayerForConnection. for #3106 2022-03-09 16:02:24 +08:00
vis2k
5846045122 comments 2022-03-09 15:55:05 +08:00
vis2k
303b66247e ChangeOwner comments 2022-03-09 15:54:27 +08:00
vis2k
8bef2bf864 TODO 2022-03-09 15:52:07 +08:00
vis2k
c14566c731 comments 2022-03-09 15:51:12 +08:00
vis2k
a34cb00eb2 comment 2022-03-09 15:49:53 +08:00
vis2k
401074fc67 syntax 2022-03-09 15:47:43 +08:00
vis2k
376494e7f5 syntax 2022-03-09 15:46:50 +08:00
vis2k
7e19881630 MIRROR_65_0_OR_NEWER 2022-03-07 20:26:11 +08:00
MrGadget
a51bc743a8 syntax 2022-02-26 15:02:16 -05:00
MrGadget
3a1d9822bd Updated Authenticators 2022-02-26 14:53:25 -05:00
vis2k
66eff281c7 breaking: removed unnecessary 'initialize' parameter from InterestManagement.OnRebuildObservers 2022-02-26 15:26:04 +08:00
MrGadget
c1e05d9df4 fix: NetworkAuthenticator methods virtual
- abstract throws an error for derived classes that wrap server methods in UNITY_SERVER or similar as missing required override.
2022-02-25 09:47:35 -05:00
MrGadget
44dfce94b1 fix: Chat Example Authenticator 2022-02-24 08:22:33 -05:00
MrGadget
a88b03739f fix: NetworkConnectionToClient in Authenticators 2022-02-23 14:57:25 -05:00
Robin Rolf
d67dc74bbd
feat: Allow generic NetworkBehaviour<T> subclasses (#3073)
* feat: Allow generic NetworkBehaviour subclasses

It's only generic SyncVars (via attribute) and rpcs/cmds we don't want to deal with and that aren't supported.
Even generic SyncVar<T> works

* Generate IL2CPP compatible base calls

see cf91e1d547

* Make SyncVar field/hook references generic too

Fixes bad IL

* Update Extensions.cs

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

Co-authored-by: vis2k <info@noobtuts.com>
2022-02-23 12:50:15 +08:00
James Clancey
7670271bf1
fix: Android multicast Discovery. Fixes #2878 (#2887)
* Added Android multicast support for Discovery Fixes #2878

This will add support for turning on and off Multicast for Android devices.
It also contains an Android manifest editor that will add the appropriate permissions.

* Reset the lock state once you end it.

* Update NetworkDiscoveryBase.cs

* Update AndroidManifestHelper.cs

Co-authored-by: vis2k <info@noobtuts.com>
2022-02-17 19:39:20 +08:00
vis2k
c804efd731 ClientSceneTests: remove redundant ApplyPayload tests. we have higher level (and more simple) tests that already guarantee this. 2022-02-17 13:08:15 +08:00
vis2k
1bbd2bbad7 MirrorTest: CreateNetworkedAndSpawnPlayer<T, U> 2022-02-17 12:55:31 +08:00
vis2k
d91f43a486 MirrorTest: guarantee isServer/isClient 2022-02-17 00:02:49 +08:00
vis2k
a07eb1bbba Tests: use explicit NetworkConnectionToClient 2022-02-17 00:02:02 +08:00
vis2k
fa1e5184c1 Tests: TooManyComponents improved to prepare for SyncDirection 2022-02-16 23:05:35 +08:00
vis2k
e0bdca7532 Tests: TooManyComponents improved to prepare for SyncDirection 2022-02-16 23:02:14 +08:00
vis2k
d99652873b corrected the answer 2022-02-16 21:46:52 +08:00
vis2k
baf5002560 "life is all about setup" 2022-02-16 21:41:42 +08:00
vis2k
61a98fd97b Tests: SerializationException cleanup to prepare for SyncDirection 2022-02-16 21:38:54 +08:00
vis2k
a45d3adf42 unused import 2022-02-16 21:25:01 +08:00
vis2k
5420cd084d Tests: OnSerializeAndDeserializeAllSafely cleanup 2022-02-16 21:24:44 +08:00
vis2k
b64a170b24 syntax 2022-02-16 16:36:26 +08:00
vis2k
f042933334 perf: NetworkReader: ReadBytes cleanup. copy buffer directly instead of generating segment first. 2022-02-16 16:33:41 +08:00
vis2k
c26c75485a NetworkReader: move extensions into separate file 2022-02-16 16:11:17 +08:00
vis2k
0f77fe342d NetworkWriter: move extensions into separate file 2022-02-16 16:09:52 +08:00
vis2k
c3ac08203a NetworkWriter: runtime resizing comment 2022-02-16 15:50:51 +08:00
vis2k
2ea328750c
[SyncVar] OnDeserialize moved to C# to reduce headaches (#3103) 2022-02-16 12:24:01 +08:00
vis2k
533c054408 GenerateNewActionFromHookMethod helper function for future reuse in OnDeserialize 2022-02-15 17:31:28 +08:00
vis2k
72973f484a
fix: host mode [SyncVar] setter hooks now support virtual / overwritten functions again (#3102) 2022-02-15 17:30:56 +08:00
vis2k
4e91833c7d
fix: host mode [SyncVar] setter hooks now support static functions again (#3101)
* fix: host mode [SyncVar] setter hooks now support static functions again

* Tests: [SyncVar] setter in host mode static hook test for https://github.com/vis2k/Mirror/pull/3101
2022-02-15 14:42:39 +08:00
vis2k
e41edfae2f better comment 2022-02-13 22:21:36 +08:00
James Frowen
e250d4eb6f
feat: updating to SimpleWebTransport v1.3 (#3099)
- Allowing max message size to be increase to int32.max
- fixing minor bugs (see change log)
2022-02-13 17:01:04 +08:00
MrGadget
9e45ce869b
breaking: Make clientLoadedScene protected (#3098)
- users shouldn't be messing with this
- it does need to be available in an override of OnClientConnect
2022-02-13 16:56:54 +08:00
MrGadget
8394190b11 explicit type 2022-02-12 19:44:04 -05:00
MrGadget
faf8f15a59 Comments 2022-02-12 16:12:15 -05:00
MrGadget
4db8da0b6a Comments 2022-02-12 16:03:15 -05:00
vis2k
791a9b907d test comments 2022-02-11 19:40:40 +08:00
vis2k
0b4787d3d9 SyncVarAttributeTest: use MirrorTest's ProcessMessages() instead of manual serialize/deserialize for consistency 2022-02-09 13:07:13 +08:00
vis2k
9271990cae SyncVarAttributeHookTest: use MirrorTest's ProcessMessages() instead of manual serialize/deserialize for consistency 2022-02-09 13:05:24 +08:00
vis2k
f962f7fb47 GetSerializationAtTick: disable tick based serialization caching during tests. fixes [SyncVar] changes not serializing in tests because Time.frameCount would never increase during tests, so the original spawn serialization would always be reused. 2022-02-09 12:48:12 +08:00
vis2k
d5af1c6407 GeneratedSyncVarSetter: add comments 2022-02-09 01:58:04 +08:00
vis2k
2610dfc1b3
Tests: Mirrortest isClient check and make sure it's actually set (#3094)
* Tests: guarantee isClient == true

* fix
2022-02-08 20:44:56 +08:00
vis2k
39632fc5e5 NetworkClient.SpawnSceneObject: don't rely on SpawnMessage 2022-02-08 00:01:07 +08:00
MrGadget
46e6c61da6
fix: Match & Team Int Mgmt OnCheckObserver (#3089) 2022-02-06 08:30:03 -05:00
MrGadget
4e4e001c92 fix: Missed a couple NetworkConnectionToClient changes 2022-02-06 07:14:12 -05:00
MrGadget
b117b92d08
fix: Updated Templates (#3090) 2022-02-06 06:25:08 -05:00
MrGadget
c94ee5222f
breaking: Use NetworkConnectionToClient (#3088)
* fix: Use NetworkConnectionToClient

* Revert change to MatchInterestManagement

* Revert change to Basic Example scene

* Revert change to Basic Example Player prefab

* Interest Management too

* Updated MultipleMatches example

* Updated RoomManager and Room example
2022-02-06 14:03:55 +08:00
vis2k
f26797a7d7
breaking: NetworkConnection cleanup (#3086)
* breaking: NetworkManager: use strong typed OnConnect/OnDisconnect events

* breaking: NetworkConnection server code moved to NetworkConnectionToClient (it shouldn't be in base class, otherwise it would be in client code's NetworkConnectionToServer as well)

* InterestManagement.OnCheckObserver: use NetworkConnectionToClient
2022-02-06 13:24:38 +08:00
vis2k
db1c7e3e28 TODO 2022-02-05 18:19:46 +08:00
vis2k
6cc293b12d NetworkBehaviour.connectionToClient type changed to NetworkConnectionToClient, just like NetworkIdentity 2022-02-05 18:03:12 +08:00
vis2k
d56da0ed02 NetworkServer.OnConnected/Disconnected/ErrorEvent: strong typing 2022-02-05 13:12:55 +08:00
vis2k
770dfc838a use NetworkConnectionToClient for NetworkServer.RegisterHandler registered handlers. allows for further NetworkConnection cleanups, enforces actual type, does not break anything 2022-02-05 13:12:55 +08:00
vis2k
c556b23543 NetworkServer.RegisterHandler: allow passing NetworkConnectionToClient instead of NetworkConnection base class.
both work now; old code does not break; but still allows for new code NetworkConnection cleanups
2022-02-05 13:12:55 +08:00
vis2k
eafaa2cf32 syntax 2022-02-05 00:51:50 +08:00
vis2k
bf2350030b breaking: NetworkServer.NoExternalConnections => HasExternalConnections to avoid double negative checks as usual 2022-02-05 00:47:24 +08:00
vis2k
7488aac1d6 syntax 2022-02-05 00:37:48 +08:00
vis2k
8e03cee673 remove old comment 2022-02-05 00:32:06 +08:00
vis2k
3cf595ff30 MessagePackingTest: don't rely on scene feature 2022-02-04 13:26:16 +08:00
James Frowen
b62fbf51b5
fix(SWT): fixing jslib for Unity2021 (#3084)
replacing `Pointer_stringify` with `UTF8ToString`, This still works in  2019.4 as well.

fixes "Runtime is not defined" unity bug. Unity does not auto link Runtime in 2021, this is a bug, checking if it is undefined then creating it fixes the issue, and  will continue you work after unity fixes the bug. Note: `Module['dynCall_vi']` fix does not work here because it throws an exception after each call.

original commits:
2f5a74ba10
945b50dbad

fixes: https://github.com/vis2k/Mirror/issues/3012
2022-02-03 12:55:16 -05:00
vis2k
ff1199607e perf: SyncVar<T> some more inlining 2022-02-03 22:12:00 +08:00
vis2k
0d55ed8448 Tests: SetAllClientsNotReady - don't rely on host mode 2022-02-03 21:36:48 +08:00
vis2k
924ce2b668 Tests: SetClientReadyAndNotReady don't rely on host mode 2022-02-03 21:35:16 +08:00
vis2k
9f5bc2fadb ClientRpcOverrideTests: don't rely on hos tmode 2022-02-02 21:37:36 +08:00
vis2k
60f6bf7092 ClientRpcTests: don't rely on host mode anymore 2022-02-02 21:36:33 +08:00
vis2k
bb4ae1eeac TargetRpcOverrideTests: don't rely on host mode 2022-02-02 21:32:39 +08:00
vis2k
51678d7cdc TargetRpcTests: don't rely on host mode 2022-02-02 21:31:30 +08:00
vis2k
1f42831a7f RpcNetworkIdentityTests: don't rely on host mode 2022-02-02 21:29:35 +08:00
vis2k
5ba40d5608 unused import 2022-02-02 21:27:52 +08:00
vis2k
c7a8af3b7f syntax 2022-02-02 21:24:38 +08:00
vis2k
7251cd621c CommandOverrideTests: don't rely on host mode 2022-02-02 21:24:34 +08:00
vis2k
8d602ecec7 cleaner 2022-02-02 21:18:07 +08:00
vis2k
4a23a9a0ad CommandTests: need host mode for one test 2022-02-02 21:17:00 +08:00
vis2k
bc941a1b9e CommandTests: don't rely on host mode anymore 2022-02-02 21:14:11 +08:00
vis2k
83049d71f7 Tests: DistanceInterestManagement uses holder GameObject 2022-02-02 13:31:43 +08:00
vis2k
1d6cad9c24 NetworkWriterTests: don't rely on host mode anymore 2022-02-02 13:05:31 +08:00
vis2k
e959ff2d23 NetworkBehaviourDirtyBitsTests: don't rely on host mode anymore 2022-02-02 12:56:43 +08:00
vis2k
ce849cd61b Tests: fix NetworkServer.DestroyObject .Destroy throwing during tests. use DestroyImmediate if Application isn't running. 2022-02-02 12:54:58 +08:00
vis2k
23455570e6 MirrorTest: fix CreateNetworkedAndSpawnPlayer not properly spawning because the GO wasn't considered for spawning because it wasn't inactive 2022-02-02 12:44:37 +08:00
vis2k
9451fa0369 add check 2022-02-02 12:42:15 +08:00
vis2k
9512b8f0e6 MirrorTest: fix CreateNetworkedAndSpawnPlayer not properly spawning because the GO wasn't considered for spawning because it wasn't inactive 2022-02-02 12:40:42 +08:00
vis2k
badde10c1d MirrorTest: fix wrong authority check always throwing assert 2022-02-02 12:21:06 +08:00
vis2k
ac06a32622 NetworkBehaviourSerializeTests: don't rely on host mode anymore 2022-02-02 12:00:48 +08:00
vis2k
5ba53185f2 Tests: SerializeAndDeserializeObjectsDelta doesn't rely on host mode anymore 2022-02-02 11:54:31 +08:00
vis2k
3772f0b8e3 Tests: SyncObjectChanges_DontGrowWithoutObservers don't rely on host mode 2022-02-02 01:52:30 +08:00
vis2k
eef8e02974 Tests: don't rely on host mode 2022-02-02 01:50:46 +08:00
vis2k
55abc80c8e Tests clear NetworkManager singleton. prepares for NS/NC as component where we would need to initialize NM (and the singleton), and need to clear it 2022-02-02 01:34:28 +08:00
vis2k
8f7a0858ce NetworkManagerTests: use holder 2022-02-02 01:32:58 +08:00
vis2k
6ae3e0b4ce Multiplex Tests: use holder GO to make NS/NC as component easier later 2022-02-02 01:31:48 +08:00
vis2k
51ccb29275 Spatial Hashing Tests: use holder GO to make NS/NC as component easier later 2022-02-02 01:30:12 +08:00
vis2k
5b68aa8ade MirrorTest: holder GO to make NS/NC as component easier later 2022-02-02 01:29:10 +08:00
vis2k
efcf960917 SyncVarTests: don't rely on host mode 2022-02-02 01:24:19 +08:00
vis2k
39ad3840a5 SyncVarNetworkIdentityTests: don't rely on host mode 2022-02-02 01:23:08 +08:00