Commit Graph

5751 Commits

Author SHA1 Message Date
MrGadget1024
a74f8f9ea2 Revert "breaking!(NetworkManager): Removed obsolete OnServerError / OnClientError"
This reverts commit d45bd661ef.
2023-03-06 09:13:48 -05:00
MrGadget1024
d45bd661ef breaking!(NetworkManager): Removed obsolete OnServerError / OnClientError 2023-03-06 08:49:37 -05:00
vis2k
a0605ae651 kcp V1.31 [2023-03-05]
- KcpClient: Tick/Incoming/Outgoing can now be overwritten (virtual)
- breaking: KcpClient now takes KcpConfig in constructor instead of in Connect.
  cleaner, and prepares for KcpConfig.MTU setting.
- KcpConfig now includes MTU; KcpPeer now works with KcpConfig's MTU, KcpServer/Client
  buffers are now created with config's MTU.
2023-03-05 14:10:17 +08:00
vis2k
31b6f195ce KcpTransport: config, server, client protected so inheriting classes can access them 2023-03-04 22:26:24 +08:00
vis2k
582a02eec8 KcpTransport: OnGUIStatistics helper function for easier OnGUI overwrites 2023-03-04 22:23:10 +08:00
vis2k
7b1d6fd412 KcpTransport: virtual Awake/OnValidate/OnGUI to allow inheritance more easily 2023-03-04 22:20:54 +08:00
vis2k
def24f8510 fix: NetworkLoop now only runs in play mode, not in edit mode 2023-03-04 19:33:19 +08:00
vis2k
8f66bd68ca fix: #3392 NetworkLoop now checks if the function was already added before. fixes functions being added twice with Domain Reload disabled. 2023-03-04 19:29:39 +08:00
MrGadget
91014bd614
breaking: Remove NetworkClient.serverIP (#3394)
* breaking: Remove NetworkClient.serverIP
- If we're never going to set it to anything, no reason to have it.
- Transport has no mechanism to return anything for it

Host client hardcodes `address` to "localhost" in both LocalConnectionToServer and LocalConnetionToClient, so obsolete the former telling users to use the latter if they aren't already.

Users can get the endpoint from NetworkManager or Discovery, as they must be doing now since those work and serverIp does not.

* Update main.yml

* fix: kcp2p V1.30 (#3391)

- fix: set send/recv buffer sizes directly instead of iterating to find the limit.
  fixes: https://github.com/MirrorNetworking/Mirror/issues/3390
- fix: server & client sockets are now always non-blocking to ensure main thread never
  blocks on socket.recv/send. Send() now also handles WouldBlock.
- fix: socket.Receive/From directly with non-blocking sockets and handle WouldBlock,
  instead of socket.Poll. faster, more obvious, and fixes Poll() looping forever while
  socket is in error state. fixes: https://github.com/MirrorNetworking/Mirror/issues/2733

* Shortened PingWindowSize to get a faster more accurate result. (#3395)

* Shortened PingWindowSize to get a faster more accurate result.

Shortened PingWindowSize to get a faster more accurate result.
It taking too long to calculate the average may look bad to users

* Revert "Shortened PingWindowSize to get a faster more accurate result."

This reverts commit 0a5916b4dc.

* Revert "Shortened PingWindowSize to get a faster more accurate result."

This reverts commit 0a5916b4dc.

* Shortened PingWindowSize to get a faster more accurate result.

Shortened PingWindowSize to get a faster more accurate result.
It taking too long to calculate the average may look bad to users

* Shortened PingWindowSize to get a faster more accurate result.

Shortened PingWindowSize to get a faster more accurate result.
It taking too long to calculate the average may look bad to users, choosing 6 gives us an average of 3 results, where as the previous 10, would wait for 5, it should be a slight visual improvement.

* fix: Use PingWindowSize instead of hardcoded value (#3396)

fix: Use PingWindowSize instead of hardcoded value

* KcpClient: Tick/Incoming/Outgoing can now be overwritten (virtual)

* RunUnityTests - Updated unityVersion

* fix: Write for non-spawned NB only writes 0 netId (fixes: #3399) (#3400)

* Failing test for non-spawned NB writer/reader

* fix: Write for non-spawned NB only writes 0 netId

Instead of writing 0 and component index which does not match what the reader expects (it will stop reading netId is 0)
Fixes #3399

* breaking: Removed old Unity 2018 / 2019_3 compiler defines (#3397)

- we only suppport Unity 2019.4.40 and later LTS releases.
BREAKING: Removed old 2018 / 2019 compiler defines

* RunUnityTests - try different test reporter

* RunUnityTests commented out Archive and Publish temporarily

* RunUnityTests - disable game-ci built-in test reporter

* RunUnityTests - cleanup

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
Co-authored-by: JesusLuvsYooh <57072365+JesusLuvsYooh@users.noreply.github.com>
Co-authored-by: vis2k <info@noobtuts.com>
Co-authored-by: Robin Rolf <imer@imer.cc>
2023-03-04 06:39:30 +01:00
MrGadget
bb2e7b2308
breaking: Removed old Unity 2018 / 2019_3 compiler defines (#3397)
- we only suppport Unity 2019.4.40 and later LTS releases.
BREAKING: Removed old 2018 / 2019 compiler defines
2023-02-28 16:11:40 +01:00
Robin Rolf
74f5339b09
fix: Write for non-spawned NB only writes 0 netId (fixes: #3399) (#3400)
* Failing test for non-spawned NB writer/reader

* fix: Write for non-spawned NB only writes 0 netId

Instead of writing 0 and component index which does not match what the reader expects (it will stop reading netId is 0)
Fixes #3399
2023-02-28 16:10:49 +01:00
vis2k
eaea01caa6 KcpClient: Tick/Incoming/Outgoing can now be overwritten (virtual) 2023-02-26 14:29:15 +08:00
JesusLuvsYooh
3252dec547
fix: Use PingWindowSize instead of hardcoded value (#3396)
fix: Use PingWindowSize instead of hardcoded value
2023-02-25 09:56:29 -05:00
JesusLuvsYooh
4603bb1a4d
Shortened PingWindowSize to get a faster more accurate result. (#3395)
* Shortened PingWindowSize to get a faster more accurate result.

Shortened PingWindowSize to get a faster more accurate result.
It taking too long to calculate the average may look bad to users

* Revert "Shortened PingWindowSize to get a faster more accurate result."

This reverts commit 0a5916b4dc.

* Revert "Shortened PingWindowSize to get a faster more accurate result."

This reverts commit 0a5916b4dc.

* Shortened PingWindowSize to get a faster more accurate result.

Shortened PingWindowSize to get a faster more accurate result.
It taking too long to calculate the average may look bad to users

* Shortened PingWindowSize to get a faster more accurate result.

Shortened PingWindowSize to get a faster more accurate result.
It taking too long to calculate the average may look bad to users, choosing 6 gives us an average of 3 results, where as the previous 10, would wait for 5, it should be a slight visual improvement.
2023-02-25 11:11:56 +01:00
mischa
228a577683
fix: kcp2p V1.30 (#3391)
- fix: set send/recv buffer sizes directly instead of iterating to find the limit.
  fixes: https://github.com/MirrorNetworking/Mirror/issues/3390
- fix: server & client sockets are now always non-blocking to ensure main thread never
  blocks on socket.recv/send. Send() now also handles WouldBlock.
- fix: socket.Receive/From directly with non-blocking sockets and handle WouldBlock,
  instead of socket.Poll. faster, more obvious, and fixes Poll() looping forever while
  socket is in error state. fixes: https://github.com/MirrorNetworking/Mirror/issues/2733
2023-02-23 03:14:31 +01:00
MrGadget
a1db764b7c
Organize WeaverTypes (#3393)
* Organize WeaverTypes
- Put all NetworkBehaviors together
- Put Writer with Reader
- Put Remote things together
- moved ScriptableObjectType down

* moved NetworkClientConnectionReference up
2023-02-22 07:07:45 +01:00
MrGadget
69d5cf3c8f
breaking: AsmDef Updates (#3388)
* breaking: AsmDef Updates
- KcpTransport moved up
- SimpleWeb moved into folder
- AsmDef chains updated and simplified

* Reverted accidental change

* reverted accidental change

* Mirror.Tests - reverted ref removal
- needed for 2019 and 2020
2023-02-20 04:56:52 +01:00
Robin Rolf
cfe27a179b
fix: never use custom NB writers for SyncVars (#3387)
We always use a specific reader for NB syncvars, so if a custom defined writer handles data differently this leads to data mismatches.
Supporting custom readers for NB syncvars will just lead to too many edge cases and unexpected behaviour, so dont do it (see https://github.com/MirrorNetworking/Mirror/issues/2680#issuecomment-1435093212 for rationale).

Fixes #2680
2023-02-20 04:29:48 +01:00
Robin Rolf
94bb3690ae
fix: NetworkBehaviour SyncVar uses netId lookup (#3386)
* fix: NetworkBehaviour SyncVar uses netId lookup

Not only types derived from NetworkBehaviour
Fixes #2939

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

* Update Assets/Mirror/Editor/Weaver/Processors/NetworkBehaviourProcessor.cs

* Update Assets/Mirror/Editor/Weaver/Processors/SyncVarAttributeProcessor.cs

* Update Assets/Mirror/Editor/Weaver/Processors/SyncVarAttributeProcessor.cs

* Update Assets/Mirror/Editor/Weaver/Processors/SyncVarAttributeProcessor.cs

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

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

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-17 12:09:53 +01:00
MrGadget1024
5784ff6d8a script icons 2023-02-16 21:55:50 -05:00
MrGadget1024
4f1a1899aa Extensions - updated comment 2023-02-16 09:07:55 -05:00
MrGadget1024
2f2a6907de Extenstions - Added comment to GetStableHashCode 2023-02-16 09:04:43 -05:00
MrGadget1024
adafd484d7 Fixed log msg 2023-02-16 08:27:11 -05:00
MrGadget1024
e4281fe5bf fix: fixed warning in test 2023-02-16 08:20:01 -05:00
MrGadget1024
9e0c59526c fix: Extensions - Remove static StableHashes dictionary
- Now that all callers to GetStableHashCode are either one-timers or design-time (weaver) the dictionary is no longer needed.
2023-02-16 08:19:48 -05:00
Robin Rolf
5d6022ff19
Remove outdated comment (#3385) 2023-02-16 13:21:01 +01:00
Robin Rolf
8b7bc6858f
perf: Weave in pre-computed function hash for RPCs (#3384)
* perf: Weave in pre-computed function hash for RPCs

Instead of computing it at runtime for every call
See #3381, #3377 and #3375

* Update Assets/Mirror/Editor/Weaver/Processors/CommandProcessor.cs

* Update Assets/Mirror/Editor/Weaver/Processors/RpcProcessor.cs

* Update Assets/Mirror/Editor/Weaver/Processors/TargetRpcProcessor.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-16 13:01:03 +01:00
Robin Rolf
b933dcbe1a
feat: InterestManagementBase (#3379)
* feat: InterestManagementBase

A interest management base class that allows more advanced interest management by bypassing the built-in HashSet checks via Rebuild overriding

* Update Assets/Mirror/Core/InterestManagementBase.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-16 12:57:31 +01:00
Robin Rolf
c2d834315c
cleanup: move observer HashSet rebuild logic to IM (#3383)
This cleanup step prepares for InterestManagement classes being able to customize the rebuild logic, but for that we should move it out of the NetworkServer class
2023-02-16 12:11:54 +01:00
JesusLuvsYooh
e0e262678b
feature: NetworkTransform interpolation can be disabled (#3378)
* Interpolation off bools for NetworkTransform.

Gives a snap-like effect to position, rotation and scaling.

* Update Assets/Mirror/Components/NetworkTransformBase.cs

* Update NetworkTransformBase.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-16 04:19:02 +01:00
Robin Rolf
569938c8c7
perf: Use static generic class to cache message id (#3381)
* perf: Use static generic class to cache message id

we can (ab)use c# generics to cache the message id in a static field
this is significantly faster than doing a runtime Dictionary lookup in my testing (16% thread cpu-> ~0.22% for 121 moving nts)
generic classes have separate static fields per type specification, so we can store things per-type there, exactly what we need!

* Obsolete NetworkMessages.GetId

* Update Assets/Mirror/Core/NetworkMessages.cs

* Copy comment from GetId up to the Id field

* wording

---------

Co-authored-by: MrGadget <9826063+MrGadget1024@users.noreply.github.com>
2023-02-15 16:39:25 +01:00
MrGadget
59dc88c981
perf: Cache Stable Hashes (#3377)
* perf: Cache Stable Hashes
- Static dictionary of message hashes
- ResetStatics

* Added debug log for future debugging.

* Update Extensions.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-14 02:45:36 +01:00
JesusLuvsYooh
adc28267f7 Updated function name in code summary. 2023-02-12 16:19:43 +00:00
MrGadget1024
80211ba827 fix: NetworkRoomManager.ReadyStatusChange is now a virtual method
- Script Template updated accordingly.

Fixes #1889
2023-02-09 11:21:06 -05:00
MrGadget
e260d1eb2a
fix: NetworkWriter - Change MaxStringLength to ushort.MaxValue (#3374)
* fix: NetworkWriter - Change MaxStringLength to ushort.MaxValue
- local `realsize` in NetworkReaderExtensions.ReadString changed to ushort with proper casting
- Comments added to NetworkWriterExtensions
- Comments added to NetworkReaderExtensions
- Log output updated in both for consistency

* Added comment

* Changes per request
2023-02-09 09:24:03 -05:00
MrGadget
9f7ed98ccc
feat: Read / Write DateTime (#3373)
* feat: Read / Write DateTime
- no UTC conversion...users can do that on their own if they want / need to.

DateTime is a public struct but has no public fields (all properties) so no error is thrown if users try to use it in SyncVar / Cmd / Rpc / NetMsg, but no value is put on the wire and SyncVar hooks don't fire because the client determines no actual value change.

* Added nullable DateTime support

* Removed mysterious using
2023-02-09 09:25:57 +01:00
MrGadget1024
efeab67331 NetworkRoomManager - refactor CheckReadyToBegin 2023-02-08 10:05:01 -05:00
MrGadget1024
324c41e1c7 NetworkRoomManager - refactor CheckReadyToBegin 2023-02-08 10:04:30 -05:00
MrGadget1024
bbcf4b38c0 breaking: MIRROR_73_OR_NEWER 2023-02-08 03:04:41 -05:00
MrGadget1024
3ef5e06431 Revert "breaking: MIRROR_73_OR_NEWER"
This reverts commit 8596f1d827.
2023-02-08 03:02:30 -05:00
MrGadget1024
8596f1d827 breaking: MIRROR_73_OR_NEWER 2023-02-08 02:57:27 -05:00
MrGadget
229a1a6509
perf: Distance Interest Management caches custom ranges to avoid runtime TryGetComponent overhead (#3372)
* fix: Distance Interest Mgmt static dictionary

* Clear on Reset

* Allow for changing range at runtime

* Use OnSpawned / OnDestroyed

* reverted default visRange

* Update DistanceInterestManagement.cs

* Update DistanceInterestManagement.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-08 05:02:55 +01:00
MrGadget1024
340a4b907a DistanceInterestManagementCustomRange - larger default visRange 2023-02-07 10:13:41 -05:00
MrGadget1024
f86010b192 DistanceInterestManagement - larger default visRange 2023-02-07 10:12:45 -05:00
MrGadget1024
cbcfeede16 fix: Removed buggy canvas from example player prefabs 2023-02-07 10:09:24 -05:00
Robin Rolf
2a021f73f5
fix: Weaver doesn't NRE on generic array (#3371)
* Failing generics weaver test for T[]

* fix: weaver doesn't handle generic array field

T[] would cause a NRE:

(0,0): error ----------------------------------------------
(0,0): error Exception :System.NullReferenceException: Object reference not set to an instance of an object.
(0,0): error    at Mirror.Weaver.Extensions.IsDerivedFrom(TypeReference tr, Type baseClass) in Mirror\Editor\Weaver\Extensions.cs:line 21
(0,0): error    at Mirror.Weaver.Extensions.IsDerivedFrom[T](TypeReference tr) in Mirror\Editor\Weaver\Extensions.cs:line 17
(0,0): error    at Mirror.Weaver.SyncObjectProcessor.FindSyncObjectsFields(Writers writers, Readers readers, Logger Log, TypeDefinition td, Boolean& WeavingFailed) in Mirror\Editor\Weaver\Processors\SyncObjectProcessor.cs:line 25
(0,0): error    at Mirror.Weaver.NetworkBehaviourProcessor.Process(Boolean& WeavingFailed) in Mirror\Editor\Weaver\Processors\NetworkBehaviourProcessor.cs:line 76
(0,0): error    at Mirror.Weaver.Weaver.WeaveNetworkBehavior(TypeDefinition td) in Mirror\Editor\Weaver\Weaver.cs:line 109
(0,0): error    at Mirror.Weaver.Weaver.WeaveModule(ModuleDefinition moduleDefinition) in Mirror\Editor\Weaver\Weaver.cs:line 125
(0,0): error    at Mirror.Weaver.Weaver.Weave(AssemblyDefinition assembly, IAssemblyResolver resolver, Boolean& modified) in Mirror\Editor\Weaver\Weaver.cs:line 208
(0,0): error ----------------------------------------------
2023-02-07 14:10:15 +01:00
MrGadget1024
63235f2f73 fix: Added missing EventSystem to example scenes 2023-02-07 02:42:09 -05:00
MrGadget1024
a3dbc9dbb6 fix: Improved Player Controller in examples 2023-02-06 11:27:29 -05:00
MrGadget1024
a8a6b403fe fix: Updated Multiple Matches example
- MatchController needed longer delay in ServerEndMatch
- Syntax and formatting
2023-02-05 23:53:24 -05:00
MrGadget1024
1399a930ac Extended wait to .5 seconds for RpcExitGame to process 2023-02-05 22:55:23 -05:00
MrGadget1024
10553cab84 Removed Debug logs 2023-02-05 22:54:32 -05:00
MrGadget1024
4920f5ff6b Merged master 2023-02-05 20:35:40 -05:00
MrGadget1024
42d4723f4e fix: Network Manager - don't call OnClientConnect from FinishLoadScene 2023-02-05 19:37:56 -05:00
MrGadget1024
40e4a57be2 fix: Network Manager now calls OnClientConnect as soon as authenticated
- No longer waits for scene change first so users can override on successful connect.
- clientLoadedScene flag is set before calling OnClientConnect.
2023-02-05 19:32:36 -05:00
MrGadget1024
70cee43a71 fix: Examples code review and updates
- ServerCallback / ClientCallback attributes applied
- Commented out Debug.Logs removed
- Syntax cleanup
- Reset Player prefabs to Default layer
- Simplified TryGetComponent usage
- All Prefabs updated to Unity 2021.3.17
2023-02-05 18:04:54 -05:00
MrGadget1024
5a161a07ce Simplified TryGetComponent usage 2023-02-05 14:14:21 -05:00
MrGadget1024
f451087d81 WIP 2023-02-05 12:16:09 -05:00
MrGadget1024
467aa70e3d CanvasController - use attributes 2023-02-05 08:28:07 -05:00
MrGadget1024
35f72c198e MatchNetworkManager - removed comments 2023-02-05 07:08:37 -05:00
MrGadget1024
dca22bd5d3 MatchController - syntax 2023-02-05 07:08:19 -05:00
MrGadget1024
d3038478cf fix: Updated examples to handle StopClient for Host 2023-02-04 21:19:29 -05:00
MrGadget1024
3d9e95e52c fix: NetworkManager - keep in DDOL if ServerOnly
- like when StopClient called for Host
2023-02-04 21:19:08 -05:00
MrGadget1024
a83379fe17 fix: NetworkManager - handle StopClient in Host mode 2023-02-04 20:13:17 -05:00
JesusLuvsYooh
5e0b450f87
LatencySimulator - User friendly changes. (ready for approval) (#3316)
* syntax

* SyncDirection example: increase spacing

* LatencySimulator - User friendly changes.

Changed "ping" to milliseconds, from seconds.
Changed % from 0-1, to 0-100  (previously 1 on slider, meant 100%)
Tooltip adjusted to show a good default value to use, and a worst case scenario value.

* Delete Scene.unity

* Revert "Delete Scene.unity"

This reverts commit 305235f6f4.

* Revert "SyncDirection example: increase spacing"

This reverts commit c2176876cb.

* Revert "syntax"

This reverts commit a668c78f68.

* Tooltip adjustments, also now has default values.

* Update LatencySimulation.cs

---------

Co-authored-by: vis2k <info@noobtuts.com>
2023-02-03 07:08:31 -05:00
MrGadget1024
dc8f0b3165 Unity updated Player prefab 2023-02-02 19:17:50 -05:00
MrGadget1024
2554372913 Updated Interest Management Script Template 2023-01-29 06:44:20 -05:00
vis2k
c4e9071700 unused import 2023-01-29 19:08:19 +09:00
vis2k
deddbe6ee9 fix: #3367 NetworkTransformReliable now checks for changes at the end of UpdateServer, not at the beginning [imer] 2023-01-29 13:11:33 +09:00
vis2k
3815fe94a8 fix: #3259 NetworkClient.ApplySpawnPayload now initializes NetworkIdentity flags before DeserializeClient invokes SyncVar hooks 2023-01-29 12:54:44 +09:00
vis2k
db83e2dd42 naming 2023-01-29 12:46:29 +09:00
vis2k
8d8bde72f4 fix: NetworkClient now sets NetworkIdentity.connectionToServer before OnStartAuthority/OnStartClient callbacks.
previously this was only available in OnStartLocalPlayer
2023-01-29 12:40:03 +09:00
vis2k
384e551245 NetworkClient.BootstrapIdentity split into SetIdentityFlags and InvokeIdentityCallbacks 2023-01-29 12:40:03 +09:00
MrGadget1024
d27e08647a NetworkClient - comment typo 2023-01-28 13:00:47 -05:00
vis2k
5c989491b9 NetworkClient.NetworkLateUpdate: use .localTime in all Unity versions 2023-01-29 01:48:56 +09:00
vis2k
a0accce89a syntax: remove redundant type qualifiers 2023-01-29 01:46:26 +09:00
vis2k
46f07cc71a syntax 2023-01-29 01:44:55 +09:00
MrGadget1024
7dd3ce0163 AdditiveLevelsNetworkManager - comments 2023-01-28 11:23:18 -05:00
vis2k
5bbad6fd2f kcp2k V1.29 [2023-01-28]
- fix: KcpServer.CreateServerSocket now handles NotSupportedException when setting DualMode
  fixes https://github.com/MirrorNetworking/Mirror/issues/3358
2023-01-28 23:59:54 +09:00
vis2k
7d2d21ac2c fix: #3365 NetworkClient.OnTransportDisconnected now always invokes OnDisconnected, even during connecting phase 2023-01-28 23:41:14 +09:00
vis2k
e21d42a324 syntax 2023-01-28 23:14:09 +09:00
vis2k
c389a526a9 kcp2k V1.28 [2023-01-28]
- fix: KcpClient.Connect now resolves hostname before creating peer
  https://github.com/MirrorNetworking/Mirror/issues/3361
2023-01-28 23:11:33 +09:00
JesusLuvsYooh
56a01c3941
Application.isFocused check on tanks Update input. (#3364) 2023-01-28 11:37:23 +01:00
vis2k
0312bf7103 fix: #3362 BootstrapIdentity now initializes isClient/isLocalPlayer flags before calling OnStartAuthority 2023-01-28 13:20:21 +09:00
vis2k
25ef55413c BootstrapIdentity: local player code simplified 2023-01-28 13:13:13 +09:00
vis2k
77c915eb34 NetworkClient: CheckForLocalPlayer merged into BootstrapIdentity 2023-01-28 13:10:22 +09:00
vis2k
4d8c74593d NetworkClient.ChangeOwner: remove dependency on CheckForLocalPlayer to prepare merging CheckForLocalPlayer into BootstrapIdentity 2023-01-28 13:03:38 +09:00
vis2k
7cea78fae5 syntax 2023-01-28 12:54:34 +09:00
vis2k
a48f0af43b NetworkClient.CheckForStartClient merged into BootstrapIdentity 2023-01-28 12:49:15 +09:00
vis2k
b6cee2aae2 remove unnecessary HostMode.ActivateHostScene function.
this would call OnStartClient for scene objects if .isClient was false.
however, NetworkManager.FinishStartHost calls NetworkServer.SpawnObjects first.
which always sets isClient = true for all scene objects.
2023-01-28 12:47:37 +09:00
vis2k
bb6c0de495 NetworkServer.SpawnObject: add explanation 2023-01-28 12:34:38 +09:00
vis2k
547da088b1 syntax 2023-01-28 12:33:48 +09:00
vis2k
99360ffbcb NetworkClient.BootstrapIdentity helper function to move OnStartAuthority/Client/LocalPlayer callers in one place 2023-01-28 12:15:23 +09:00
vis2k
e9e3874205 fix: NetworkClient.OnHostClientSpawn now sets AOI visibility before invoking user callbacks. 2023-01-28 12:07:45 +09:00
MrGadget1024
7318dfed3f fix: Use GUID's in AsmDef's
- Unity also appled changes per 2021.3.17

See https://docs.unity3d.com/2021.3/Documentation/Manual/class-AssemblyDefinitionImporter.html#asmdef-references
2023-01-27 04:27:15 -05:00
MrGadget1024
900c23a173 fix: Removed invalid reference from KCP AsmDef 2023-01-27 04:17:57 -05:00
MrGadget1024
79718d0638 fix: Added SimpleWebTransport to Mirror.Transports AsmDef 2023-01-27 04:13:56 -05:00
MrGadget1024
f16e1973c0 Additive Levels Offline Scene resaved 2023-01-26 03:28:29 -05:00
vis2k
5802fec712 SHA-1 comments 2023-01-26 01:41:34 +09:00
vis2k
01d0ae1a6b SimpleWebTransport: add SHA1 comments 2023-01-26 01:31:15 +09:00
MrGadget1024
debc78310d AdditiveLevels Example - Portal.cs typo 2023-01-24 15:16:46 -05:00
MrGadget1024
22ac763199 NetworkTransformBase - OnClientAuthorityChanged is Server Only 2023-01-20 19:32:06 -05:00
MrGadget1024
2239bb0245 NetworkTransformBase - syntax 2023-01-20 19:29:27 -05:00
MrGadget1024
dd5d7cab01 fix: NetworkTransform classes - methods in call order 2023-01-19 07:26:56 -05:00
MrGadget
af0bacf8ae
NetworkTransformBase - Reset when changing authority (#3357) 2023-01-19 12:04:14 +01:00
MrGadget1024
16b60e80f3 PlayerCamera - Added warnings for no MainCamera 2023-01-18 09:10:48 -05:00
MrGadget1024
a35c0dbd9a fix: ChangeOwner now adds/removes from owned hashset
We do this in spawn and destroy already.
2023-01-16 07:30:39 -05:00
MrGadget1024
3e7837cebd Revert "Added License, Notice, Version files"
This reverts commit 585be60d38.
2023-01-14 11:01:42 -05:00
MrGadget1024
585be60d38 Added License, Notice, Version files 2023-01-14 11:01:14 -05:00
MrGadget
a024753a42
fix: Fixes #3317 - NetworkTransformReliable: don't send last snapshot (#3355) 2023-01-14 11:34:28 +01:00
MrGadget
875b34540a
fix: #3351 - Reset Statics in NS, NC, and NC_TimeInterpolation (#3353)
* fix: Fix #3351 - NetworkClient_TimeInterpolation reset statics
- Fixes #3351

* NetworkServer - reset actualTickRate

* NetworkClient - reset lastSendTime

* NetworkClient_TimeInterpolation - reverted reset of bufferTimeMultiplier
- added comment as to why we're not resetting it.
2023-01-13 22:11:43 +01:00
MrGadget1024
626180b2d3 Network Manager HUD - made it wider so it doesn't wrap as much 2023-01-12 22:09:15 -05:00
MrGadget1024
0cc27d2372 NetworkClient - added bufferTimeMultiplier to OnGUI 2023-01-12 22:08:38 -05:00
vis2k
027458db96 fix: #3344 NetworkServer.Shutdown sets active=false after destroying spawned objects.
this way scene objects without owners can still modify SyncLists in OnStopServer without IsWriteable() throwing an exception about NetworkServer being inactive.
2023-01-12 12:06:04 +01:00
vis2k
74e6b72239 fix: NetworkServer.DisconnectAll doesn't set inactive anymore. it should simply "disconnect all" connections.
otherwise Shutdown may not be able to properly clean up all objects.
prepares to fix #3344
2023-01-12 11:46:45 +01:00
vis2k
c04eeacba6 comment improved 2023-01-12 11:38:24 +01:00
vis2k
e16e55616b fix: #3354 SyncList callback for OP_SET index parameter fixed 2023-01-12 00:44:18 +01:00
MrGadget1024
3e8880db1c BasicAuthenticator - comment typo 2023-01-11 15:47:37 -05:00
MrGadget1024
655d0b0aa8 fix: NetworkClient - make OnGUI public 2023-01-09 19:24:49 -05:00
MrGadget1024
b642da6b2f fix: Fix #3349 - NetworkTransformReliable use correct value in OnSerialize
- Fixes #3349
2023-01-09 09:41:19 -05:00
vis2k
2c9f6c4960 fix: kcp2k V1.27. fixes #3337 2023-01-08 11:51:50 +01:00
MrGadget1024
c93935422e Check for no Camera.main in OnGUI
- avoids NRE flood if no camera with MainCamera tag.
2023-01-06 18:50:13 -05:00
mischa
3c85efa2d9
fix: #3330 #2422 SpawnObjects now activates, but does not spawn scene objects with inactive parents (#3347)
* fix: #3330 #2422 SpawnObjects now activates, but does not spawn scene objects with inactive parents

* helper function

* remove old workaround.
identities which aren't active in hierarchy don't have Awake called forcefully anymore.
it's not necessary because the second pass won't spawn them anymore.

* add comments
2023-01-06 18:21:03 +01:00
vis2k
c9dfd95bb7 add comment 2023-01-06 17:40:57 +01:00
vis2k
7b7ad85204 fix: #3340 SyncSet/Dictionary callbacks are only called once 2023-01-05 21:54:53 +01:00
vis2k
c5aa4746e1 fix: #3340 SyncList callbacks are only called once 2023-01-05 21:21:51 +01:00
vis2k
0d53f7c3a0 fix: #3343 allow modifying client synclists for unspawned objects like character previews 2023-01-04 01:32:11 +01:00
vis2k
8570afab94 fix: #3341 SyncLists can now be modified before spawning again 2023-01-04 01:10:53 +01:00
vis2k
02218bda13 fix: #3342 InitSyncObject IsWritable/IsRecording permissions fixed for host mode and other player's objects on client 2023-01-04 01:10:51 +01:00
vis2k
d645aad95c fix: forgot to remove SyncList OnSerializeAll log message 2023-01-04 01:02:47 +01:00
MrGadget1024
34f6df24a1 NetworkClient - moved RegisterMessageHandlers down 2023-01-03 15:41:01 -05:00
MrGadget
273f91088f
fix: #3326 NetworkIdentity doesn't reset SyncObjects anymore (#3339)
* Fixes: #3326
- All callers to Reset are either unspawning (disabling) the object or have run a custom UnSpawnHandler
- Sync collections should retain their data in any case because the object may get respawned
- When it is respawned, OnDeserializeAll clears the internal collection and changes lists before adding back the entire payload.
- Users can always call the public Reset on the SyncObject themselves if they want it wiped.

* fixed comment
2023-01-03 09:59:36 +01:00
MrGadget1024
30ec858551 NetworkClient - formatting 2023-01-02 12:50:41 -05:00
MrGadget1024
0189b7f45e NetworkServer - formatting 2023-01-02 12:49:53 -05:00
MrGadget1024
1f09c7f98d NetworkIdentity - formatting 2023-01-02 12:49:04 -05:00
MrGadget1024
ed102ffb23 NetworkIdentity - moved SetClientOwner down with AssignClientAuthority
- AssignClientAuthority is the only caller in this class
2023-01-02 12:28:58 -05:00
MrGadget1024
9405e9fef6 NetworkIdentity - moved ResetStatics up 2023-01-02 12:26:53 -05:00
MrGadget1024
bc28022552 NetworkIdentity - moved HandleRemoteCall up
- Nothing in NetworkIdentity calls this, only external callers
2023-01-02 12:24:20 -05:00
MrGadget1024
de421cdc1f NetworkIdentity - moved ClearDirtyBits methods up to their respective callers 2023-01-02 12:21:08 -05:00
MrGadget1024
c0e047b01a NetworkClient - moved NotifyAuthority and 2 related others down below Reset 2023-01-02 12:13:59 -05:00
MrGadget1024
d71c9e2a77 NetworkIdentity - moved ClearObservers down below Reset 2023-01-02 12:09:15 -05:00
MrGadget1024
82ff8fddf7 NetworkClient - moved DestroyObject down 2023-01-02 11:15:13 -05:00
MrGadget1024
3616ad818b NetworkServer - moved obsoletes
- localClientActive to above active
- ActivateHostScene to bottom out of the way
2023-01-02 09:53:01 -05:00
MrGadget1024
ce7706b5a0 NetworkServer - moved RemoveTransportHandlers up 2023-01-02 09:42:46 -05:00
MrGadget1024
ed8baffc6c NetworkServer - moved Listent and Shutdown up 2023-01-02 09:40:43 -05:00
MrGadget1024
2943aff578 NetworkServer - moved RebuildObserversCustom down 2023-01-02 09:33:52 -05:00
MrGadget1024
c4b919b7bc NetworkServer - moved AddAllReadyServerConnectionsToObservers down 2023-01-02 09:32:41 -05:00
MrGadget1024
5f455245ee NetworkServer - moved message handers up with RegisterMessageHandlers 2023-01-02 09:22:49 -05:00
MrGadget1024
ecfa4dd26e NetworkServer - Organized spawn methods to call order 2023-01-02 09:10:14 -05:00
MrGadget1024
a25502f82d NetworkServer - put AddPlayerForConnection methods in call order
- moved RemovePlayerForConnection up
2023-01-02 08:57:29 -05:00
MrGadget1024
051b63caee NetworkServer - put Destroy methods together in call order 2023-01-02 08:54:08 -05:00
MrGadget1024
1f87ebdf45 NetworkClient - Moved Destroy method down
- put it with DestroyAllClientObjects
- preparing for consolidation
2023-01-02 07:12:21 -05:00
MrGadget
77a4ad9674
breaking: Removed Old Obsoletes (#3335)
- Also normalized Deprecatd comments for easier searching
2023-01-01 18:37:49 +01:00
MrGadget
c364d194fe
fix: #3334 NetworkClient DestroyAllClientObjects Before ClearSpawners (#3336)
* fix: NetworkClient DestroyAllClientObjects Before ClearSpawners
- DestroyAllClientObjects needs to be able to call Unspawn handlers
- Fixes: 3334

* Update Assets/Mirror/Core/NetworkClient.cs

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-01-01 18:22:02 +01:00
MrGadget1024
4deb179d62 PreprocessorDefine - fixed typo in comment 2022-12-31 10:32:41 -05:00
MrGadget1024
ff461331d4 PreprocessorDefine - added 12 months comment 2022-12-31 10:29:48 -05:00
MrGadget1024
97547a285c Culled compiler symbols to last 12 months
- Going forward, we need to remove oldest when we add new one each month when we publish to the store, so we only keep them back 12 months.
2022-12-31 10:19:16 -05:00
vis2k
642423aef8 MIRROR_71_0_OR_NEWER 2022-12-31 14:44:09 +01:00
vis2k
ca9f07d812 fix: #3329 NetworkTransform UpdateServer checks if .connectionToClient is null to support room demo / scene changes 2022-12-31 14:36:57 +01:00
vis2k
6581300ce0 remove unused imports 2022-12-31 14:34:28 +01:00
MrGadget
993caf3b36
NetworkClient - Use TryGetComponent (#3331)
This eliminates allocations, at least in the editor, per Unity docs.
2022-12-31 13:59:57 +01:00
MrGadget
82a7e752a8
Use TryGetComponent (#3332)
This eliminates allocations, at least in the editor, per Unity docs.
2022-12-31 13:59:42 +01:00
MrGadget
fe4aa931e1
feat: NetManHUD StopClient button for Host (#3333) 2022-12-31 13:59:12 +01:00
MrGadget1024
be5cd6472a fix: set offline mode before OnStopClient
- Prevents StopClient from running more than once
- Fixes: #2080
2022-12-30 22:03:53 -05:00
mischa
739ef7ccc0
fix: #2240 #3324 NetworkIdentity.OnDestroy removes from spawned if not removed yet. prevents null entries in .spawned. (#3327)
* fix: #2240 #3324 NetworkIdentity.OnDestroy removes from spawned if not removed yet.
prevents null entries in .spawned.

* Update Assets/Mirror/Core/NetworkIdentity.cs

Co-authored-by: MrGadget <9826063+MrGadget1024@users.noreply.github.com>

Co-authored-by: MrGadget <9826063+MrGadget1024@users.noreply.github.com>
2022-12-30 22:38:16 +01:00
mischa
e95c9ae9a7
fix: #3318 NetworkServer.SpawnObjects only spawns objects which haven't been spawned yet. (#3328)
additive scene loading would call SpawnObjects again, which would attempt to spawn _all_ previously spawned objects _and_ the newly loaded ones.
2022-12-30 21:45:51 +01:00
MrGadget1024
1746468bef Removed unnecessary check 2022-12-30 15:32:46 -05:00
vis2k
c4e0e1b3bd NetworkServer: explain 'already spawned' warning in comments 2022-12-30 21:24:01 +01:00
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