Commit Graph

6396 Commits

Author SHA1 Message Date
mischa
10b3b234a4 Prediction: CorrectHistory moved into Prediction.cs for easier unit testing 2024-01-08 17:42:53 +01:00
mischa
8225f97d5d Prediction: move Debug.DrawLine before the recalculations 2024-01-08 17:42:50 +01:00
mischa
f51af69499 Prediction: move snapping above insertion because insertion would've been useless if snapped 2024-01-08 17:42:48 +01:00
mischa
19a47e67b2 Prediction: disable correction message logging 2024-01-08 17:07:28 +01:00
mischa
011ce5a331 comments 2024-01-08 11:56:07 +01:00
mischa
a843232a86 adjust defaults 2024-01-08 11:43:04 +01:00
mischa
ba16e2f949 fix(PredictedRigidbody): now snaps into place below a velocity threshold to fix dancing rigidbodies near rest position due to prediction fighting with corrections 2024-01-08 11:34:50 +01:00
MrGadget
e32914969f
feat(NetworkClient): Add RegisterHandler with ChannelId (#3728)
- Same as NetworkServer...allows NetworkMessage handlers to have a channelId param

This is NetworkServer's version:
```cs
public static void RegisterHandler<T>(Action<NetworkConnectionToClient, T, int> handler, bool requireAuthentication = true)
    where T : struct, NetworkMessage
{
    ushort msgType = NetworkMessageId<T>.Id;
    if (handlers.ContainsKey(msgType))
    {
        Debug.LogWarning($"NetworkServer.RegisterHandler replacing handler for {typeof(T).FullName}, id={msgType}. If replacement is intentional, use ReplaceHandler instead to avoid this warning.");
    }

    // register Id <> Type in lookup for debugging.
    NetworkMessages.Lookup[msgType] = typeof(T);

    handlers[msgType] = NetworkMessages.WrapHandler(handler, requireAuthentication, exceptionsDisconnect);
}
```
2024-01-08 10:37:47 +01:00
MrGadget
1299676d79
fix(Multiplexer): Avoid KeyNotFoundException in OriginalId (#3723)
Fixes: #3719
2024-01-08 09:53:08 +01:00
MrGadget1024
c38603b0c5 fix(NetworkServer): RemovePlayerForConnection use NetworkConnectionToClient
- This has to be an oversight - all callers are passing NetworkConnectionToClient
2024-01-07 11:16:15 -05:00
mischa
7ff1fd0dfe fix(KCP): KcpClient RawSend may throw ConnectionRefused SocketException when OnDisconnected calls SendDisconnect(), which is fine 2024-01-07 12:53:47 +01:00
mischa
df918ecf9f fix(Prediction): InsertCorrection would produce NaN multipliers, spreading through prediction code 2024-01-07 12:37:45 +01:00
mischa
febcce9513 perf: PredictedRigidbody ghost visibility update now only runs every 200ms 2024-01-06 12:30:11 +01:00
mischa
3a34dba5ed perf: PredictedRigidbody now caches original renderers instead of calling GetComponentsInChildren every frame 2024-01-06 12:23:05 +01:00
mischa
4eb9a255a0 PredictedRigidbody: UpdateVisualCopy helper function 2024-01-06 12:23:02 +01:00
mischa
0cc4726728 fix(InterestManagement): calling OnEnable multiple times doesn't show an error anymore 2024-01-06 11:57:13 +01:00
JesusLuvsYooh
be6c6c7c64
Renamed example scene to better explain its purpose. (#3717)
* Renamed example scene to better explain its purpose.

Made Mirror Better

* TanksCoop Scripts and folders renamed.

* Removed the s

Removed the s
2024-01-05 14:26:11 +01:00
MrGadget1024
92bec39f1a MatchController: syntax 2024-01-04 20:54:00 -05:00
MrGadget1024
912b170989 style(NetworkMatch): removed private 2024-01-04 13:59:14 -05:00
MrGadget1024
5b65afd68d doc(MatchInterestManagement): comments 2024-01-04 13:59:13 -05:00
MrGadget
0c46045130
perf(NetworkAnimator): ClientRpc includeOwner False (#3716)
No need to send the Trigger message back to the owner since we already called animator.SetTrigger
- RpcOnAnimationTriggerClientMessage
- RpcOnAnimationResetTriggerClientMessage
2024-01-04 18:57:46 +01:00
MrGadget
882bc6d2b6
fix(NetworkManager): No Auth Required for NotReadyMessage (#3715) 2024-01-03 19:33:48 +01:00
mischa
9a9fadbbf2 fix(KCP): V1.40 [2024-01-03]
- added [KCP] to all log messages
- fix: #3704 remove old fix for #2353 which caused log spam and isn't needed anymore since the
  original Mirror issue is long gone
- fix: KcpClient.RawSend now returns if socket wasn't created yet
- fix: https://github.com/MirrorNetworking/Mirror/issues/3591 KcpPeer.SendDisconnect now rapid
  fires several unreliable messages instead of sending reliable. Fixes disconnect message not
  going through if the connection is closed & removed immediately after.
2024-01-03 14:17:54 +01:00
mischa
7faa7a31f7
fix: #2852 NetworkAnimator now always serializes and deserializes the exact amount of data, and logs errors if runtime counts are mismatching (#3711)
* fix: #2852 NetworkAnimator now serializes animator.layerCount to make a mismatch in OnDeserialize impossible.

* parameters.length too
2024-01-03 10:42:08 +01:00
MrGadget1024
80ebeed7a1 NetworkRoomManager: Silenced Debug Logs 2024-01-02 21:59:58 -05:00
MrGadget
66b38852d5
perf(Match Interest Mgmt): Complete Overhaul (#3707)
* perf(Match Interest Mgmt) Use Dictionary instead of spawned
This is better than iterating all spawned objects and doing TryGetComponent in Update.

* undo rename

* Simplified OnRebuildObservers

* Overhauled Match Interest Mgmt
- no more looping dictionaries
- no more TryGetComponent in hot path
- NetworkMatch component drives the updates

* Cleanup

* syntax

* Merged UpdateDirtyMatches & UpdateMatchObjects into OnMatchChanged

* NetworkMatch - Added isServer check

* MatchInterestManagement: Better matchObjects cleanup
- moved match removal to LateUpdate
- added matchCount for debugging

* Added comment

Co-authored-by: Robin Rolf <imer@imer.cc>

* Formatting

Co-authored-by: Robin Rolf <imer@imer.cc>

* Updated OnMatchChanged / matchCount -> ushort
- Depends on ReadOnlyAttribute

* matchCount -> internal

* matchCount Header

---------

Co-authored-by: Robin Rolf <imer@imer.cc>
2024-01-02 20:21:00 -05:00
MrGadget1024
d2ad0b851b fix(MultipleMatches): Applied ReadOnly Attributes 2024-01-02 14:39:14 -05:00
MrGadget1024
ee8fda05fd fix(PlayerController): Applied ReadOnly Attributes 2024-01-02 14:37:35 -05:00
MrGadget1024
6a8502b8ed fix(NetworkRoomPlayer): Applied ReadOnly Attributes 2024-01-02 14:36:50 -05:00
MrGadget1024
d494ac28b7 fix(NetworkRoomManager): Applied ReadOnly Attributes 2024-01-02 14:36:18 -05:00
MrGadget
a5e4247e82
feat: Add ReadOnly Attribute and Drawer (#3712) 2024-01-02 16:25:28 +01:00
mischa
53da58a32a syntax 2024-01-02 13:38:27 +01:00
mischa
3f5f9bd9eb NetworkAnimator: OnDeserialize more obvious syntax 2024-01-02 13:32:17 +01:00
mischa
35d1387c7a NetworkAnimator: OnSerialize more obvious syntax (parameter is always true due to the 'if initialstate' above it) 2024-01-02 13:30:53 +01:00
mischa
7c87da9bc7 NetworkAnimator: OnSerialize syntax 2024-01-02 13:27:43 +01:00
mischa
275d5ad797 fix: #3710: NetworkServer.SendToAll/Observers/ReadyObservers now validates packet size while <T> is still known 2024-01-02 13:14:43 +01:00
mischa
732c4ebdab fix: #2810 NetworkAnimator now initializes state in OnEnable too 2024-01-02 11:40:10 +01:00
MrGadget1024
325cc15f5b feat(Chat Example): Bidirectional sync of networkAddress 2024-01-01 10:23:24 -05:00
MrGadget1024
e1195391c6 fix(MultipleMatches): MatchGUI Toggle OnValueChanged > OnToggleClicked 2024-01-01 07:53:05 -05:00
mischa
56a1aa096f fix: #3708 Kcp Stophost() null reference exception 2024-01-01 09:40:39 +01:00
MrGadget1024
4285a9b123 MatchController Prefab: resized Text element 2023-12-31 17:27:52 -05:00
MrGadget1024
a54c8bd9bd fix(NetworkManager): OnConnectionQualityChanged silenced log spam 2023-12-30 07:37:59 -05:00
MrGadget1024
4c295a80b6 fix(ChatNetworkManager): Removed singleton 2023-12-30 07:22:20 -05:00
MrGadget1024
1ccf954bbd fix(AdditiveLevelsNetworkManager): Simplified singleton 2023-12-30 07:22:20 -05:00
MrGadget1024
1430027e99 fix(NetworkRoomManagerExt): Simplified singleton 2023-12-30 07:22:20 -05:00
MrGadget1024
a322f009c6 fix(AuthorityNetworkManager): Removed singleton 2023-12-30 07:22:20 -05:00
MrGadget1024
112d6f4040 fix(MatchNetworkManager): Removed singleton 2023-12-30 07:22:20 -05:00
MrGadget1024
01be4fe67d fix(MultiSceneNetManager): Removed singleton 2023-12-30 07:22:20 -05:00
MrGadget1024
ae6a6355b1 fix(BasicNetManager): Removed singleton 2023-12-30 07:22:20 -05:00
MrGadget1024
143dede60d fix(AdditiveNetworkManager): Removed singleton 2023-12-30 07:22:20 -05:00
MrGadget1024
a425736bda fix(NetworkManagerCharacterSelection): Simplified singleton 2023-12-30 07:22:20 -05:00
MrGadget
a8a2e01b89
fix(NT Base): Consolidate NT fields to NT Base (#3706)
- Compress Rotation
- Only Sync On Change
2023-12-24 10:29:30 +01:00
MrGadget1024
b9601b9e7f perf(Examples): Enabled NT Compress Rotation 2023-12-24 04:02:32 -05:00
mischa
0d64d4718f fix: #3704 remove old fix for #2353 which caused log spam and isn't needed anymore since the original Mirror issue is long gone 2023-12-23 22:17:20 +01:00
JesusLuvsYooh
4caa831bdb
fix: Rotation compression using world when null value (#3705)
Fixes spazzing out of rotations, which was caused by flicking between compressed quaternion and world rotation.
Happened only if using NetworkTransformUnreliable, local worldspace and quat compression.
2023-12-23 21:34:37 +01:00
mischa
e46aff53d1 Prediction: only show ghosts while not inside the target object 2023-12-19 15:07:14 +01:00
mischa
88c7fa78c1 fix(NetworkPingDisplay): increase default width so rtt number isn't cut off 2023-12-19 14:46:32 +01:00
mischa
58148e02e5 fix(Prediction): PredictedRigidbodyVisual rotation interpolation now works 2023-12-19 14:12:06 +01:00
mischa
3d87b3f0c3 PredictedRigidbody: force SyncDirection so users can't configure it wrongly 2023-12-19 13:32:22 +01:00
mischa
f1cf4f6067 fix(Prediction): PredictedRigidbody now copies all materials, not just the first 2023-12-19 13:06:33 +01:00
mischa
0864676948 perf(PredictedRigidbody): get mesh renderer only once 2023-12-19 13:06:30 +01:00
mischa
12e73d3619 fix(Prediction): PredictedRigidbody now sets all materials to ghost material, not just one 2023-12-19 12:58:02 +01:00
mischa
91e028fbb4 MIRROR_86_OR_NEWER 2023-12-12 10:37:33 +01:00
MrGadget
5132fa8bfc
feat(HUD): Support for MultiplexTransport Port (#3662)
* Moved Multiplex to Core

* Updated Available and ToString in Transports
- Available now uses `#if UNITY_WEBGL` because `Application.platform != RuntimePlatform.WebGLPlayer;` doesn't work in Editor
- ToString was shortened and includes port for presentation in HUD

* NetworkManagerHUD: Added support for MultiplexTransport

* Moved Multiplex back to Transports

* Implemented PortTransport in Multiplex

* NetworkManagerHUD: reverted width change

* Revamped Port handler

* Changed LogError to LogWarning in Port setter

* Moved ToString change to separate PR

* Use Utils.IsHeadless

* Use Utils.IsDebug

* Removed console logging
2023-12-12 10:23:35 +01:00
MrGadget1024
b2d2cae776 perf(PlayerController): Changed 4 examples to NT-Reliable
- Tanks, Benchmark, CCU, and Pong examples all still use NT-Unreliable
2023-12-11 18:44:03 -05:00
mischa
c1be7b30e3 fix(Edgegap Plugin): fix NRE when reloading assets 2023-12-11 12:06:36 +01:00
mischa
a27a0aedc3 fix script icons 2023-12-11 12:06:33 +01:00
mischa
3e30c44864 Examples/Common: scripts moved into Scripts/ 2023-12-11 11:58:05 +01:00
mischa
67f32f2d90
feature: Edgegap Plugin V2 (#3692)
* Edgegap Plugin V2 from https://github.com/dylanh724/edgegap-unity-plugin-v2/tree/feat/plugin-v2.2

* fix things

* fix warnings

* fix u2020 support

* fix nre

* fix logo hardcoded path

* fix clipboard image hardcoded path and remove fonts

* syntax

* fix unity 2019/2020 breaking all editor UIs

* fix NRE on first open due to old window

* fix 2019 asserts

* link to our documentation

* disable warning

* fix unity 2019 unsupported syntax error

* Mirror.Hosting.asmdef: fix missing ref

* fix: remove all fonts to avoid the errors

* readme: two click hosting

* readme

* better

* fix 2019 errors

* fix U2020 async warning

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-12-09 11:02:01 +01:00
Clayton Hunsinger
608429c314
perf: SyncVar hook invocations no longer instantiate a new action delegate on every call (#3615)
Co-authored-by: Clayton Hunsinger <clayton@talofagames.com>
2023-12-06 15:28:54 +01:00
MrGadget
ab99215e68
feat(NetworkManager): Ability to toggle auto-start in Editor (#3694)
* feat(NetworkManager): Ability to toggle auto-start in Editor

* use Application.isEditor

---------

Co-authored-by: mischa <info@noobtuts.com>
2023-12-06 14:27:46 +01:00
MrGadget
92b99335d8
fix(ConnectionQuality): Move Connection Quality to Network Client (#3693)
* fix(ConnectionQuality): Move Connection Quality to Network Client
- Added zero as disable value
- Added Tooltip and Range to NetworkManager.connectionQualityInterval
- Obsoleted NetworkManager.OnConnectionQualityChanged
- Added temporary event wireups for OnConnectionQualityChanged
- Removed Action and overrides from NetworkManager template

* Removed stray blank line

* Added ConnectionQualityMethod Selection
- Enum added to ConnectionQuality
- Fields added to NetworkManager and NetworkClient
- Switch added to NetworkClient.UpdateConnectionQuality

* Use right params for Pragmatic

* Renamed Fields in NetworkManager
2023-12-06 10:06:31 +01:00
MrGadget1024
dd1923e4fd fix: Reset Scenes for 2019+ 2023-12-05 17:00:31 -05:00
MrGadget1024
d477189a97 fix(StinkySteak): Cannot use shortened new() in older Unity 2023-12-05 16:38:43 -05:00
MrGadget1024
b6f86ac3e7 Revert "fix(Examples): Updated scenes and lighting"
This reverts commit e2d63a88b0.
2023-12-05 16:33:45 -05:00
MrGadget1024
f04a2a915c fix(ConnectionQuality): reordered enums 2023-12-05 11:49:38 -05:00
MrGadget1024
c85f591b33 NetworkPingDisplay: Changed width to 100 2023-12-05 11:46:51 -05:00
MrGadget1024
2ddbf8c993 NetworkPingDisplay: Changed connectionQuality to hyphens 2023-12-05 11:46:07 -05:00
MrGadget1024
f05fcd0cab Removed GUI Console from Basic example 2023-12-05 11:42:45 -05:00
MrGadget1024
a3cb76019e fix(GUIConsole): Changed position / layout
- No longer clashes with the standard HUD
2023-12-05 11:31:40 -05:00
MrGadget1024
65fc3dbcb9 fix(GUIConsole): default hotkey changed to tick (Back Quote)
- F keys are mostly assigned to various things in browsers
2023-12-05 11:28:18 -05:00
MrGadget1024
7b55fe99cc HUD: make wdith a variable
- prepares for GUIConsole changes
2023-12-05 11:26:03 -05:00
mischa
f1bb7e4543
feature: Stinkysteak benchmark (#3690)
* wip

* add dependencies

* OnGUI

* timer license updated
2023-12-05 09:52:15 +01:00
MrGadget1024
e2d63a88b0 fix(Examples): Updated scenes and lighting 2023-12-04 19:41:03 -05:00
MrGadget1024
c834c227c6 Removed leftover empty folder metas 2023-12-04 06:19:41 -05:00
JesusLuvsYooh
49e5f767a6
feat: Compress network transform rotation boolean. (#3677)
* Compress Rotation Boolean

* Remove whatever the heck that was.

* Tidy Up

* Tidy Up 2

* You didnt see this.

* NT Unreliable Quaternion Compression

* Update NetworkTransformUnreliable.cs

---------

Co-authored-by: mischa <16416509+miwarnec@users.noreply.github.com>
2023-12-03 22:55:14 +01:00
MrGadget
c980fd9f91
feat(Utils): Add IsWebGL and IsDebug (#3688)
* fix(Utils): Add IsWebGL and IsDebug

* Constants
2023-12-03 22:53:28 +01:00
Andrew Allbright
02d12c12f2
Remove 'Empty' files that are older than 1 year (#3682) 2023-12-03 22:50:25 +01:00
MrGadget
f701ae1fda
fix(Utils): Fix IsHeadless to work in editor for Unity 2021+ (#3680) 2023-12-03 20:07:51 +01:00
MrGadget
c1699f8157
fix(KCP): Added port to ToString (#3683) 2023-12-03 20:07:16 +01:00
JesusLuvsYooh
16dbeb1707
feat: NetworkTransform obsolete define removal. (#3687) 2023-12-03 20:01:03 +01:00
MrGadget1024
eb0839674d fix(MultipleAdditiveScenes): Fixed missing RandomColor script on Player 2023-12-03 13:49:03 -05:00
MrGadget1024
f0b469410d fix: Reset walls 2023-12-03 13:43:26 -05:00
MrGadget
3136e6e752
Code Formatting in NT scripts (#3681) 2023-12-03 09:57:11 -05:00
MrGadget
93d7bd1889
fix(KCP): Use compiler symbols in Available (#3668)
* fix(KCP): Use compiler symbols in Available

* Added Comments
2023-12-03 08:50:43 -05:00
MrGadget
98dcffb701
fix(Telepathy): Use compiler symbols in Available (#3667)
* fix(Telepathy): Use compiler symbols in Available

* Added Comments
2023-12-03 08:50:19 -05:00
mischa
acd6b61c48
feature: PredictedRigidbody visual interpolation object (#3675)
* disable gizmo icons

* add latency simulation

* visual rb wip

* prefabs and materials

* self destroy

* lower transparency

* fix nre

* teleport multiplier

* teleport based on collider size

* better default

* auto create visual copy

* icon

* warn if no rend

* copy settings

* showghost option

* fix red reset to center

* under development warning
2023-12-01 11:13:38 +01:00
mischa
e955d341c7 Revert "fix(MultiplexTransport): OnValidate check that SimpleWebTransport is last"
This reverts commit f863b27a86.
2023-11-29 10:55:21 +01:00
MrGadget1024
f863b27a86 fix(MultiplexTransport): OnValidate check that SimpleWebTransport is last
- Warns user if SimpleWebTransport isn't last
- Prevents confusion caused by transports being out of order
2023-11-28 11:49:49 -05:00
MrGadget1024
b7bfee3a91 Added comments as requested 2023-11-27 09:37:45 -05:00
MrGadget
c621049080
fix(NetworkManager): Remove check for editor in Start (#3670)
IsHeadless returns false for null graphics device in editor so isEditor check is never reached, let alone evaluated.
2023-11-27 09:31:39 -05:00
mischa
b0e7703819 fix(EdgegapHosting): registry/image name/tag whitespaces are trimmed and throw errors instead of failing with "ERROR: "docker buildx build" requires exactly 1 argument." 2023-11-27 11:01:50 +01:00
MrGadget
447e96d042
feat(NetworkManager): Refactor Headless Start (#3664)
* feat(NetworkManager): Refactor Headless Start
- Two checkboxes are replaced with a dropdown
- Implementation self-adjusts to what user had selected to no breaking change.

* Added Deprecated dates

* Improved OnValidate

* restored using Utils.IsHeadless && !Application.isEditor
- Using compiler symbols will be in another PR
2023-11-27 10:55:59 +01:00
MrGadget
843d26599e
fix(Telepathy): Shorter Simpler ToString (#3669)
- looks nicer in the HUD
2023-11-27 10:54:57 +01:00
MrGadget
d6c0c17e87
fix(KCP): Use Log.Info instead of Debug.Log (#3671) 2023-11-27 10:53:20 +01:00
MrGadget1024
5e33b0336c fix(SWT): Changed two logs to Verbose in WebSocketServer 2023-11-27 00:16:48 -05:00
MrGadget1024
6a274962ad fix(SWT): Removed Console.Clear from ServerSslHelper 2023-11-27 00:16:05 -05:00
MrGadget1024
af5627e696 fix(SWT): Port get/set based on platform 2023-11-26 19:43:38 -05:00
MrGadget1024
dcccaa98f8 fix(SWT): Use server port in ClientConnect 2023-11-26 19:41:50 -05:00
MrGadget1024
7b3b730adb fix(SWT): Improve OnClientError / OnServerError 2023-11-26 19:39:53 -05:00
MrGadget1024
e72f85e640 Revert "SWT: port changed to Port, WebGL Platform handling"
This reverts commit 75951df2e5.
2023-11-26 11:00:03 -05:00
MrGadget1024
75951df2e5 SWT: port changed to Port, WebGL Platform handling 2023-11-26 10:53:05 -05:00
Andrew Allbright
21bc42f388
feat: Added NetworkDiagnosticsDebugger to log messages sent and received (#3665) 2023-11-25 17:44:44 -05:00
MrGadget1024
5ac3cdbac0 fix(NetworkClient): GUILayout tiny bit wider 2023-11-25 14:59:27 -05:00
MrGadget1024
74df250626 fix(Multiplex): ToString all on one line
- transports will be updated to output short ToString text
2023-11-24 18:58:42 -05:00
MrGadget1024
28a876cba9 fix(NetworkIdentity): Made clientStarted public and moved it up 2023-11-24 18:08:02 -05:00
MrGadget1024
11dc4a9f60 fix(NetworkManager): Move networkAddress check up in StartClient
- If we're going to abort for this, do it before setting anything up.
- If/when the networkAddress is later set, we won't have issue with double initilization when StartClient is called again.
2023-11-24 18:03:05 -05:00
MrGadget
dfec9a713e
feat(SWT): Logging System Overhaul (#3663)
* SWT-Logging system overhaul
2023-11-24 17:39:23 -05:00
MrGadget1024
bfe95afc0c SWT(BufferPool): Grammar in exception 2023-11-24 16:49:32 -05:00
MrGadget1024
8bb713cfb5 SWT(Connection): Return remoteAddress in ToString if available 2023-11-24 16:47:12 -05:00
MrGadget1024
ba100dcd2c SWT: Rearranged Inspector fields 2023-11-24 16:35:07 -05:00
MrGadget1024
b79b2dd58a SWT: Renamed Log Levels 2023-11-24 16:32:18 -05:00
MrGadget1024
0f17071d48 SWT: Renamed serverMaxMessagesPerTick to serverMaxMsgsPerTick 2023-11-24 16:29:12 -05:00
MrGadget1024
3d32470d3a SWT: renamed clientMaxMessagesPerTick to clientMaxMsgsPerTick 2023-11-24 16:27:48 -05:00
MrGadget1024
8c1825dfb3 SWT: Renamed Log.level to minLogLevel 2023-11-24 16:18:20 -05:00
MrGadget1024
7ae2e0b234 Renamed _logLevels to minimumLogLevel 2023-11-24 16:13:21 -05:00
MrGadget1024
fc5f68a637 SWT: Renamed handshakeMaxSize to maxHandshakeSize 2023-11-24 16:11:44 -05:00
MrGadget1024
cab133ce06 SWT: Syntax 2023-11-24 16:06:03 -05:00
MrGadget1024
5b71136a0e SWT: Removed stray blank lines 2023-11-24 16:04:20 -05:00
MrGadget1024
36382bd875 SWT: Syntax 2023-11-24 16:01:13 -05:00
MrGadget1024
20faa4ef67 SWT: Added Help URL 2023-11-24 15:59:35 -05:00
MrGadget1024
9f9957eafa SWT: Added console color comments 2023-11-22 21:39:21 -05:00
MrGadget1024
8cf499e61e SWT: Added ToString override 2023-11-22 21:38:55 -05:00
MrGadget
f83d568e60
feat(HUD): Better HUD for WebGL (#3659)
* feat(HUD): Better HUD for WebGL

* restored comments

* fixed missing StopClient

* Simplified Stop Buttons
2023-11-22 18:00:42 -05:00
JesusLuvsYooh
d55967640f
fix: TanksCoop example, reset host values. (#3660)
Added OnStopServer  - nulls, to prevent a bug that can be caused on client host, when scenes do not reset during play, tank variables are set as "missing", which Unity does not count as null/empty.
2023-11-22 15:32:51 -05:00
MrGadget1024
a420e20d24 NetworkManagerHUD: formatting & syntax 2023-11-22 13:26:02 -05:00
MrGadget1024
b9b80c4f93 fix(SWT): silenced silly error logs 2023-11-22 12:53:58 -05:00
MrGadget1024
eb66d81c77 feat(Reader/Writer): Added LayerMask Support
- includes normal and nullable
- includes unit tests
2023-11-21 02:26:22 -05:00
MrGadget1024
fd049fc67d fix(PlayerPredicted): Fixed deprecated FindObjectOfType 2023-11-20 20:45:59 -05:00
MrGadget1024
0aef64259b fix(ClientWebsocketSettingsDrawer): Syntax Error 2023-11-20 19:34:19 -05:00
MrGadget1024
36a78fff7e SWT: Code formatting and syntax 2023-11-20 19:26:09 -05:00
Andrew Allbright
2425898def
feat: [SimpleWebTransport] Add ability to specify a custom client port (for reverse proxy scenarios not using port 80/443) (#3648)
* Add ability to specify a client port (for reverse proxy scenarios not using port 80/443)

* Create custom editor for simple web transport to enable customizing client port

* Incorporate James' suggestions

* Clients can specify custom paths too

* Tidy up code, try to make new settings more user friendly (+tooltips)

* Move simplewebtransport editor into new simplewebtransport.editor asmdef

* Remove custom path from client websocket connection

* Update Assets/Mirror/Transports/SimpleWeb/Editor/ClientWebsocketSettingsDrawer.cs

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

* var -> explicit type

* Remove editor asmdef

* remove private

---------

Co-authored-by: MrGadget <9826063+MrGadget1024@users.noreply.github.com>
2023-11-20 17:38:18 -05:00
mischa
dbe98740be breaking: remove PredictedRigidbody auto generated namespace 2023-11-20 17:21:19 +01:00
mischa
e42217a978 PredictedRigidbody: show inserted correction too 2023-11-20 13:22:39 +01:00
MrGadget1024
b5d6d775df Updated Compiler Symbols 2023-11-20 07:06:24 -05:00
mischa
ab7c153df9 fix failing test 2023-11-20 12:32:10 +01:00
mischa
582a9c9dbf fix failing test 2023-11-20 12:24:04 +01:00
mischa
a24103baef PredictedRigidbody: comment out unused positionSensitivity for now 2023-11-20 12:17:43 +01:00
mischa
0655f77922 PredictedRigidbody: CorrectionMode instead of bool to support more modes soon 2023-11-20 10:58:23 +01:00
MrGadget1024
55e8ca57e7 fix(RandomColor): Consolidated to Common 2023-11-19 10:14:12 -05:00
MrGadget1024
ec357740cb fix(PhysicsSimulator): Consolidated to Common 2023-11-19 10:13:22 -05:00
MrGadget1024
1113e45f5f fix(CanvasNetworkManagerHUD): added namespace 2023-11-19 10:10:12 -05:00
MrGadget1024
0c8166326d fix(AdditiveLevels): Fixed Portal label generation 2023-11-19 08:38:47 -05:00
mischa
816b775feb Revert "fix: #3576 Pings are now stamped with a scene hash so we can drop messages before a (potentially long) scene load. fixes a bug where RTT would be very high after a long scene load. (#3650)"
This reverts commit c729fe119c.
2023-11-17 11:09:33 +01:00
mischa
d4c0f20827
breaking: fix: #3652 host [Command]s are now simulated over a message queue instead of invoking them directly (credits: Brian B.) (#3653)
* comment

* fix: host [Command]s are now simulated over a message queue instead of invoking them directly (credits: Brian B.)
2023-11-17 10:34:20 +01:00
mischa
8ec937dfa6 LocalConnectionToClient: update comments 2023-11-16 17:10:49 +01:00
mischa
d6c43a343b Tanks/FaceCamera moved to Examples/Common 2023-11-15 11:30:01 +01:00
mischa
95f3ac501d Examples/Common renamed to Examples/_Common to be more obvious 2023-11-15 11:26:46 +01:00
mischa
c729fe119c
fix: #3576 Pings are now stamped with a scene hash so we can drop messages before a (potentially long) scene load. fixes a bug where RTT would be very high after a long scene load. (#3650)
* fix: #3576 Pings are now stamped with a scene hash so we can drop messages before a (potentially long) scene load. fixes a bug where RTT would be very high after a long scene load.

* 16 bit hash fakebyte
2023-11-15 11:25:37 +01:00
mischa
7a69c424eb Extensions: GetStableHashCode16 from NetworkMessages.CalculateId for reuse in other places 2023-11-15 11:08:03 +01:00
mischa
f5599fa0c9 Room Example: update readme for new scene names 2023-11-15 09:51:15 +01:00
mischa
d90b913d5d PredictedRigidbody: smoothCorrection tooltip 2023-11-14 13:14:08 +01:00
mischa
9d94adb1b8 syntax 2023-11-14 13:02:20 +01:00
mischa
c2fb271b83 predictedTime: comments 2023-11-14 11:49:28 +01:00
MrGadget
63f0fe4365
fix(PredictedState): Remove public accessors (#3649)
- Unity 2019 doesn't support `public` accessors inside interfaces.
- Compiles fine in all Unity versions without them.
2023-11-14 09:50:42 +01:00
mischa
7514e9b0f3 feat: Prediction October Progress [don't use this yet!] 2023-11-13 14:08:19 +01:00
mischa
d1c60845bd fix: Telepathy V1.9 2023-11-10 11:23:54 +01:00
Robin Rolf
d4734c0892
fix: EdgegapHosting connect uses passed-in name/version (#3646) 2023-11-08 20:00:47 +01:00
MrGadget1024
6453db147d PreprocessorDefine - moved comments up
- They'll be in the way of automation
2023-11-08 08:48:56 -05:00
mischa
9deff7e3f7 fix: EdgegapPlugin now shows detailed progress bar title and indicates 'Uploading' while uploading instead of freezing at 'Build and push: Pushed' for several minutes while uploading 2023-11-08 10:50:23 +01:00
mischa
0877e1f7ac EdgegapPlugin: comment 2023-11-08 10:29:10 +01:00
mischa
acda90ae33 syntax 2023-11-08 10:28:43 +01:00
mischa
bcea21191b fix: EdgegapPlugin typo 2023-11-08 10:27:23 +01:00
mischa
9979745bf9 fix: Edgegap Plugin 'InvalidOperationException: This instance has already started one or more requests.' when trying to Connect->Disconnect->Reconnect or Start->Stop->Start server 2023-11-08 10:26:43 +01:00
MrGadget
7bcaae9fb7
fix(EdgegapWindow): Simplify clearing ProgressBar (#3645)
- This was Imer's idea from Discord
2023-11-08 09:41:29 +01:00
mischa
b73c5ea9bd indentation 2023-11-07 20:21:25 +01:00
mischa
0a3368afe3 fix: EdgegapPlugin progress bar getting stuck when returning early without clearing it 2023-11-07 20:18:53 +01:00
mischa
42a89a798b
fix: Headless / Dedicated Server detection now works on Unity 2019/2020 without dedicated server build support too (#3643) 2023-11-07 18:06:29 +01:00
mischa
3f31cbd99b fix: EdgegapPlugin Unity 2019/2020 support 2023-11-07 10:30:11 +01:00
mischa
1b5f963c1f fix: EdgegapPlugin now builds properly on ARM machines instead of deployments failing silently 2023-11-07 09:59:37 +01:00
mischa
eab86098df fix: EdgegapPlugin EdgegapWindow.cs UIToolkit stylesheet paths aren't hardcoded anymore, allowing users to move Assets/Mirror/Hosting/Edgegap folder 2023-11-06 16:03:23 +01:00
mischa
e1d9604e3d breaking: Edgegap Plugin: ServerDataManager UI code moved into EdegapWindow.cs and made non-static.
prepares for not-hardcoded stylesheet path as well.
2023-11-06 15:50:26 +01:00
mischa
7916f39613 Edgegap Plugin: EdgegapServerDataManagerUtils merged into EdgegapServerDataManager to prepare for non-static rewrite 2023-11-06 15:35:34 +01:00
mischa
005319adb8 breaking: Edgegap Plugin: remove EdgegapToolScript+Editor for now - the custom editor never shows anyway 2023-11-06 15:27:24 +01:00
MrGadget1024
fd758a8a88 fix:(NetworkServer) Added check for UNITY_EDITOR in Listen 2023-11-06 08:12:38 -05:00
MrGadget1024
b2f2e1c464 fixed indentation 2023-11-06 08:09:59 -05:00
mischa
7d91f9a073 Edgegap Plugin: move IsArmCPU to BuildUtils 2023-11-06 14:04:46 +01:00
MrGadget1024
57d412c704 Consolidated Server Listening output 2023-11-06 08:03:31 -05:00
mischa
bb9bf76eb9 fix: Edgegap plugin now detects and warns about ARM CPUs instead of deployments failing silently 2023-11-06 13:59:57 +01:00
MrGadget1024
54309b5e39 fix(MultiplexTransport): Add Server listening output 2023-11-06 07:58:17 -05:00
JesusLuvsYooh
b195cc062a
fix: Port log for when Server has started and is listening. (#3642)
Allows users to know if Server has actually started and which port, and not just initialised.
Credits to Gadget for code and suggesting to have it in NetworkServer.
(Originally was going in KCP-only)
2023-11-06 07:56:31 -05:00
mischa
1641bba5b1 fix: NetworkManager autoStartServerBuild now only auto starts a server in build, not in editor 2023-11-06 13:45:05 +01:00
mischa
113f810be9 Edgegap Plugin: remove unnecessary target switching 2023-11-06 13:06:38 +01:00
mischa
38c3781d9c feat: NetworkManagerHUD exposes configurable Port field if Transport uses a Port 2023-11-06 13:02:06 +01:00
mischa
4193d75551 fix: Edgegap Plugin now creates Dedicated Server instead of Headless --nographics builds which should include #UNITY_SERVER define 2023-11-06 09:39:23 +01:00
mischa
bccebc67b4 Revert "fix: Edgegap Plugin 'InvalidOperationException: This instance has already started one or more requests.' when trying to Connect->Disconnect->Reconnect"
This reverts commit 68d768b871.
2023-11-06 09:31:09 +01:00
MrGadget1024
bd85c74f52 NetworkManagerWithActions template - made actions non-static
- the singleton is already static, so ref them through that.
2023-11-05 07:54:13 -05:00
mischa
68d768b871 fix: Edgegap Plugin 'InvalidOperationException: This instance has already started one or more requests.' when trying to Connect->Disconnect->Reconnect 2023-11-05 13:31:13 +01:00
mischa
ec548a6921 fix: Edgegap Plugin: Multiple precompiled assemblies with the same name Newtonsoft.Json.dll included - this is now included via Package Manager dependency 2023-11-05 13:14:18 +01:00
mischa
2d3776df6e Edgegap Plugin: detailed error message & solution for 'project not found' 2023-11-05 13:08:01 +01:00
MrGadget1024
c66f40f925 fix(NetworkManager): CalculateConnectionQuality and OnConnectionQualityChanged are now public
- Also moved them down with the rest of the OnClient overrides
- Also rewrote the comments as <summary> comments
2023-11-04 17:49:04 -04:00
MrGadget1024
1cda80369a feat(Templates): Added Script Templates with Actions
- Adds template NetworkManagerWithActions
- Adds template NetworkBehaviourWithActions
2023-11-04 17:46:33 -04:00
MrGadget1024
8cd6cb1602 Renamed Network Authenticator and Interest Mgmt templates 2023-11-04 14:54:11 -04:00
MrGadget1024
075f250976 NetworkBehaviour Template - Added Awake and Start with comments 2023-11-04 14:53:25 -04:00
MrGadget1024
7e80464d5d NetworkManagerTemplate - simplified singleton 2023-11-04 12:54:30 -04:00
mischa
5aca20f2d9 Edgegap Plugin: link to our custom documentation instead 2023-11-03 20:48:54 +01:00
mischa
05e9ca4646
feature: Edgegap Hosting Plugin (#3636)
* edgegap plugin from https://github.com/edgegap/edgegap-unity-plugin

* newtonsoft.json plugin from https://github.com/JamesNK/Newtonsoft.Json/releases/tag/13.0.3 (

* fix stylesheet paths

* version

* fix stylesheet paths

* syntax: remove redundant private identifiers

* readme

* syntax: use explicit type instead of var

* syntax: remove redundant private identifiers

* styling

* rename folder

* plugins

* styles

* readme updated

* fix deprecated warning

* mark mirror changes

* naming

* stylesheet path const

* namespace Edgegap

* remove unused imports

* delete scenes

* syntax

* mirror.hosting.asmdef

* only in editor

* syntax

* show error in error window

* fix typo

* syntax

* RunCommand_DockerVersion helper to prepare for platform indepenent code

* add logging

* logging better

* syntax

* mac and linux cmd docker version support

* syntax

* improve error

* syntax

* check linux build support

* detailed instructions

* restart warning

* gitignore builds

* mirror change mark

* docker build and push command platform independent

* improve log

* helpful docker daemon error

* unauthorized access error
2023-11-03 19:39:19 +01:00
mischa
631b8e0eac fix: #3588 NetworkTransform OnTeleport doesn't call Reset() anymore, causing NetworkTransformReliable's delta compression to get out of sync before 2023-11-01 15:15:52 +01:00
mischa
a432b7f43d fix: #3632 disable EdgegapKcpTransport OnGUI 'new' warning 2023-11-01 14:38:37 +01:00
mischa
a6304ded73 TransformSnapshot: add ToString for easier debugging 2023-11-01 12:58:14 +01:00
mischa
a195a07775 kcp V1.39:
fix: https://github.com/MirrorNetworking/Mirror/issues/3611 Windows UDP socket exceptions on server if one of the clients died
2023-10-31 23:08:45 +01:00
mischa
b434d001b1 change Debug.Assert to Assert.That 2023-10-29 17:53:03 +01:00
mischa
2ab395cc85 NetworkBehaviour.authority test coverage from #3495 2023-10-29 17:48:06 +01:00
MrGadget
64cb1a0082
fix: Fix Unity 2023 obsoletes (#3635) 2023-10-29 17:38:44 +01:00
MrGadget
6a8b4beaa1
breaking: Removed older Obsoletes (#3633)
BREAKING CHANGE - Removed older Obsoletes
2023-10-29 17:37:44 +01:00
mischa
bdb6cd8e53 fix: #3528, #3529 NetworkBehaviour.authority now evaluates correctly in host mode too 2023-10-29 17:35:27 +01:00
MrGadget
97dc02ed59
fix: Add missing GetHashCode method for older Unity (#3631)
* fix: Add missing GetHashCode method for older Unity
- Cures warning about missing override.

* commit changes?
2023-10-29 10:40:10 +01:00
mischa
993ae8dc0f
fix: KCP V1.38 [2023-10-29] (#3629)
- fix: mismatching cookie race condition. cookie is now included in all messages.
   https://github.com/MirrorNetworking/kcp2k/issues/54
- feature: Exposed local end point on KcpClient/Server
- refactor: KcpPeer refactored as abstract class to remove KcpServer initialization workarounds
2023-10-29 10:39:02 +01:00
mischa
9fe1d06ac0
fix: LatencySimulation now always applies latency to both channels. Fixes hard to debug issues where [SyncVar/Command/Rpc]s would be way off while NetworkTime.time was fine, due to latency being applied to only one channel. (#3627)
* fix: LatencySimulation now always applies latency to both channels. Fixes hard to debug issues where [SyncVar/Command/Rpc]s would be way off while NetworkTime.time was fine, due to latency being applied to only one channel.

* this too
2023-10-27 11:29:10 +02:00
mischa
5d1b041b69 LatencySimulation: syntax / readonly 2023-10-25 16:52:44 +02:00
mischa
334e20d8fa Billiards example: fix ForceMode and add maxForce 2023-10-25 15:07:37 +02:00
MrGadget1024
36c93d0359 CanvasController - reordered methods and callers 2023-10-22 07:00:26 -04:00
MrGadget1024
76bab63598 AdditiveLevelsNetworkManager - fixed comment 2023-10-22 06:58:54 -04:00
MrGadget1024
2bf9bcdcdf Portal - improved comments 2023-10-22 06:58:28 -04:00
MrGadget1024
64f2f109d5 Reward - removed erroneous comments 2023-10-22 06:57:57 -04:00
MrGadget1024
5cc090a1a5 MultiSceneNetManager - fixed comment 2023-10-22 06:56:45 -04:00
MrGadget1024
6b4bac7dc2 Unity updated prefab 2023-10-22 06:56:21 -04:00
JesusLuvsYooh
f56394a406
Scenes renamed, see description. (#3625) 2023-10-18 12:12:08 +02:00
mischa
809f7a4a0e feature: kcp2k exposes LocalEndPoint (credits: Whale) 2023-10-13 19:27:18 +02:00
mischa
3bf180c1a6 ILPostProcessorLogger: TODO fix 2023-10-12 11:09:00 +02:00
Robin Rolf
0c5eba7aaa
fix: NetworkTime creates it's own frame time in 2019 (#3624)
Since we don't have double time there yet and the stopwatch will change during the frame which causes jitter and other artifacts
supersedes #3623
See also #2838
2023-10-08 21:21:52 +02:00
mischa
c312b6ba76 feature: ConnectionQuality details 2023-10-06 13:05:49 +02:00
mischa
52e36977fe
feature: Edgegap Relay from https://github.com/edgegap/distributed-relay-examples 2023-10-05 20:23:04 +02:00
JesusLuvsYooh
04af0fc709
Updated server build tooltip on NM (#3622) 2023-10-05 11:02:13 +02:00
Robin Rolf
8a0f6b1329
feat: NetworkManager Populate Spawnable Prefabs button (#3608)
* feat: Button to add all NI's to NetworkManager

* Undo.RecordObject instead of EditorUtility.SetDirty

* Button rename

* Don't clear list, only add

* ignore Mirror/Examples too

* fix: Undo.RecordObject needs to be called before modifying

* fix: individual entries weren't saved

* sort alphabetically to improve UX

* adjust caption

---------

Co-authored-by: mischa <info@noobtuts.com>
2023-09-30 10:04:11 +02:00
Justin Nolan
24d0ebece9
fix: improve NetworkMessage ID Hashing to minimize collisions (#3618)
* Improve network message ids

-Replaced the string stable hash function with an fnv1a hash which is a more uniform hash function
-Instead of casting the 32bit hash to 16bit which cuts off data we fold it in its self using xor to improve the 16bit hash

* Fix test

* Update Extensions.cs

---------

Co-authored-by: mischa <16416509+miwarnec@users.noreply.github.com>
2023-09-29 11:16:19 +02:00
mischa
3fff51d4a1 comment 2023-09-18 14:44:08 +02:00
mischa
046e825156 predictedTime: comments 2023-09-18 14:42:19 +02:00
mischa
3d4f54c8dd fix: Billiards & BilliardsPredicted Rigidbodies now freeze Y position to avoid flying off or over the table 2023-09-18 13:10:24 +02:00
mischa
e3ed9aca2d fix failing tests 2023-09-18 10:25:40 +02:00
mischa
c903298513
NetworkServer.Destroy: add warning if called on client without server/host to make this more obvious, instead of destroying something locally that doesn't persist on the server (#3604) 2023-09-17 11:01:07 +02:00
mischa
c49d188e8b
feature: NetworkManager.exceptionsCauseDisconnect option (#3605)
* NetworkManager flag

* NetworkMessages handle

* NetworkClient setting

* NetworkSErver setting

* NetworkManager applies it

* this too

* shorter

* bette wording (imer)

* security by default
2023-09-17 10:58:39 +02:00
mischa
94f5a924ff
feature: NetworkTime.predictedTime to prepare for Prediction (#3599)
* feature: NetworkTime.predictedTime to prepare for prediction

* disable log

* NetworkTime.predictedTime simplified: client timeline based on Time.time to fix first 5s being way ahead, history being too old, etc.
2023-09-14 11:30:33 +02:00
mischa
613f84b494 fix: Billiards / BilliardsPredicted ball Rigidbody CollisionMode changed from Continous to ContinousDynamic to fix white flying through red when applying large forces 2023-09-14 11:30:06 +02:00
JesusLuvsYooh
7b49b7d09d
A drag and drop Canvas UI HUD for NetworkManager (#3602)
Scales
Contains features of older OnGUI HUD
Credits to Ninja
2023-09-14 10:02:49 +02:00
mischa
0fce9bcdfb fix: #3595 attempting to sync a Transform that isn't networked will now show a more obvious warning 2023-09-09 12:54:17 +02:00
JesusLuvsYooh
06f1ee09a0
feature: New Example - Character Selection and customisation. (#3593)
* Draft 1

Scene set up, podium and medic character added, minor ui and idle animation.

* Draft 2

3 characters, medic, assault, heavy.
Canvas linked up, along with character data.

* Draft 3

Map scene
Static variables, save data
Custom network manager

* Draft 4

Character pivots rotated.
Animation changes child, not parent position.
Spawn positions added.
Cheat protection for player prefab number added.

* Draft 5

Adding in customisations ontop of separate prefabs.
Player camera.

* Draft 6, part 1 complete.

Finished Player name, player colours.
Part 1 complete
Needs tidying up and code comments.

* Draft 7, checkpoint before next step.

* Draft 8 - Pre-selection and in-game character selection finished?

Pre-selection and in-game selection finished?

* Draft 9

* Draft 10 - CharacterSelection Example

* Draft 11

* Draft 12

* Draft 13
2023-09-07 21:57:22 +02:00
JesusLuvsYooh
796b0711f0
Update CouchPlayerManager.cs (#3592)
Moved some code from Awake to OnStartAuthority to prevent a reference from getting overridden.
Fixes Server/Host from not being able to add its own new local players, if remote players have maxed themselves out.
2023-09-07 10:07:37 +02:00
mischa
fcbf841d84 Billiards Demos: change trail debug line color and time 2023-09-07 09:26:51 +02:00
mischa
d9ef6d855c GUIConsole: don't show in Unity Editor, we already have the Console window there (but keep it as option) 2023-09-06 18:39:38 +02:00
mischa
357e798e25 fix: Unity 2019/2020 compilation failing because ConcurrentQueue<T>.Clear was missing 2023-09-05 09:21:08 +02:00
mischa
55daefab2a grammar fix 2023-09-05 09:17:10 +02:00
mischa
ae496ef0ee NetworkTransformBase: virtual SetPosition/Rotation/Scale for users to overwrite if needed 2023-09-01 15:59:10 +02:00
mischa
02db1b03d5 NetworkTransformBase: virtual GetPosition/Rotation/Scale for users to overwrite if needed 2023-09-01 15:51:18 +02:00
mischa
966c4f2bdd BilliardsPredicted: Player/ folder for PlayerPredicted prefab 2023-09-01 11:54:37 +02:00
mischa
3be960692c BilliardsPredicted: show FPS at runtime 2023-09-01 11:18:28 +02:00
mischa
9aba125566 BilliardsPredicted: fix prefab script references 2023-08-31 11:08:16 +02:00
mischa
34d3777bc3 BilliardsPredicted: script naming 2023-08-31 11:06:36 +02:00
mischa
ff56210a36
feature: Threaded Transport & Threaded KCP (#3582)
* Tools: ThreadLog for thread safe logging in Unity builds

* events

* move folder

* WorkerThread & tests

* ConcurrentPool & Tests

* ConcurrentNetworkWriterPool & Tests

* ThreadedTransport empty

* syntax

* server part

* client part

* separate queues and updates

* separate events for strong typing

* virtual awake

* fix & support uri

* threaded early/late

* threaded kcp!

* private

* simplify

* use threaded callbacks

* active flags

* enabledcopy

* fix ids

* fix onsend

* fix disco param

* fix segment copy

* fix

* comment

* deadlock prevention
2023-08-29 12:57:55 +02:00
JesusLuvsYooh
4405082d4b
Example: Couch Co-Op (#3589) 2023-08-25 14:15:49 +08:00
mischa
9a4e317874 Examples: BilliardsPredicted. copy of Billiards demo, to apply prediction features onto in the future. 2023-08-17 22:11:41 +02:00
mischa
b7fad3e672 Billiards Demo: create prefab from table in hierarchy 2023-08-16 18:36:44 +02:00
mischa
5fba72dc3c Billiards Demo: apply red changes to prefab 2023-08-16 18:36:07 +02:00
mischa
d8bb5ec15e Billiards Demo: move indicator into white ball prefab for ease of use 2023-08-16 18:33:15 +02:00
mischa
b0b6d351b9 Billiards Demo: fix materials 2023-08-16 18:30:09 +02:00
mischa
463028260f Billiards demo: update namespace 2023-08-16 18:02:09 +02:00
mischa
50e6d5f890
feature: Multiplayer Billiards demo (#3583) 2023-08-13 09:54:21 +02:00
mischa
db241bb413 breaking: NetworkReader/Writer Read/WriteBytesAndSizeSegment renamed to Read/WriteArraySegmentAndSize for clarity. 2023-08-12 19:13:15 +04:00
mischa
e799b08303 syntax 2023-08-12 19:08:15 +04:00
mischa
4d7c5b6e41 Reader/Writer: sort WriteBytes(AndSize) functions 2023-08-12 19:05:20 +04:00
mischa
f05df29639 NetworkIdentity: don't need to show assetId in Inspector 2023-08-12 18:59:24 +04:00
mischa
2a29f6e686 NetworkManager: improve warning about player prefab in spawnable prefabs list 2023-08-11 22:16:13 +04:00
mischa
684a61c964 script icons 2023-08-10 18:07:37 +04:00
mischa
2e1e3bfd9c assign missing icon 2023-08-08 16:40:59 +08:00
mischa
6de9448c4a small cleanups 2023-08-08 16:34:24 +08:00
mischa
877b249add MIRROR_81_OR_NEWER 2023-08-08 16:32:59 +08:00
JesusLuvsYooh
10badbe21c
Adjusted UI scaling in new TanksCoop example. (#3579) 2023-08-06 10:15:42 +08:00
mischa
2365d301e1 SimpleWeb: minimize logging hot path allocations 2023-08-05 13:47:42 +08:00
mischa
d7757e95f2
perf: VarInt compression performance improvements (#3578)
* perf: VarInt compression performance improved by writing multiple bytes at once

* merge byte shifting

* this too
2023-08-05 07:13:16 +02:00
mischa
cd390bfce1 VarInt: tests now cover accidentally duplicating bytes 2023-08-04 19:47:12 +08:00
mischa
9d0e90f484
perf: remove O(N) ClearDirtyComponentsDirtyBits calls in NetworkServer.Broadcast() and NetworkClient.Broadcast() (#3575)
* perf: remove O(N) ClearDirtyComponentsDirtyBits calls in NetworkServer.Broadcast() and NetworkClient.Broadcast()

* only for delta [imer]
2023-08-03 14:01:35 +02:00
mischa
594a0f5c79 Examples: added BenchmarkIdle demo to test with 80% idle objects 2023-08-03 12:34:17 +08:00
mischa
e45c8e2e37 typo 2023-08-03 12:09:40 +08:00
JesusLuvsYooh
d2c475409f
feature: NetworkTransform WorldScale option (#3565)
* NT WorldScale option DRAFT - Will test, tidy and comment tomorrow.

Currently NT is local, and in some cases world is needed.

* Updated tooltip etc

All tested, using tanks example, and dragging a player tank into empty gameobject, then this gameobjcets position/rotation/scale and hierarchy changing live during gameplay. Switching to world bool fixes any problems caused by that.

* Enum dropdown, rather than bool as requested.

* Ternary shortcuts

* tab

* adjustments

* better

* cleanup

* force disable world scale

---------

Co-authored-by: mischa <info@noobtuts.com>
2023-08-02 08:21:33 +02:00
mischa
c077b53324 NetworkClient: improve 'did not find target for sync message' warning 2023-08-01 23:19:56 +08:00
mischa
7898b559b9 fix: SimpleWebTransport conditionals removed so users can see error messages 2023-08-01 11:53:43 +08:00
mischa
e92e91dcfd kcp2k V1.37 [2023-07-31]
- fix: #47 KcpServer.Stop now clears connections so they aren't carried over to the next session
- fix: KcpPeer doesn't log 'received unreliable message while not authenticated' anymore.
2023-07-31 18:10:23 +08:00
mischa
e4304bfed6
feature: HistoryBounds MVP (#3563)
* readme, folders

* HistoryBounds.Insert placeholder and test

* Insert: naive implementation

* easier

* simple benchmark

* move into lag comp

* benchmark improvements

* deterministic benchmark

* tests: revisit coverage

* syntax

* HistoryBounds data structure - wip

* Reset

* oops

* insert in structure

* historyBounds.total

* comment

* test

* comments

* tests: insertfar

* simplify insertion; only recalculate when removed

* fix comment

* recalculate every nth

* benchmark simplified

* benchmark variant

* BUCKETS

* perf: use (min, max) bounds representation internally to avoid Unity's Bounds.Encapsulate conversion overhead

* HistoryCollider component WIP

* ...

* steps

* things

* gizmo

* syntax

* unused

* child collider

* counter rotate

* warning

* detect scale changes

* syntax

* Unity 2019 support
2023-07-31 12:38:42 +08:00
JesusLuvsYooh
593226b02c
Tanks co-op example, take control of vehicles via Mirrors Authority assigning feature. (#3564) 2023-07-30 17:06:14 +08:00
mischa
28859fb84a
fix: NetworkReader ReadBytes/Array<T>/List<T> allocation limit to prevent ClientToServer [SyncVar] allocation attacks [credit: James] (#3562)
* fix: NetworkReader.ReadArray: remove misleading 'length > reader.Remaining' check since not all arrays are byte arrays

* fix: NetworkReader AllocationLimit to prevent ClientToServer [SyncVar] allocation attacks [credit: James]

* ReadBytes: check allocation limit

* ReadList: check allocation limit

* ReadArray: check allocation limit

* ReadTexture2D: check allocation limit

* limit as count

* writer checks

* test wip

* throw

* add test

* test
2023-07-27 10:27:00 +02:00
mischa
120bdcb855 remove unused import 2023-07-27 13:39:09 +08:00
mischa
d4de45c374 comment 2023-07-27 13:32:06 +08:00
mischa
53b0258904 NetworkWriter: clean up old UIntDouble comments 2023-07-27 13:08:23 +08:00
mischa
a91f3a88c3 comments 2023-07-27 12:32:19 +08:00
mischa
7b2427ce76 more comments 2023-07-27 12:27:38 +08:00
mischa
c81ce3ec26 NetworkReader/Writer Read/WriteList: comments 2023-07-27 12:26:59 +08:00
mischa
d2b6cfdc2a NetworkWriter: syntax 2023-07-27 12:03:58 +08:00
mischa
9311ef3523
fix: NetworkConnection "cannot send packet larger than ..." message now includes the message type which was too large. (#3560) 2023-07-24 06:08:55 +02:00
mischa
871a08c266 resaved test prefabs 2023-07-22 21:59:29 +08:00
mischa
6830a6e52c fix: NetworkMessages.MaxContentSize now considers channelId instead of always assuming reliable 2023-07-22 21:59:07 +08:00
mischa
71f64c70f1
feature: bring back NetworkServer.disconnectInactiveConnections (#3556) 2023-07-21 06:11:14 +02:00
mischa
adee4ad140
fix: remove redundant RPC buffering. saved bandwidth, but introduced data races, complexity, extra buffer copies [credit: James, imer] (#3497) 2023-07-20 09:10:00 +02:00
mischa
d7fbee9d50 fix: NetworkIdentity.AssignAssetId() is now saved properly. fixes a bug where duplicated prefabs and prefab variants would still have the original prefab's assetId on disk, even though the Inspector showed the proper one. 2023-07-20 14:29:40 +08:00
mischa
ac6a881f1b fix: NetworkTime RTT now checks for malicious timestamps from the future 2023-07-19 19:24:05 +08:00
mischa
e45bfb47ab Compression: remove unnecessary QuaternionElement function 2023-07-19 13:15:40 +08:00
mischa
7e28e4ea02 Compression: more obvious TenBitsMax representation 2023-07-19 12:59:51 +08:00
mischa
483006eadc
feature: NetworkConnectionToClient.rtt via Ping & Pong Messages (#3545)
* NetworkConnectionToClient: send Ping message every PingFrequency

* breaking: NetworkPing/PongMessage .clientTime renamed to .localTime because it'll be used in both directions

* Server->Client->Server Ping/Pong messages and rtt

* don't ping in host mode

* adjust tests

* TODO
2023-07-18 11:19:12 +02:00
mischa
398d2e6d2c Examples: default send rate increased from 30 Hz to 60 Hz for remaining examples 2023-07-18 16:58:05 +08:00
mischa
8164018483 perf: default send rate increased from 30 Hz to 60 Hz for users to get better initial results 2023-07-18 16:54:49 +08:00
mischa
82c09850da Tanks demo: increase send rate from 30 Hz to 120 Hz to avoid rtt being too high. reduces rtt from ~30 ms to ~8ms. 2023-07-18 16:52:22 +08:00
mischa
f6cf32ee8d Lag Compensation demo: fix warning 2023-07-18 16:10:58 +08:00
mischa
70c34ecf5d NetworkBehaviour.OnValidate: GetComponentInParent(bool) 2020 support (credits FakeByte) 2023-07-18 15:37:04 +08:00
mischa
27e2238d0b typo 2023-07-18 15:14:26 +08:00
mischa
8b6364bb76 NetworkIdentity: correct GetComponentInParent explanations (credit: FakeByte) 2023-07-18 14:49:26 +08:00
mischa
6d4e460f87 NetworkIdentity: expose AssetGuidToUint in builds 2023-07-18 14:44:17 +08:00
mischa
4ec80368f6 fix: NetworkBehaviour.OnValidate can't find parent NetworkIdentity because both the Unity define and GetComponentInParent() are broken in 2023.3 LTS. 2023-07-18 14:33:34 +08:00
mischa
0315fb3345 fix: Tanks demo: replace Turret obsolete NetworkTransform with NetworkTransformUnreliable component 2023-07-18 14:09:09 +08:00
mischa
fcd3a6b91b perf: remove some unnecessary inlining to optimize instruction cache 2023-07-18 13:24:02 +08:00
mischa
0862b9b99f NetworkIdentity: expose AssetId to Guid translation function 2023-07-10 12:53:28 +08:00
Robin Rolf
39211f9002
fix: 2019 tests work again (#3547) 2023-07-09 12:22:59 +08:00
mischa
629e50e4f9 fix: NetworkBehaviour OnValidate #ifdef adjusted for Unity 2020.3.19 support 2023-07-08 14:33:39 +08:00
mischa
f62b9a5a24 improve error message for #3525 for cases where the [SyncVar] is named 'value' 2023-07-06 20:03:01 +08:00
mischa
468192b046 fix NetworkIdentityTests by applying the workaround for #3525 2023-07-06 20:01:31 +08:00
mischa
acf67dddb0 fix: #3525 by explaining the solution in the Error message. 2023-07-06 19:59:16 +08:00
mischa
7c86f6a129 Re-enable the failing tests 2023-07-06 19:47:29 +08:00
mischa
69647f26a1 NetworkClient OnGUI: better rtt display 2023-07-06 17:11:20 +08:00
mischa
59e04f7902 breaking: NetworkTime.PingFrequency renamed to PingInterval. Makes it more obvious that we use it as interval, not as frequency in Hz. 2023-07-06 16:45:11 +08:00
mischa
d64c5fb61b fix PrepareToSpawnSceneObjects tests after recent fix 2023-07-06 16:45:03 +08:00
mischa
a463d48681 NetworkTime: more readable ping interval check 2023-07-06 16:33:08 +08:00
James Frowen
08fa0269de
fix: #3538 calling unspawn on scene objects in DestroyOwnedObjects (#3542)
* fix: calling unspawn on scene objects in DestroyOwnedObjects

fixes: https://github.com/MirrorNetworking/Mirror/issues/3538

* Update NetworkConnectionToClient.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-07-06 09:59:28 +02:00
James Frowen
51c7162af7
fix: PrepareToSpawnSceneObjects checks netId instead of activeSelf [fixes: #3541] (#3543)
* fix: fixing PrepareToSpawnSceneObjects not added enabled objects

fixes: https://github.com/MirrorNetworking/Mirror/issues/3541

Should be safe to remove this extra check complete, it is safe to add spawned object to `spawnableObjects`. For now this just changes it to NetId to ensure that the object really is unspawned and not just enabled

* Update NetworkClient.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-07-06 09:56:23 +02:00
mischa
110625b102
feature: Lag Compensation V1 (#3534)
* Lag Compensation Example based on Snapshot Interpolation example

* rename scene

* increase latency

* update scripts

* instructions

* better

* rename to rollback

* rename scene

* rebase

* rename to LagComp

* collider, onclick

* CmdClick

* flash color

* cleanup

* LagCompensationSettings

* caputre in interval

* comment

* syntax

* catpure, comp

* ns

* stuff

* source

* syntax

* naming

* history and draw history

* adjust

* cleanups

* tests

* sample and tests

* simplify tests

* out interpolation factor t

* tostring

* show result duration

* sample and interpolate

* fix

* logs

* better gizmos

* store size

* EstimateTime

* demo: estimate time

* estimation tests

* perf: Queue instead of List

* comment

* syntax

* cleaner

* cleanup

* syntax

* comment

* DrawGizmo(s)

* syntax

* extrapolation tests

* fix insert and test

* extrapolation

* fix extrapolation out values

* comments

* TODO

* TODO
2023-07-05 12:08:20 +02:00
mischa
4972b8004a Tests: fix failing NetworkManagerTests because DeeplyTested test didn't register the GameObject for cleanup 2023-06-29 19:56:17 +08:00
mischa
13e07f5603 NetworkTime: rttVar renamed to rttVariance for consistency with old Mirror versions. makes it easier to upgrade. 2023-06-27 21:40:45 +08:00
mischa
37bbd7eb3d fix: SnapshotInterpolation.Insert() now has a bufferLimit to avoid ever growing snapshot buffers on extremely low-fps clients 2023-06-27 19:20:03 +08:00
mischa
60936f0646 perf: NetworkTransformBase SortedLists now allocate with a default capacity to avoid early resizing & allocations 2023-06-27 18:57:05 +08:00
mischa
97313bd295
feature: ConnectionQuality Heuristic + Callback + GUI (#3526)
* ConnectionQuality.cs

* NetworkClient.ConnectionQuality with virtual NetworkManager calculation

* NetworkPingDisplay displays ConnectionQuality

* Tanks: adjust NetworkPingDisplay size

* NetworkManager: provide simple version too

* color coding

* extension

* virtual claculate

* on changed hook

* better heuristic

* syntax

* remove comment

* naming

* update in interval

* tweaking

* enable log

* naming

* color

* log message

* comment

* syntax

* explanations
2023-06-26 05:50:03 +02:00
mischa
deaf53a9bb NetworkTime: reintroduce Round Trip Time Variance to prepare for ConnectionQuality 2023-06-25 10:33:23 +08:00
mischa
db83a4cca2 NetworkClient: initialBufferTime for debugging, comparisons, and to prepare for ConnectionQuality 2023-06-25 10:27:14 +08:00
mischa
00f20bca2e Tanks demo: always show time interpolation GUI for easier debugging 2023-06-25 10:20:59 +08:00
mischa
c599fb616e fix: NetworkClient TimeInterpolation: add 'current' bufferTimeMultiplier field to not overwrite the initial SnapshotSettings.bufferTimeMultiplier. Allows us to reset bufferTimeMultiplier in InitTimeInterpolation and prepares for ConnectionQuality. 2023-06-25 10:03:08 +08:00
mischa
16efc7eedf Disable the failing tests for now, so at least the project compiles without Weaver errors 2023-06-24 20:35:26 +08:00
mischa
2b6212b088 fix: Weaver SyncVarAttributeAccessReplacer now detects modifying [SyncVar] in another assembly and logs an error, instead of silently failing at runtime (#3525) 2023-06-24 12:34:59 +08:00
mischa
6465ac5394 Weaver: SyncVarAccessReplacer: pass Logging 2023-06-24 12:34:59 +08:00
mischa
19065acb19 Weaver: SyncVarAccessReplacer: syntax & comments to make it more obvious 2023-06-24 12:34:59 +08:00
mischa
6fb0b33188
fix: Weaver now weaves NetworkBehavious in nested type definitions (#3524)
* test for deeply nested weaving

* fix
2023-06-23 14:11:34 +02:00
mischa
d5664ab202 feature: Weaver adds 'bool Weaved()' to each NetworkBehaviour, which can be checked at runtime #3523 2023-06-23 20:07:28 +08:00
mischa
1d7af1b750 Tests: remove unused 'using' 2023-06-23 10:01:41 +08:00
mischa
d1719c1e7b fix: tests work on Unity 2022.2+ [imer] 2023-06-22 23:48:26 +08:00
mischa
73c9990f03 comments 2023-06-20 19:58:46 +08:00
mischa
4d127ad370 naming 2023-06-20 19:58:46 +08:00
mischa
c687bdd24a Weaver ILPostProcessorAssemblyResolver: use GetFileNameWithoutExtension 2023-06-20 19:58:46 +08:00
mischa
8cb58d73e8 syntax 2023-06-20 19:58:46 +08:00
mischa
74bbd295d5 readonly 2023-06-20 19:58:46 +08:00
mischa
69d4d251e2 comments 2023-06-20 19:58:46 +08:00
mischa
eb33dfd40e perf: Weaver ILPostProcessorAssemblyResolver FindFile searches dllname / exename in one iteration & without Linq 2023-06-20 19:58:46 +08:00
mischa
1cc888f287 Weaver: ILPostProcessorAssemblyResolver FindFile comments 2023-06-20 19:58:46 +08:00
mischa
5b7d9560c0 Weaver: ILPostProcessorAssemblyResolver caches FindFile for a 50x improvement in TypeReference.Resolve(), and a 22x improvement in total Weaver time for large projects 2023-06-20 19:58:46 +08:00
mischa
c960377911 Weaver: ILPostProcessorAssemblyResolver comment 2023-06-20 19:58:46 +08:00
mischa
443d1541d1 perf: Weaver ILPostProcessorAssemblyResolver FindFile caches exeName, dllName for ~0.1ms speedup per call 2023-06-20 19:58:46 +08:00
mischa
97f3d2dff4 Weaver ILPostProcessorAssemblyResolver: FindFile uses string name parameter directly 2023-06-20 19:58:46 +08:00
mischa
c6be031783 perf: Weaver ILPostProcessorAssemblyResolver uses ConcurrentDictionary to avoid multithreading locks 2023-06-20 19:58:46 +08:00
mischa
c5ad884145 RigidbodyPhysics demo: disable 'onlySyncOnChange' until #3519 is fixed 2023-06-20 19:53:40 +08:00
mischa
8be961bfb5 Examples/VR link 2023-06-20 16:17:53 +08:00
mischa
d0edb2d7a4 Unbatcher: Unity 2019 fix 2023-06-16 17:25:50 +08:00
mischa
fc561918a8 remove leftover comment 2023-06-16 17:19:03 +08:00
mischa
13fd7211e0
fix: Batching VarInt size header added to fix custom serializated NetworkMessages with size mismatch corrupting the next message in a batch (#3516)
* repro test

* Batcher, Unbatcher VarInt size prefix

* NetworkServer/Client adjusted

* add check

* fix tests

* Batcher: rename headersize

* NetworkMessages: MaxContentSize adjusted

* max size calculations adjusted

* fix tests

* Batcher.MaxMessageOverhead

* naming
2023-06-16 10:58:54 +02:00
mischa
6ac67b9b5f feature: NetworkRigidbody Benchmark demo 2023-06-16 12:26:59 +08:00
mischa
b49f5b39de fix: NetworkRigidbody/2D now uses .target's Rigidbody and supports child Rigidbodies 2023-06-16 10:42:39 +08:00
mischa
bbf1140fc9 NetworkRigidbody: MovePosition overwrite comments 2023-06-16 10:31:49 +08:00
mischa
84b408e377
feature: NetworkMessageId <> Type lookup and log function for debugging (#3515)
* feature: NetworkMessageId <> Type lookup and log function for debugging

* better to do in NC/NS
2023-06-16 03:48:08 +02:00
mischa
581d16eb75 Unbatcher: simplify GetNextMessage 2023-06-15 19:37:53 +08:00
mischa
54f6abb6ce feature: VarInt size prediction 2023-06-15 16:35:18 +08:00
mischa
cdf5edae0d syntax 2023-06-15 15:45:00 +08:00
mischa
321b68b2bc NetworkMessages: keep GetId<T> for convenience 2023-06-15 15:44:06 +08:00
mischa
4cb2e75d4f syntax 2023-06-15 15:36:19 +08:00
mischa
86064080f9 breaking: NetworkTransform renamed to NetworkTransformUnreliable for consistency 2023-06-15 15:27:33 +08:00
mischa
2c075c94ad wat 2023-06-15 15:10:38 +08:00
mischa
128da59c76 remove duplicate NetworkRigidbody scripts 2023-06-15 15:09:03 +08:00
mischa
627db15d4a NetworkTransform: moved all related scripts into one NetworkTransform folder 2023-06-14 17:57:28 +08:00
mischa
7e0e02f5d8
perf: NetworkRigidbody Reliable/Unreliable via NetworkTransform for smooth interpolation (#3510)
* RB

* fix clientauthority warning

* reset iskinematic and add a player to try local sync

* delete red ball, fix

* spawns multiplayer

* sc

* textmesh

* better

* better

* reset latency sim

* NetworkRigidbody folder

* syntax

* fix rese tflags

* 2D
2023-06-14 11:24:18 +02:00
mischa
8cd13328ca fix: NetworkBehaviourInspector 'had no target' warning 2023-06-14 17:21:45 +08:00
mischa
e5be10ff71 NetworkTransform: show Gizmos as WriteCube instead of solid Cube for easier visual debugging 2023-06-13 12:55:07 +08:00
mischa
f72d35987a Rigidbody Example: gray background so we can see overlays easier 2023-06-13 11:20:30 +08:00
mischa
62503601af Rigidbody Example: show time interpolation GUI 2023-06-13 11:20:30 +08:00
mischa
f89b9cbfae RigidbodyPhysics Example: fix missing component warnings 2023-06-13 11:20:30 +08:00
mischa
dbe8a37bcd
fix: Weaver runtime fuse to ensure weaving succeeded before starting Server/Client (#3509)
* fix: Weaver runtime fuse to ensure weaving succeeded before starting Server/Client (#3506)

* WeaverFuse Core/ and Tests/

* runtime safety checks

* weaver

* cleanups

* remove log

* comments updated

* WeaverTypes variant

* update comment

* comment updated

* more accurate errors

* host check

* better

* better logs

* redundabt

* fix 2019 support
2023-06-12 17:57:58 +02:00
mischa
f5fa952937 Snapshot Interpolation Example: README 2023-06-12 23:43:19 +08:00
mischa
278f44673d CompilationFinishedHook: add explanation 2023-06-11 16:52:34 +09:00
mischa
30437a934f fix NetworkClientTests for Unity 2019 2023-06-11 16:42:31 +08:00
mischa
afd275ad87 NetworkMessages.WrapHandler: improve log message to make it easier to search for 'Disconnect' in logs 2023-06-11 16:10:00 +09:00
mischa
e58e47fc47
fix: NetworkClient unbatcher is now reset in host mode connect as well [credit: BigBoxVR] 2023-06-11 08:27:16 +02:00
mischa
1e199caab0 Unbatcher: readonly fields 2023-06-11 09:06:07 +09:00
mischa
6be1a25338 fix: KcpServer.Stop now clears connections so they aren't carried over to the next session 2023-06-10 21:33:55 +09:00
James Frowen
bd66be3d1c
fix: fixing use of new c# in 2020 (#3507)
* fix: fixing use of new c# in 2020

* fixing doc comment
2023-06-09 14:09:16 -04:00
James Frowen
176a2d3b66
feat: adding option to get Ip behind reverse proxy (#3505)
* feat: adding option to get Ip behind reverse proxy

When running behind a reverse proxy the IP endpoints will be that of the reverse proxy, not the client.
Reverse proxies like Nginx set the ip if the host in a http header, the server can read this header during the handshake and store it so it knows the IP address of the client

* feat: adding method to get request

allows users to get other headers if they need to

* caching remote address

* fix and simplify

* inlining extra var

* string interpolation

* changing request log message to info

* adding GET back in inside ReadToEndForHandshake

* updating log message

* max split 2

* returning ipv4 address

* checking if address is ipv4

* adding using

* fixing maping
2023-06-09 09:50:41 -04:00
mischa
220937cc4a MIRROR_79_OR_NEWER 2023-06-08 10:38:16 +09:00
mischa
aaaa62e9c9 kcp2k V1.36 [2023-06-08]
- fix: #49 KcpPeer.RawInput message size check now considers cookie as well
- kcp.cs cleanups
2023-06-08 10:31:26 +09:00
Robin Rolf
37d762c2c3
fix: Test prefab loading might not cause log (#3502) 2023-06-07 19:04:09 +08:00
Robin Rolf
f11a7b44fe
fix: failing NetworkClientTests (#3500) 2023-06-07 17:21:51 +08:00
JesusLuvsYooh
f0005f0021
Changed default NT BRM to 3 (#3496)
5 (the previous default) covers really bad pings in return for noticeable delay. However, not every game should have this as their default. 1 being almost instant movement for minimal smoothing (could be best for VR and other uses), from testing 3 is a nice balanced result.
2023-06-05 06:18:54 +02:00
JesusLuvsYooh
1b6bb1e28a
NT-UR Example presets (#3494)
Tested on tanks example, parent and child turret.
Scenarios were regular localhost, then latency sim defaults (200ping, 2% loss etc) and bad connection (500 ping, 5% loss etc), along with personal experience of the settings on NT thee 3 presets should cover most peoples scenarios.
2023-06-01 12:37:13 +02:00
mischa
f84a385212
fix: Disallow Child-NetworkIdentities in Scene objects (#3492)
* fix: Disallow Child-NetworkIdentities in Scene objects

* better
2023-05-29 12:05:19 +08:00
mischa
d74e61298e
fix: #3485 Weaver now skips protected fields (Credit: James) (#3493)
* fix: #3485 Weaver now skips protected fields

* simplify
2023-05-27 06:36:05 +02:00
mischa
22134470ed fix Unit tests 2023-05-27 11:47:22 +08:00
mischa
3619be494a feature: allow NetworkBehaviour components in children. solves #2276 (#3486)
* feature: allow child NetworkBehaviour components in children

* Tanks demo: move Turret NetworkTransform to child

* NT TODO

* RequireInParents NI

* NetworkAnimatore allow in children

* call base onvalidate

* Add OnValidate to Script Template

* fix for pre-2020.3 Unity

* MirrorTest: CreateNetworked with NetworkBehaviour in children

* Tests: child networkbehaviours

---------

Co-authored-by: MrGadget1024 <9826063+MrGadget1024@users.noreply.github.com>
2023-05-27 08:25:53 +08:00
mischa
26e83ce645 fix: NetworkBehaviour SendRPCInternal error message fixed. This can happen if an RPC is called after shutting down the server - which doesn't mean that it was called on a client. 2023-05-25 11:16:06 +08:00
JesusLuvsYooh
e0ae55a971
Update NetworkRoomPlayer.cs (#3490) 2023-05-19 19:51:50 +08:00
JesusLuvsYooh
4c6e4e2bd0
NetworkTransform tooltips need use-case explanations. (#3481)
* Removed obsolete comment.

* Tooltip explanations 1
2023-05-19 19:51:27 +08:00
mischa
bf5cd97e69 fix: #3482 Weaver Generic 'out' parameter IL2CPP build failures [credit: JamesDev] 2023-05-14 11:47:05 +08:00
MrGadget1024
22675f40cf NetworkTransform - syntax 2023-05-09 03:01:14 -04:00
MrGadget1024
b7bf117378 NetworkTransform - syntax 2023-05-09 02:59:35 -04:00
ninjakickja
337a0affee
fix #3478 - Changed sendIntervalCounter increment logic (#3480)
Changed sendIntervalCounter logic to fix the issue where if sendIntervalMultiplier = 1, NT will send every frame instead of every send interval.
This is due to sendIntervalCounter being initialised to 1 instead of 0, after NT has triggered it's send.
2023-05-09 06:57:09 +02:00
Louis Bailleau
8a0accc60b
breaking: NetworkDiscovery ServerFoundUnityEvent now supports custom ServerResponse types 2023-05-08 03:59:15 +02:00
MrGadget1024
09496652b7 fix(SimpleWebTransport): fixed ClientUseDefaultPort default 2023-05-04 17:07:55 -04:00
James Frowen
f200b907ac
feat(SimpleWebTransport): adding option to set server and client port different (#3477)
* feat(SimpleWebTransport): adding option to set server and client port different

When running websocket server behind reverse proxy client should connect via port 80 or 443. the reverse proxy should then forward requests to the ServerPort  running on localhost.

* Update Assets/Mirror/Transports/SimpleWeb/SimpleWebTransport.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-05-04 04:59:47 +02:00
mischa
0f41aa7a3e NetworkBehaviour SendCommandInternal: shorter logs 2023-04-29 10:52:07 +09:00
mischa
4193b5401e fix: #3409 - NetworkTime now always uses unscaled time as double. Forgot to push the commit for the previous commit's PR 2023-04-24 20:09:53 +08:00
mischa
754a98fd71
fix: #3409 NetworkTime now always uses (#3475) 2023-04-22 05:12:31 +02:00
mischa
58e7915952 Tests: NetworkBehaviourMock component with call counters for reuse. Tests don't need to manually define call counters anymore. 2023-04-21 14:34:22 +08:00
mischa
b43d920572 Tests: NetworkIdentity tests split into multiple files 2023-04-21 14:14:30 +08:00
mischa
005d8384f4 Tests: NetworkClient namespace changed 2023-04-21 14:03:07 +08:00
mischa
20cf67342d Tests: NetworkTransform namespace for grouping in test runner 2023-04-21 14:01:33 +08:00
mischa
b33d3bb924 Tests: NetworkReaderWriter namespace for grouping in test runner 2023-04-21 14:00:57 +08:00
mischa
ce0b8eabd9 Tests: NetworkMessages namespace for grouping in test runner 2023-04-21 13:58:51 +08:00
mischa
38dd2ae960 Tests: NetworkManager namespace for grouping in test runner 2023-04-21 13:55:30 +08:00
mischa
1012ca0dd6 Tests: NetworkServer namespace for grouping in test runner 2023-04-21 13:54:43 +08:00
mischa
814c5c404c Tests: NetworkIdentities namespace for grouping in test runner 2023-04-21 13:37:18 +08:00
mischa
8b0020f10c Tests: NetworkConnections namespace for grouping in test runner 2023-04-21 13:34:47 +08:00
mischa
14146e61a2 Tests: NetworkClient namespace for grouping in test runner 2023-04-21 13:33:44 +08:00
mischa
0d49bba308 Tests: NetworkBehaviours namespace for grouping in test runner 2023-04-21 13:31:20 +08:00
mischa
eea2099a2d Tests: InterestManagement namespace for grouping in test runner 2023-04-21 13:29:41 +08:00
mischa
9da3e3fa23 Tests: remove unused usings 2023-04-21 13:28:29 +08:00
mischa
8151a4d8f8 Tests: fix namespace for Rpcs 2023-04-21 13:27:51 +08:00
mischa
e47296194f Tests: RemoteAttributeTest namespace renamed to Rpcs 2023-04-21 12:20:25 +08:00
mischa
17811668ab Tests: add missing dependency after recent rename 2023-04-21 12:19:12 +08:00
mischa
d9ba49fa4b Tests: SyncCollections namespace for grouping in test runner 2023-04-21 12:18:43 +08:00
mischa
0c34dc0c7f Tests: SyncVars namespace for grouping in test runner 2023-04-21 12:17:50 +08:00
mischa
6e372b51fb Tests: Transports namespace for grouping in test runner 2023-04-21 12:16:51 +08:00
mischa
5b08993e62 Tests: Tools namespace for grouping in test runner 2023-04-21 12:16:23 +08:00
mischa
b9e4484215 Tests: NetworkLoop subfolder 2023-04-21 12:05:49 +08:00
mischa
387cd2e0e6 Tests: NetworkTransform subfolder 2023-04-21 12:05:26 +08:00
mischa
5d211ea830 Tests: SnapshotInterpolation subfolder 2023-04-21 12:05:10 +08:00
mischa
d2e60283b3 Tests: StructMessagesTests moved to NetworkMessages subfolder 2023-04-21 12:04:40 +08:00
mischa
d694163a14 Tests: FieldsInBaseClasses moved to NetworkReaderWriter folder 2023-04-21 12:04:04 +08:00
mischa
8696a4f9cd Tests: OverloadMethodTest moved to NetworkMessages subfolder 2023-04-21 12:03:09 +08:00
mischa
24069ab8a2 Tests: add comment 2023-04-21 11:27:26 +08:00
mischa
5b0c9b8425 syntax 2023-04-21 11:26:15 +08:00
mischa
b50a762e1a Tests: CustomRWTest renamed 2023-04-21 11:25:11 +08:00
mischa
1b906a97fa Tests: CustomRWTest renamed 2023-04-21 11:24:28 +08:00
mischa
e60df7c0dc Tests: add comment 2023-04-21 11:21:28 +08:00
mischa
dedcab4402 Tests: CollectionWriterTests moved to NetworkReaderWriter folder 2023-04-21 11:10:24 +08:00
mischa
c3193ab42b syntax 2023-04-21 11:08:04 +08:00
mischa
1601960b53 Tests: AttributeTests subfolder; split up in multiple files; add comments 2023-04-21 11:06:37 +08:00
mischa
d50594db4e Tests: moved file 2023-04-20 22:11:59 +08:00
mischa
ea9f258ceb Tests: moved file 2023-04-20 22:10:32 +08:00
mischa
c6dd55bd69 Tests: NetworkMessages subfolder 2023-04-20 22:10:10 +08:00
mischa
8b3c298a4a Tests: NetworkManager subfolder 2023-04-20 22:09:39 +08:00
mischa
fefdc63341 Tests: NetworkConnection subfolder 2023-04-20 22:08:51 +08:00
mischa
626978c954 Tests: NetworkServer moved to subfolder 2023-04-20 22:08:22 +08:00
mischa
5519c76dab Tests: NetworkIdentity subfolder 2023-04-20 22:06:55 +08:00
mischa
afd0f42673 Tests: NetworkClient subfolder 2023-04-20 22:06:25 +08:00
mischa
3580ae7416 Tests: NetworkBehaviour subfolder 2023-04-20 22:05:45 +08:00
mischa
a7105220c6 Tests: ReaderWriter folder renamed 2023-04-20 22:05:08 +08:00
mischa
c6aa694f34 Tests: CompressionTests moved to subfolder 2023-04-20 22:01:49 +08:00
mischa
a97e71ee3f Tests: ReaderWriter subfolder 2023-04-20 21:57:00 +08:00
mischa
a9210b4fb2 Tests: merged RemoteTestBase into FieldsInBaseClasses (only place where it was used) 2023-04-20 21:54:49 +08:00
mischa
937177941b Tests cleanup: Transports subfolder 2023-04-20 21:53:24 +08:00
mischa
06c096242c Tests cleanup: Grid2D tests moved to Interest Management subfolder 2023-04-20 21:51:35 +08:00
mischa
15b1a7610c Tests cleanup: Interest Management tests moved to subfolder 2023-04-20 21:51:07 +08:00
mischa
1b68f4fef7 Tests cleanup: SyncVar tests moved into SyncVars/ folder 2023-04-20 21:49:26 +08:00
mischa
93ca265083 Tests cleanup: Tools tests moved into Tools/ folder 2023-04-20 21:47:38 +08:00
mischa
8fade6e27e Tests cleanup: SyncList/Set/etc. tests moved into SyncCollections/ 2023-04-20 21:45:25 +08:00
mischa
9ffe306ae1 Tests cleanup: Rpc tests moved into Rpcs/ folder 2023-04-20 21:43:12 +08:00
mischa
4e5d0b41b1 Tests: renamed ClientSceneTests to NetworkClientTests. ClientScene was merged with NetworkClient a long time ago. 2023-04-20 21:39:43 +08:00
JesusLuvsYooh
bafc1277c7
Updated ApplySnapshot ScriptTemplates (#3472) 2023-04-15 18:13:36 +02:00
mischa
619d1cc627 Benchmark example: random movement jumps to exact destination when finishing.
for completeness.
2023-04-14 14:59:20 +08:00
MrGadget1024
1fda794f95 fix(Examples): Updated to latest NT changes. 2023-04-11 01:37:14 -04:00
MrGadget1024
83a0593c98 fix(Examples): Updated to latest NT changes. 2023-04-11 01:14:23 -04:00
MrGadget
f23d044519
Moved sendIntervalMultiplier, timelineOffset, timeStampAdjustment, offset to NTBase (#3442)
* Moved sendIntervalMultiplier, timelineOffset, timeStampAdjustment, offset to NetworkTransformBase

* Update Assets/Mirror/Components/NetworkTransformBase.cs

* fix: NetworkTransformUnreliable: timeStampAdjustment, timelineOffset to fix 2s jitter after tab switching in webgl caused by NT snaps potentially arriving behind timeline snaps (#3441)

* NT-U: Implemented sendIntervalMultiplier, timeStampAdjustment, timelineOffset

* Update Assets/Mirror/Components/NetworkTransformUnreliable/NetworkTransform.cs

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>

* Resolved conflict

* Resolved conflict

* NT: send interval multiplier moved to Base

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-04-11 06:23:02 +02:00
mischa
4eeb703488
fix: #3455 TargetRpc(NetworkConnectionToClient) weaver generated InvokeTargetRpc now passes 'null' as connection parameter on clients. (#3465)
Logically, clients can never fill in a NetworkConnectionToClient parameter.
fixes compilation failing for TargetRpc(NetworkConnectionToClient) with IL2CPP builds.
2023-04-11 05:45:43 +02:00
vis2k
e3bd35a091 Tests: FakeNetworkConnection renamed to FakeNetworkConnectionToClient to make usage more obvious 2023-04-11 11:03:23 +08:00
Eunseop Shim
3420c88692
fix: #3457 Make NumSyncVars take parent class syncvars into account (#3458)
* Add tests

* Include parent class when counting syncvars

* SyncObject is unneeded

I was also testing SyncObjects and it turned out they were unaffected of this issue. I removed SyncObject from my tests but forgot to do so here.

* Remove host SyncVar hook guard test

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

* Update SyncVarAttributeProcessor.cs

* Update Assets/Mirror/Tests/Editor/SyncVarAttributeTest.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-04-11 04:32:31 +02:00
Meno000
e9597b70ac
KcpTransport: reconvert mapped ipv4->ipv6 addresses to ipv4 in ServerGetClientAddress (#3460)
* Update KcpTransport.cs

"::ffff:127.0.0.1" -> "127.0.0.1"

* Update Assets/Mirror/Transports/KCP/KcpTransport.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-04-11 04:18:00 +02:00
MrGadget
fb8ae6c228
feat(NetworkTransform): Added Send Interval Multiplier (#3459) 2023-04-11 04:15:27 +02:00
MrGadget1024
8b1796f0a3 NetworkManagerTemplate: comments 2023-04-10 16:26:33 -04:00
MrGadget1024
a30c85d389 fix(NetworkManagerTemplate): Updated OnServerError / OnClientError comments 2023-04-10 16:18:06 -04:00
MrGadget
bae0c37679
fix(NetworkManager): Try to avoid missing transport errors (#3456)
* fix(NetworkManager): Try to avoid missing transport errors
- If none assigned, tries to use first Transport available and warns user
- If none available, throws clear error to user what to do.

* improved error msg
2023-04-10 05:27:47 +02:00
vis2k
2cf3582922 comment formatting 2023-04-08 18:33:23 +08:00
vis2k
20b7e5326e Weaver: update comments 2023-04-08 13:35:36 +08:00
Eunseop Shim
88170ed141
fix: #3447 make cached SyncVar fallback to original field value when there is no network context (#3449)
* Add Tests

* Fix tests relying on undefined behaviors

- GetSyncVarGameObjectOnClient()
The test relies on the behavior that GameObject SyncVar lookup will behave as client if both isServer and isClient is false.
The test is modified in a way that removes unnecessary object creation and uses a single object that is made sure it's context is client-side.

- TestSyncingAbstractNetworkBehaviour()
This test has been comparing null against null. The test is modified so it simulates each context better.

* Make cached SyncVar getters fallback on no network context

* Remove unnecessary assertions

Gone under my radar doing mindless copy & pasting

* Update Assets/Mirror/Core/NetworkBehaviour.cs

* Update Assets/Mirror/Core/NetworkBehaviour.cs

* Update Assets/Mirror/Core/NetworkBehaviour.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-04-08 06:00:09 +02:00
vis2k
c3b7fe66a1 kcp: forgot to remove a log message when sending unreliable messages 2023-04-07 10:40:49 +08:00
vis2k
b2bceecb2d MIRROR_78_OR_NEWER 2023-04-06 11:58:28 +08:00
vis2k
d226d577c2 Telepathy implements PortTransport interface 2023-04-06 04:51:14 +02:00
vis2k
d62b80ec2d SimpleWeb implements PortTransport interface 2023-04-06 04:51:14 +02:00
vis2k
9b102c0aa1 Kcp implements PortTransport interface 2023-04-06 04:51:14 +02:00
vis2k
0ff04c1cf0 feature: PortTransport interface 2023-04-06 04:51:14 +02:00
mischa
ee957f3fcd
fix: kcp2k V1.35. secure cookie to prevent UDP spoofing. fixes: #3286 (#3445)
* fix: kcp2k V1.35 [2023-04-05]
- fix: KcpClients now need to validate with a secure cookie in order to protect against
  UDP spoofing. fixes:
  https://github.com/MirrorNetworking/Mirror/issues/3286
  [disclosed by IncludeSec]
- KcpClient/Server: change callbacks to protected so inheriting classes can use them too
- KcpClient/Server: change config visibility to protected

* credits

* credits

* link blog post

* 2019 compatibility

* Update Assets/Mirror/Transports/KCP/kcp2k/highlevel/KcpPeer.cs

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

* Update Assets/Mirror/Transports/KCP/kcp2k/highlevel/KcpPeer.cs

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

---------

Co-authored-by: MrGadget <9826063+MrGadget1024@users.noreply.github.com>
2023-04-06 04:46:26 +02:00
vis2k
7889f3afaf remove unused imports 2023-04-05 10:45:24 +08:00
MrGadget1024
35ec40ea60 fix(BasicExample): Revert unintended changes 2023-04-04 08:10:26 -04:00