Commit Graph

880 Commits

Author SHA1 Message Date
vis2k
46eddc01ec fix: (again) Telepathy updated to latest version (Send SocketExceptions now disconnect the player too) 2019-05-15 10:23:52 +02:00
vis2k
98d3fb0c31 fix: Telepathy updated to latest version (Send SocketExceptions now disconnect the player too) 2019-05-14 13:40:23 +02:00
Tom KRIKORIAN
691583e844 fix(NetworkManager) : properly load scene on clients using new load parameters (#867)
* fix : properly load scene on clients using new load parameters

* revert change to ClientChangeScene to avoid conflict

* Simplified code for NetworkManager method ClientChangeScene
2019-05-07 17:49:28 +02:00
Coburn
6fd3fb4ca3 This fixes NetworkManager not switching to the correct server scene when onlineScene is not the same as offlineScene. 99.99% sure it'll fix issue #865 (#866) 2019-05-07 17:33:01 +02:00
Gabe Brown
6af979c967 Logging Improvements (#864) 2019-05-07 09:34:32 +02:00
MrGadget
e9f2f538ca Add channelId to Send Method (#862)
This is to achieve parity with NetworkConnection:

```cs
public virtual bool Send<T>(T msg, int channelId = Channels.DefaultReliable) where T: IMessageBase
{
    // pack message and send
    byte[] message = MessagePacker.Pack(msg);
    return SendBytes(message, channelId);
}
```
2019-05-06 18:46:24 +02:00
Paul Pacheco
d4595df2ca clear resharper error (#861) 2019-05-05 15:45:46 +02:00
vis2k
23e440bd0b fix #857: Revert "fix(websocket): Use a buffer for most WS messages in WebGL client resulting in 0 alloc for most messages (#848)"
This reverts commit 8967a20244.
2019-05-05 09:24:46 +02:00
Zac North
1dc45f5376 Fix missing semicolon in NetworkBehaviour.cs (#856) 2019-05-05 00:36:46 +02:00
uwee
d48a3757da feat(scene): Add support for scene loading params (#644)
* add scene and physics mode to SceneMessage

* Change variable names. Added comments. Changed type from struct to byte

* updated test to match

* added overrides to support scene params

* simplified param useage

* fixed types with proper casting

* forgot to add in Server side of code

* Update Assets/Mirror/Runtime/NetworkManager.cs

Co-Authored-By: uweenukr <uweenukr@gmail.com>

* Update Assets/Mirror/Runtime/NetworkManager.cs

Co-Authored-By: uweenukr <uweenukr@gmail.com>

* serialize as byte
2019-05-04 17:45:26 +02:00
Zac North
8967a20244 fix(websocket): Use a buffer for most WS messages in WebGL client resulting in 0 alloc for most messages (#848)
* fix(websocket): Use a buffer for most WS messages resulting in 0 alloc for most messages

* Use a configurable maximum message size

* Use the maximum message size on the server too

* Use <= instead of < for buffer.Length

* Show lengths in Exception message

Co-Authored-By: Katori <znorth@gmail.com>

* Show lengths in close message

Co-Authored-By: Katori <znorth@gmail.com>

* Allow messages of messagesize

Co-Authored-By: Katori <znorth@gmail.com>

* Allow messages of maxMessageSize

Co-Authored-By: Katori <znorth@gmail.com>

* Show message lengths in close message

Co-Authored-By: Katori <znorth@gmail.com>

* Don't initialize buffer if already done

Co-Authored-By: Katori <znorth@gmail.com>

* Always allocate buffer size on client construction

* Use a non-static buffer to avoid allocation issues
2019-05-04 12:08:23 +02:00
MichalPetryka
e22f527eef Fix ?? (#854)
* Fix ??

?? doesn't work on unitys objects

* Update NetworkBehaviour.cs
2019-05-04 11:30:45 +02:00
MrGadget
f618e17366 Avoid memory leak from cloned materials (#853) 2019-05-01 19:47:53 +02:00
MrGadget
a18ab9db8f
Update README.md
Revised information in case MainScene was inadvertently changed without proper setup.
2019-05-01 09:50:30 -04:00
vis2k
227cc62475 Telepathy updated to latest version (removed send header & payload allocations) 2019-04-29 14:18:31 +02:00
vis2k
30ee71a6f8 Telepathy updated to latest version (removed header allocations) 2019-04-29 12:58:47 +02:00
vis2k
77bee450b9 perf: Transports now give ArraySegment<byte> instead of byte[] (based on #569 and #846)
perf: Transports now give ArraySegment<byte> instead of byte[] (based on #569 and #846)
2019-04-28 21:08:19 +02:00
vis2k
6c4b34ba06 fix: ListServer Ping not found in WebGL 2019-04-28 20:49:20 +02:00
vis2k
e8a8e77016 Telepathy updated to latest version (Message converted to struct to minimize GC) 2019-04-28 13:36:28 +02:00
vis2k
1f07af0cae fix: Revert "refactor: consolidate prefab and spawn handlers (#817)" to fix a bug where if editor=host, build=client, we receive scene object not found when walking out of and back into an observer's range
This reverts commit b4c9c6fdc8.
2019-04-24 17:04:28 +02:00
vis2k
5480548ffa add comment 2019-04-24 13:11:36 +02:00
vis2k
f56507f2fc fix: Revert "NetworkIdentity.observers dictionary is always created, but always empty on clients. Gets rid of all null checks." to fix server-only bug not allowing movement on client, e.g. in uMMORPG
This reverts commit e8d9d852e3.
2019-04-24 13:08:10 +02:00
Zac North
0484a50e6d Use queue for Ping and Pong messages as well (#841) 2019-04-24 09:28:34 +02:00
Zac North
5aa7148c60 Use message queue instead of SemaphoreSlim - SemaphoreSlim was severely bottlenecking performance (#839) 2019-04-23 10:23:47 +02:00
Coburn
2695da4e2a LLAPI Transport not available on WSA/UWP (v2) (#838)
* LLAPITransport will not be available for WSA/UWP applications with this patch. (LLAPI never was to begin with).

* v2 of the not allowing LLAPI Transport to be available on UWP/WSA games
2019-04-22 11:15:17 +02:00
Coburn
7058de2364 LLAPITransport will not be available for WSA/UWP applications with this patch. (LLAPI never was to begin with). (#837) 2019-04-22 09:34:36 +02:00
vis2k
92a9903b0d Disable sceneid assignment message 2019-04-22 09:23:36 +02:00
Zac North
2d682b5fad fix(websocket): #829 fix InvalidOperationException with wss:// (#830)
* fix(wss): Use a queue on the server to avoid "InvalidOperationException: Invalid nested call."

* Remove unnecessary "private"

Co-Authored-By: Katori <znorth@gmail.com>

* Remove unnecessary "private"

Co-Authored-By: Katori <znorth@gmail.com>

* Update Server.cs

* comment: explain what is going on here

* comments:  better comment

* Move queue into WebSocketImplementation instead of Server-specific

* Remove unused variables in Server

* Use a SemaphoreSlim instead of queue system
2019-04-21 10:33:07 +02:00
vis2k
52625923b2
fix: Mono.CecilX namespace to work around Unity 2019 Cecil namespace collision (#832)
* fix: Mono.CecilX namespace to work around Unity 2019 Cecil namespace collision

* rename dlls

* change asmdef guid for conflict with hlapi

* rename assemblynames too

* fix: invalid scene id in 2019.1 by ignoring prefabs in NetworkScenePostProcess

* rename projects too
2019-04-20 21:01:10 +02:00
vis2k
203a823b19 fix: invalid scene id in 2019.1 by ignoring prefabs in NetworkScenePostProcess 2019-04-20 20:39:44 +02:00
vis2k
b20c0d91f7 syntax 2019-04-19 09:28:39 +02:00
MrGadget
bcd3424c0e refactor: Simplify GetStartPosition (#828)
* Simplify GetStartPosition

- Early out if startPositions.Count = 0
- Reduces the normal returns to single LOC each
- Only resets startPositionIndex if it reaches int.MaxValue
- Uses modulo and increment-after against count to pick round robin index
- Eliminates unnecessary last return that could never be reached

* Per Paul's request
2019-04-18 15:20:08 -05:00
MrGadget
8ebda0fa21 fix: Respect Player Prefab Position & Rotation (#825)
Respect Player Prefab Position & Rotation
2019-04-18 07:13:38 -05:00
vis2k
e8d9d852e3 NetworkIdentity.observers dictionary is always created, but always empty on clients. Gets rid of all null checks. 2019-04-17 23:04:52 +02:00
vis2k
aa4a91bcce remove whitespace 2019-04-17 22:42:56 +02:00
Paul Pacheco
b4c9c6fdc8 refactor: consolidate prefab and spawn handlers (#817) 2019-04-17 16:00:03 +02:00
vis2k
b5ff43ada3 feat: SyncList.FindIndex added (#823) 2019-04-17 06:18:23 -05:00
MichalPetryka
2327498b31 Remove vars (#819) 2019-04-16 12:38:48 +02:00
MichalPetryka
6eaea267d5 Remove useless out (#820) 2019-04-16 12:38:22 +02:00
MichalPetryka
3b5fa051c1 Inline out (#818) 2019-04-16 12:38:01 +02:00
vis2k
3452915a4e NetworkConnection.TransportReceive: don't try to invoke if unpacking failed. 2019-04-15 15:08:55 +02:00
Paul Pacheco
1352334747 fix: non ready connections should not observe objects 2019-04-15 07:32:41 -05:00
Paul Pacheco
e69c0976a2 refactor: Simplify nested if 2019-04-15 06:30:41 -05:00
Paul Pacheco
97f8bf6b26 refactor: use null propagation operator 2019-04-14 11:04:23 -05:00
Paul Pacheco
af0f79be14 refactor: removed unreachable if 2019-04-14 10:17:29 -05:00
Paul Pacheco
7417b68671 fix: check event prefix 2019-04-14 10:06:36 -05:00
Paul Pacheco
2598389036 refactor: use null propagation operator 2019-04-14 07:58:53 -05:00
MichalPetryka
fea09a6b74 Improve SceneID generation via RNGCryptoServiceProvider (#812)
* Improve SceneID generation

* Update NetworkIdentity.cs
2019-04-14 14:17:25 +02:00
vis2k
b9247a78b6 out syntax 2019-04-14 12:43:05 +02:00
vis2k
f3f0ef299e clear sceneid if it was a duplicate 2019-04-14 12:40:16 +02:00
vis2k
3ebd4981a4 only use generated sceneId if not duplicate 2019-04-14 12:39:48 +02:00
MrGadget
705194023c Remove all "private" (#807) 2019-04-14 09:43:03 +02:00
MrGadget
08cc3236a1 Fix Additive Example Scene Lighting (#808) 2019-04-13 21:41:46 +02:00
c6burns
3a50ca6352 fix: added new read/write symbol params (#806)
fix: added new read/write symbol params
2019-04-12 16:00:46 -05:00
vis2k
27b7e250a0 perf: OnDeserializeSafely without GC (#804) 2019-04-12 08:38:23 -05:00
vis2k
19a9995501 remove whitespace 2019-04-12 15:31:05 +02:00
vis2k
a82367b2c6 remove caching to keep it simple for now 2019-04-12 11:57:47 +02:00
vis2k
80d72c804d remove empty whitespace 2019-04-12 11:55:22 +02:00
vis2k
7e79dfad38 disable 'Weaving succeeded' message now that everything works 2019-04-12 11:55:09 +02:00
c6burns
3ba546e133 fix: #791 corrected assembly paths passed to weaver (#803)
* fixed incorrect assembly paths

* Update CompilationFinishedHook.cs
2019-04-12 11:52:35 +02:00
vis2k
2eb247a6d2 Cecil StackOverflow fix without breaking API (https://github.com/vis2k/cecil/commits/TypeReference_Resolve_StackOverFlow_Fix) 2019-04-12 11:23:44 +02:00
vis2k
0f1522229e remove empty whitespace 2019-04-11 22:09:25 +02:00
vis2k
eb4b2f40c5 Weaver.ImportCorLibType: avoid MixIn exception when calling ImportReference with a null type. Log the type that we failed to resolve instead. 2019-04-11 22:09:14 +02:00
vis2k
286983a8f8 Fix StackOverflowException for NetStandard in Mono.Cecil by using https://github.com/vis2k/cecil/tree/TypeReference_Resolve_StackOverFlow_Fix 2019-04-11 21:57:14 +02:00
vis2k
9f67b4761f Rebuild Cecil 0.10.3 DLLs from scratch via net4_0_Release mode 2019-04-11 20:10:43 +02:00
c6burns
9d4b96975e minimum changeset for cecil 0.10.3 (#795)
* added fixes for cecil 0.10.3

* added missing meta

* fix typo'd asmresolver

* accept paul's suggestion, on behalf of c6

Co-Authored-By: rodolphito <rodol@rivalrebels.com>
2019-04-11 19:59:37 +02:00
vis2k
ec5ceb1149 update CompilationFinishedHook comment about cecil bug 2019-04-11 18:52:41 +02:00
Chris Langsenkamp
d46334d2eb Add meta files for dummies 2019-04-11 11:22:40 -05:00
MrGadget
534a5a5834 Dummy NetworkAnimatorEditor 2019-04-11 07:22:01 -05:00
MrGadget
1dfd2dad6e Dummy SyncListInitializer.cs 2019-04-11 07:21:44 -05:00
MrGadget
75e4f159e5 fix: Dummy file for SyncListStructProcessor.cs (#798)
Dummy file for SyncListStructProcessor.cs to avoid breaking compilation
2019-04-11 06:55:35 -05:00
MrGadget
b7e94d9e5a
Fixed typo 2019-04-11 07:44:41 -04:00
vis2k
bdbbed8b9d
Remove OwnerMessage to fix a bug where isLocalPlayer isn't reliable when checking it in Start() because OwnerMessage was received after SpawnFinished message (#793) 2019-04-11 00:01:31 +02:00
Paul Pacheco
97e9ac2483 perf: Reduce enum bandwidth (#794)
enums are serialized according to their size.
if enum extend byte,  they use 1 byte
if enum extend short, they use 2 bytes
if enum extend int,  they are varinted
if enum extend long, they are varinted

So on average,  most enums will take 1 byte.   Previously they always required 4 bytes
2019-04-11 00:01:09 +02:00
Paul Pacheco
f00c8e5e62 refactor: simplify enum logic a bit 2019-04-10 16:21:21 -05:00
Paul Pacheco
7b57830e6c fix: #791 stack overflow in the weaver (#792)
remove unnecessary manual dispose calls in weaver
2019-04-10 16:58:49 +02:00
vis2k
5c850aa9ca fix: workaround for #791 2019-04-10 16:03:37 +02:00
MrGadget
531e202bbe fix: Round Robin Spawning by Hierarchy Order (#790)
Fixes #724
2019-04-10 12:34:14 +02:00
rodolphito
f46f32df55 Hide this obsoleted thing (#786) 2019-04-09 23:38:16 +02:00
MrGadget
69cb0389b0 Fixed ListServer example (#785)
Added EditorBrowsable(EditorBrowsableState.Never)
2019-04-09 22:02:15 +02:00
MrGadget
fd292e21bc Obsoleted IsHeadless
IsHeadless() was just added in Feb. 2019, so I wouldn't expect wide usage so quickly, but since there have been 3 asset store publishes since then, it should be obsoleted for a bit.

Also made it `isHeadless` camelCase now that it's a property, which made obsoleting it possible.
2019-04-09 10:41:59 -05:00
MrGadget
e33581fa90 Simplify IsHeadless (#782) 2019-04-09 14:56:21 +02:00
Paul Pacheco
4644bc4b77 fix: Don't set framerate in host mode 2019-04-09 05:50:02 -05:00
vis2k
a2cc14bd20 fix: update NetworkIdentityEditor FindProperty to renamed variables 2019-04-09 11:40:59 +02:00
rodolphito
9d064c8013 These methods arent used, they should be commented along with the other error generator parts. (#764)
* These methods arent used, they should be commented along with the other error generator parts.

* Delete the comment
2019-04-09 10:01:57 +02:00
rodolphito
959be9338a These should have been obsoleted with Paul's Message<T> PR (#754)
* These should have been obsoleted with Paul's Message<T> PR

* Do what vis says
2019-04-09 10:01:05 +02:00
rodolphito
cc3b4aaa6d Simplify NetworkIdentity (#752)
* Simplify NetworkIdentity

* style: variable in separate line

Most of the code keeps the variables and attributes in separate lines.
2019-04-09 10:00:39 +02:00
rodolphito
7762158585 This should be readonly (#778) 2019-04-09 09:59:57 +02:00
rodolphito
07e355a3a3 Renamed networkBehaviours to networkBehavioursCache to reduce confusion (#780) 2019-04-09 09:56:28 +02:00
rodolphito
68433660ca Make Weaver variable naming consistent (#781)
* Rename netViewTmp

* Rename UBehaviourIsServer

* Better name for IsServer
2019-04-09 09:55:56 +02:00
Rodol Phito
98d6e667b0 Added string binary compat test 2019-04-08 17:04:12 -05:00
Rodol Phito
dc0e07a851 Added string truncation test. 2019-04-08 17:04:12 -05:00
rodolphito
ca96e2a03f Fix issue 763 by only catching while message decoding, and not during handling. (#767) 2019-04-08 15:53:45 +02:00
Paul Pacheco
fff765c96b perf: use bitshift operations instead of division in varint 2019-04-08 06:18:56 -05:00
rodolphito
f0a8b5dea8 feat(telepathy): Split MaxMessageSize to allow setting a different value for client and server (#749)
* Split MaxMessageSize to allow setting a different value for client and server

* Rename fields to follow naming conventions, use using System;.
2019-04-08 09:53:46 +02:00
rodolphito
e8cae28258 This method isnt actually used anywhere. (#674) 2019-04-08 09:52:29 +02:00
vis2k
09a965e5bc
NetworkServer.SpawnObserversForConnection: remove redundant code with local client check. Local client ignores the spawn messages anyway. (#735) 2019-04-08 09:50:59 +02:00
rodolphito
7775801625 Follow naming conventions in NetworkBehaviour m_NetIdentity (#760)
* Follow naming conventions in NetworkBehaviour m_NetIdentity

* Use underscore prefix as per vis' suggestion

* renamed to netIdentityCache
2019-04-08 09:42:47 +02:00
rodolphito
1d3b3fcca9 Remove old comment (#771) 2019-04-08 09:18:14 +02:00
rodolphito
59a041810f Add float binary compatibility tests to NetworkWriter, add tolerance threshold to Ray normal test. (#772) 2019-04-08 09:15:29 +02:00