Commit Graph

1214 Commits

Author SHA1 Message Date
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
Rodol Phito
4f21275a51 Added one more test to ensure theres no initial garbage when setting length 2019-04-07 20:44:58 -05:00
Rodol Phito
09089f166d Added another clearer SetLength test, just in case. 2019-04-07 20:44:58 -05:00
Rodol Phito
63a14afdec Test that SetLength and Position work as expected 2019-04-07 20:44:58 -05:00
rodolphito
72e4e55778 fix: Added WriteBytesAndSize tests, and fixed the function to be pedantic. (#773) 2019-04-07 20:11:41 -05:00
rodolphito
99c8f5c356 fix(serialization): Added NetworkWriter tests, found and fixed a bug in Write(Ray). (#769) 2019-04-07 16:10:17 -05:00
Paul Pacheco
03c767db6a fix: Mark weaver as failed if serializing invalid type 2019-04-07 15:45:09 -05:00
rodolphito
f310c61405 tests: Add Endianness testing to NetworkWriter. (#768) 2019-04-07 15:17:35 -05:00
rodolphito
269c05bbf6 Updated debug messages in NetworkClient (#761) 2019-04-07 21:50:07 +02:00
MrGadget
3846e2f904 Fixed Lobby (#765) 2019-04-07 21:48:17 +02:00
vis2k
95d74bae60 remove outdated comment 2019-04-07 19:03:49 +02:00
rodolphito
b7ae7f006c Simplify network connection clientOwnedObjects (#758)
* Simplify network connection clientOwnedObjects

* Whoops, missed this null check in NetworkServer. Thanks vis
2019-04-07 18:57:38 +02:00
Paul Pacheco
146988a6bb style: remove blank lines 2019-04-07 11:49:25 -05:00
Paul Pacheco
6525dba77f Remove resolved TODO 2019-04-07 11:47:52 -05:00
Paul Pacheco
077be58584 refactor: move SetupWriteFuctions to Writers 2019-04-07 11:44:43 -05:00
rodolphito
765c87e80c Promote the Warning to an Error, because thats how it was before. Move it above the disconnect, in case Disconnect throws. (#756) 2019-04-07 18:41:01 +02:00
rodolphito
ecccb88be5 Follow naming conventions in NetworkBehaviour (#759) 2019-04-07 18:39:54 +02:00
rodolphito
f07ad218e0 This should have been readonly from day 1 too (#757) 2019-04-07 18:37:41 +02:00
Paul Pacheco
e01b5e4c7d refactor: Move SetupReaders in Readers class 2019-04-07 11:35:38 -05:00
Paul Pacheco
53b3f435a3 refactor: Move readerFunc to readers class 2019-04-07 11:24:13 -05:00
Paul Pacheco
bf6278a28b refactor: Move writerFuncs inside Writers.cs 2019-04-07 11:18:32 -05:00
Paul Pacheco
b3ee67ee28 refactor: remove unnecesary function 2019-04-07 11:10:28 -05:00
Paul Pacheco
b3b2673e09 refactor: remove unnecesary caches 2019-04-07 11:05:57 -05:00
MrGadget
48b155f785
Update LocalClient.cs
Corrected version
2019-04-07 04:44:10 -04:00
rodolphito
d3e3cb6a54 This should have been readonly from day 1 (#751) 2019-04-07 01:20:55 +02:00
rodolphito
f99466fa88 Remove a bunch of internals, it can be private. (#748) 2019-04-07 00:28:07 +02:00
c6burns
53be9b6d99 fix(weaver): fix #706 find system dlls (#729)
* added asmresolver back in

* disambiguate Assembly symbol

* add cache for pipeline asms

* add back precomp refs from pipeline
2019-04-06 22:02:14 +02:00
Paul Pacheco
d3baeeeec3 refactor: simplify writer/reader function lookup 2019-04-06 13:10:01 -05:00
Paul Pacheco
209a59fe73 refactor: make method private 2019-04-06 13:06:02 -05:00
Paul Pacheco
420fef509f
refactor: Move reader and writer generation to separate classes (#746)
* refactor: Move writer generation to a separate class

* refactor: Move reader generation out of weaver.cs

* refactor: Rename struct code generation functions
2019-04-06 12:53:39 -05:00
Paul Pacheco
b024362c29 refactor: simplify syncobject initialization 2019-04-06 09:12:17 -05:00
Paul Pacheco
06bbf6c3ab style: use explicit variable types 2019-04-06 08:59:35 -05:00
Paul Pacheco
4aa6b34d90 style: indent for readability 2019-04-06 08:55:34 -05:00
Paul Pacheco
cf9f12d012 refactor: follow naming conventions 2019-04-06 08:46:31 -05:00
Paul Pacheco
5dee4e0c92 refactor: Reduce ProcessMethods cognitive complexity 2019-04-06 08:37:56 -05:00
Paul Pacheco
5a8e42028c refactor: follow naming convention 2019-04-06 08:22:56 -05:00
Paul Pacheco
683ada6bd1 refactor: remove unused parameter 2019-04-06 08:21:38 -05:00
Paul Pacheco
81c9644a07 style: use explicit type 2019-04-06 08:19:34 -05:00
Paul Pacheco
34f308430b style: Make class static 2019-04-06 08:19:13 -05:00
Paul Pacheco
c77bd5c59d style: Make class static 2019-04-06 08:18:35 -05:00
Paul Pacheco
b705b67b39 style: use explicit type 2019-04-06 08:18:04 -05:00
Paul Pacheco
7e50ceaa73 style: use explicit type 2019-04-06 08:17:19 -05:00
Paul Pacheco
0b64616aa7 style: use explicit type 2019-04-06 08:14:56 -05:00
Paul Pacheco
12aa61a00d style: use explicit type 2019-04-06 08:14:21 -05:00
Paul Pacheco
02bf5a5cf6 style: use explicit type 2019-04-06 08:13:55 -05:00
Paul Pacheco
017b5203c0 refactor: Remove unused nop 2019-04-06 08:13:37 -05:00
Paul Pacheco
0fb0c3671b style: use explicit type 2019-04-06 08:12:33 -05:00
Paul Pacheco
9e6523e3fb inline variable declaration 2019-04-06 08:12:11 -05:00
Paul Pacheco
da4e9df534 style: use compound assignment 2019-04-06 08:11:33 -05:00
Paul Pacheco
744910598d style: use explicit type 2019-04-06 08:11:01 -05:00
Paul Pacheco
a95c796407 style: use explicit type 2019-04-06 08:10:19 -05:00
Paul Pacheco
15bef0bf47 refactor: remove unused nop 2019-04-06 08:09:41 -05:00
Paul Pacheco
f3a0c5763e refactor: Remove unused parameters 2019-04-06 08:08:18 -05:00
Paul Pacheco
b7b827cebe refactor: Remove unused parameters 2019-04-06 08:02:50 -05:00
Paul Pacheco
d563ec7a5c refactor: Remove unused parameter 2019-04-06 07:59:27 -05:00
Paul Pacheco
c466be0f85 style: naming conventions 2019-04-06 07:53:14 -05:00
Paul Pacheco
cadb0cc51c style: naming conventions 2019-04-06 07:50:58 -05:00
Paul Pacheco
aa75387d60 refactor: made fields readonly 2019-04-06 07:45:02 -05:00
Paul Pacheco
a302c180d3 refactor: naming convention 2019-04-06 07:43:55 -05:00
Paul Pacheco
adb16921c8 style: naming convention 2019-04-06 07:41:57 -05:00
Paul Pacheco
76392a3a4e refactor: keep consistent namespace 2019-04-06 07:33:47 -05:00
Paul Pacheco
3a7646bab7 refactor: simplify switch 2019-04-06 07:16:36 -05:00
Paul Pacheco
0e285a5645 style: use simplest function available 2019-04-06 07:05:31 -05:00
Paul Pacheco
87e962b52b style: 2 lines if 2019-04-06 07:01:48 -05:00
Paul Pacheco
eb1654f26e style: naming convention 2019-04-06 06:56:16 -05:00
Paul Pacheco
314dde7d40 style: naming convention 2019-04-06 06:53:57 -05:00
Paul Pacheco
e8679a0562 refactor: remove pointless if 2019-04-06 06:51:37 -05:00
vis2k
b202473bcf syntax 2019-04-06 13:33:38 +02:00
vis2k
9d2682eb2a NetworkServer.SetupLocalPlayerForConnection: removed unused variable 2019-04-06 13:33:18 +02:00
vis2k
512c7ff521 NetworkManager.OnServerConnectInternal: simplify code 2019-04-06 13:18:21 +02:00
vis2k
c5236f5504 ClientScene.DestroyAllClientObjects is now called from ClientScene.Shutdown so that the NetworkManager doesn't have to worry about it 2019-04-06 13:13:32 +02:00
vis2k
a9a2afd06e
Remove NetworkManager.address because it seems pointless (#744) 2019-04-06 13:03:25 +02:00
vis2k
dfd729850e NetworkIdentity.ClearObservers: simplify code 2019-04-06 12:43:22 +02:00
vis2k
dac128f036 NetworkIdentity.SetLocalPlayer: use foreach 2019-04-06 12:42:30 +02:00
vis2k
1ad3b120b6 NetworkIdentity.OnUpdateVars: reuse NetworkBehaviours which already calls GetComponents if not initialized yet 2019-04-06 12:40:46 +02:00
vis2k
242cf9f1d2 NetworkIdentity.OnStartClient: fix log message 2019-04-06 12:36:44 +02:00
vis2k
9e8dc924de NetworkClient.RegisterHandler: remove unnecessary ToString 2019-04-06 12:32:11 +02:00
vis2k
c6fffc6505 add empty line 2019-04-06 12:20:58 +02:00
vis2k
54a24d7bda ClientScene.AddPlayer: use proper variable name 2019-04-06 12:09:52 +02:00
vis2k
ef14026be4 ClientScene.RemovePlayer: shorter code 2019-04-06 12:09:00 +02:00
vis2k
fb716df129 fix: NetworkClient.Shutdown calls ClientScene.Shutdown again to properly clean up client scene. ClientScene only cleans up itself without touching transport or NetworkIdentities (fixes the bug where the player object wouldn't be destroyed after calling StopClient) 2019-04-06 12:03:57 +02:00
MrGadget
c691c07d96 Added EditorBrowsable(EditorBrowsableState.Never) to Obsoletes (#741) 2019-04-06 10:43:14 +02:00
rodolphito
333bbb062a A gift for vis. (#742) 2019-04-06 10:42:52 +02:00
rodolphito
9d0cf977f9 Use checked() syntax to throw on overflow (#740)
* Use checked() syntax to throw on overflow

* Expect exceptions in the tests. Tests pass now.
2019-04-05 19:49:49 -05:00
rodolphito
b995a98743 Fixed NetworkReader tests, everything passes now. Also sneaked in two more tests for 0-length byte arrays because the conventional test didnt apply to them, since they didnt throw when there wasnt any data for them. Also made NetworkReader throw when it can't satisfy a request to read bytes past EOS. (#739) 2019-04-05 18:37:13 -05:00
rodolphito
f64e127378 Add tests for buffer overrun, raising the bar on NetworkReader. (#734) 2019-04-06 00:20:04 +02:00
vis2k
bd9d7b9fd6 NetworkReader.ReadString throws exception again 2019-04-06 00:18:55 +02:00
vis2k
cc16df72cc Transport.TransportReceive catches exceptions and disconnects the connection after invalid data was received. (#737) 2019-04-06 00:17:45 +02:00
vis2k
7d2c5e5b0e remove empty whitespace 2019-04-05 23:48:18 +02:00
vis2k
64ed66edbe NetworkServer.InternalSetClientNotReady moved into SetClientNotReady because it can't be overwritten anymore anyway 2019-04-05 22:00:58 +02:00
vis2k
7b550fdf4b NetworkServer.SetAllClientsNotReady: simplify code 2019-04-05 22:00:15 +02:00
vis2k
a526c39228 NetworkServer.InternalReplacePlayerForConnection: rename 'playerGameObject' to 'player' for consistency with AddPlayerForConnection 2019-04-05 21:57:36 +02:00
vis2k
e27ebf65bb NetworkServer.InternalReplacePlayerForConnection: rename 'playerNetworkIdentity' to 'identity' for consistency with AddPlayerForConnection 2019-04-05 21:56:54 +02:00
vis2k
a3e9fbb5bd NetworkServer.DisconnectAllConnections: simplify code 2019-04-05 21:53:24 +02:00
vis2k
a574b181bb remove empty line 2019-04-05 21:45:01 +02:00
vis2k
fa64fa077f NetworkServer: move UpdateServerObjects into Update 2019-04-05 21:43:17 +02:00
vis2k
2048addde4 NetworkClient.RegisterSystemHandlers: add comments 2019-04-05 21:33:02 +02:00
vis2k
a7e0b2c728 Add LocalClient.cs generated meta file 2019-04-05 20:23:39 +02:00
MrGadget
355585f1fc
Fixed Typo 2019-04-05 14:21:50 -04:00
MrGadget
fdb81ca2b2 Add LocalClient.cs Dummy for Asset Store (#733)
This file should ship with 1.7 to the Asset Store, and can be removed when 1.8 is ready to publish to the store in a May 2019.
2019-04-05 20:14:02 +02:00
rodolphito
95baed5e83 Add tests for strange floats, doubles, and decimals (#732) 2019-04-05 20:13:19 +02:00
vis2k
de0b9b5789 NetworkClient.active reads from .connectState so we don't have redundant states. 2019-04-05 20:11:22 +02:00
rodolphito
04370e56c0 Add more test cases to string read/write. (#731) 2019-04-05 19:52:39 +02:00
rodolphito
015d0d508e fix: Potential DOS attack on server by sending packed ulongs when packed uints are expected. (#730)
* fix: Potential DOS attack on server by sending packed ulongs when packed uints are expected.

* Update NetworkReader.cs
2019-04-05 19:52:00 +02:00
rodolphito
3cee3abc48 fix: Potential DOS attack by sending invalid UTF8 byte sequences (#727)
* fix: Potential DOS attack by sending invalid UTF8 byte sequences

* Added test case for invalid UTF8 bytes
2019-04-05 19:47:37 +02:00
rodolphito
0d2f64228c Added Unicode Strings test (#728) 2019-04-05 18:12:28 +02:00
vis2k
fdd35bc840 List Server Example: read IP from bytes again after list server IPv6 bug was fixed 2019-04-05 11:26:31 +02:00
rodolphito
4ee787b0eb What even is m_td? Rename it to something that can actually be read. (#709) 2019-04-05 09:59:45 +02:00
rodolphito
5f63256cd1 We can hide this better by using this attribute (#725) 2019-04-05 09:59:25 +02:00
vis2k
ee2ace8e42 fix: #652 OnPostProcessScene includes disabled NetworkIdentities in scene 2019-04-04 18:41:42 +02:00
MichalPetryka
8caf299f4a Whitespace and encoding normalization (#722) 2019-04-04 18:20:13 +02:00
rodolphito
7948961e14 Simplified code in NetworkConnection. (#717) 2019-04-04 18:17:44 +02:00
vis2k
62e28bdc46 List Server Example: IP as string again for easier IPv6 support 2019-04-04 17:08:44 +02:00
vis2k
11f34ef90f List Server Example: update comments 2019-04-04 17:08:44 +02:00
vis2k
b329bc4e8a List Server Example: improve comment log message 2019-04-04 17:08:44 +02:00
vis2k
bfe27ffadf List Server Example: read/write title as UTF8 encoded bytes with length prefix 2019-04-04 17:08:44 +02:00
vis2k
5226ed64de List Server Example: warn gameserver if it tries to send a too big message which would be rejected by List Server 2019-04-04 17:08:44 +02:00
vis2k
401455197f List Server Example: read player, capacity before title 2019-04-04 17:08:44 +02:00
vis2k
33c8d5685f add comment 2019-04-04 17:08:44 +02:00
vis2k
02fd8d3e8c List Server Example: parse IP from bytes because the list server sends it as bytes now. 2019-04-04 17:08:44 +02:00
rodolphito
699a261e91 fix: weaver Cmd/Rpc/Target prefix check is no longer trash (#707)
* fix: weaver Cmd prefix check should not allow methods with names shorter than 3 characters.

* fix: weaver Rpc prefix check should not allow methods with names shorter than 3 characters.

* fix: weaver Target prefix check should not allow methods with names shorter than 6 characters.

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

Co-Authored-By: rodolphito <rodol@rivalrebels.com>

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

Co-Authored-By: rodolphito <rodol@rivalrebels.com>

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

Co-Authored-By: rodolphito <rodol@rivalrebels.com>
2019-04-04 05:45:21 -05:00
vis2k
5994f0f207 List Server Example: show status indicator for client to list server connection 2019-04-04 10:08:58 +02:00
rodolphito
22d237505c Renamed m_MessageHandlers to messageHandlers (#708) 2019-04-04 09:50:02 +02:00
rodolphito
cdeed8b558 Remove prefixes in NetworkAnimator. (#710) 2019-04-04 09:48:52 +02:00
rodolphito
77e5de7352 Renamed m_VisUpdateTime lastUpdateTime (#711) 2019-04-04 09:48:28 +02:00
rodolphito
a5ead70961 Rename s_NextNetworkId to nextNetworkId (#712) 2019-04-04 09:47:51 +02:00
rodolphito
13679887f4 Renamed m_CmdHandlerDelegates to cmdHandlerDelegates (#713) 2019-04-04 09:47:37 +02:00
rodolphito
382e125146 Removed s_ prefixes in NetworkManager (#714) 2019-04-04 09:47:12 +02:00
rodolphito
46841cdd3f Remove k_ prefixes in weaver (#715)
* Rename k_CmdPrefix to CmdPrefix

* Rename k_RpcPrefix to RpcPrefix

* Rename k_TargetRpcPrefix to TargetRpcPrefix
2019-04-04 09:46:49 +02:00
rodolphito
df132b6893 Inlined an internal method call. (#716) 2019-04-04 09:46:19 +02:00
vis2k
e9717d87ad Syntax 2019-04-03 16:05:45 +02:00
vis2k
370f66b9b4 List Server Example: add connected/disconnected log messages 2019-04-03 16:05:16 +02:00
vis2k
c617ffd61c List Server Example: improve log messages 2019-04-03 16:05:03 +02:00
Paul Pacheco
053949b7d2 fix(weaver): #696 detect .mystruct = new MyStruct() changes with syncvars (#702)
* clearing struct should set dirty bit

This reproduces issue #696

using .mystruct = default uses initobj instead of stfld, so the weaver misses it

* refactor: use index for so that we can insert instructions

* refactor: rename test

* fix: #696 use generated setter for .mystruct = new MyStruct()

* Update PropertySiteProcessor.cs

* Update PropertySiteProcessor.cs
2019-04-03 13:59:37 +02:00
vis2k
5b30a94923
Merge pull request #705 from vis2k/MrGadget1024-patch-2
fix: Lobby Remove button not showing for P1 when Server Only
2019-04-03 13:37:16 +02:00
Paul Pacheco
e7c98af6eb Obsolete non generic InvokeHandler 2019-04-03 06:27:46 -05:00
MrGadget
377c47ce74
fix: Lobby Remove button not showing for P1 when Server Only 2019-04-03 00:16:23 -04:00
Paul Pacheco
040bcb45ad
feat: SyncList now supports any IList implementation (#704) 2019-04-02 21:39:19 -05:00
Paul Pacheco
2683572fb4
feat: SyncDictionary can now be used for any IDictionary (#703) 2019-04-02 21:26:24 -05:00
vis2k
0c1d5001ba
Merge pull request #701 from Katori/DontDeletePDB
fix(Weaver): Don't delete the PDB after Weaving
2019-04-02 23:51:13 +02:00
Zac North
c78120eca2 Don't delete the PDB, what were they thinking? 2019-04-02 14:28:56 -04:00
vis2k
8dc0c73d77
Merge pull request #695 from MrGadget1024/Additive-Scene-Example
Additive Scenes Example
2019-04-02 17:08:28 +02:00
vis2k
e1b4b181c4 NetworkIdentity.RebuildObservers: change "Observer is not ready for: ..." warning to debug log, because it would constantly be spammed if a connection disconnects and we keep the player in the game for a while before disconnecting. E.g. if NetworkManager.OnServerDestroy delays the disconnect to avoid a player from fleeing combat. 2019-04-02 12:24:36 +02:00
vis2k
9c8211e573 NetworkServer.OnDisconnected: remove "Player not destroyed when connection disconnected." warning. This warning would be shown if a NetworkManager's OnServerDisconnect function wouldn't remove the player immediately, which is completely normal in most online games where the server delays a disconnect if the player was recently in combat - which would then show this warning every single time. OnServerDisconnect removes the player controller anyway, so there is no need for this warning at all. 2019-04-02 12:11:26 +02:00
Paul Pacheco
c58cf884d4 test: Test that setting syncvar sets dirty bits 2019-04-02 03:45:29 -05:00
Paul Pacheco
2ca80e1a90 refactor: move property site processor into a separate class 2019-04-02 03:16:50 -05:00
Paul Pacheco
ac697a454b style: C#7 syntax 2019-04-02 02:32:29 -05:00
Paul Pacheco
312c0fcf5d style: C# 7 code style 2019-04-02 02:27:11 -05:00
Paul Pacheco
9d54bf7bb1 style: naming convention 2019-04-02 02:26:01 -05:00
Chris Langsenkamp
297b671766 Renamed script to AdditiveNetworkManager 2019-04-01 19:18:15 -04:00
Chris Langsenkamp
2c0fa42568 Made Lobby player controller more similar to Additive player controller, per request. 2019-04-01 13:55:34 -04:00
Chris Langsenkamp
dc8f9b462a Code changes as requested 2019-04-01 13:54:15 -04:00
vis2k
ab44ac8f8b fix: #692 by always adding connectionToClient when rebuilding observers 2019-04-01 17:19:47 +02:00
vis2k
8f3c8edd86 RebuildObservers: add comments 2019-04-01 17:09:11 +02:00
vis2k
512e904ec0 RebuildObservers: order hashset syntax more logically 2019-04-01 17:01:44 +02:00
Chris Langsenkamp
32d6c19e5f Initial Publish 2019-03-31 22:07:37 -04:00
Paul Pacheco
ee9c737bda feat: allow users to detect mirror version 3 2019-03-31 13:27:03 -05:00
Paul Pacheco
e75d4b29dd style: remove redundant methods 2019-03-31 11:30:30 -05:00
vis2k
b876e256eb
Merge pull request #689 from paulpach/zigzag
perf: Implement zigzag algorithm so negatives pack efficiently
2019-03-31 14:25:35 +02:00
Paul Pacheco
5f1ef4ab1f perf: Pack small 64 bit negatives efficiently 2019-03-31 07:16:57 -05:00
Paul Pacheco
480af1aa6c perf: Pack small 32 bit negatives efficiently 2019-03-31 07:16:51 -05:00
rodolphito
f5d80175fe Fixed a typo in NetworkServer (#691) 2019-03-30 16:01:12 -05:00
rodolphito
2db7576bbc perf: Use WritePackedUInt32 in SyncList (#688) 2019-03-30 12:33:16 -05:00
Paul Pacheco
3ec7f6c1d0 style: remove redundant field initialization 2019-03-30 12:21:37 -05:00
Paul Pacheco
d12c4b80ca style: constructor of abstract class should be protected 2019-03-30 12:20:02 -05:00
rodolphito
594e8c9d89 Syncdict style (#687)
* Renamed m_Objects to objects

* Renamed Changes to changes
2019-03-30 12:16:35 -05:00
rodolphito
f61b757b8a Synclist style (#686)
* Rename m_Objects to objects

* Rename Changes to changes

* Empty braces

* use default shorthand

* Use expression body getter
2019-03-30 12:09:37 -05:00
Paul Pacheco
bd304ab90b style: follow C# code style conventions 2019-03-30 12:06:39 -05:00
Paul Pacheco
695979e914
feat: Add SyncHashSet and SyncSortedSet (#685)
* feat: Add SyncHashSet and SyncSorted set
2019-03-30 11:51:06 -05:00
Paul Pacheco
a8599c1af2 feat: Show compile time error if overriding unused OnServerAddPlayer (#682)
* remove obsolete OnServerAddPlayer

BREAKING CHANGE: Remove obsolete OnServerAddPlayer

Any person that overrides this method has a broken game.  These methods are never called anywhere.

The user gets a warning because they are overriding an obsolete method,  which might get ignored if they have lots of other warnings.   They would run their game and their game would not work at all.  No errors.

By removing these methods, users that override these methods will get a compile time error instead.  So they cannot ignore this error and they will fix it.

* Method is no longer available in NetworkLobbyManager
2019-03-28 11:36:13 +01:00
Paul Pacheco
8dea50ed18
fix: call Obsoleted OnStartClient (#681) 2019-03-27 18:13:59 -05:00
MichalPetryka
468ec80dbb Remove useless method (#680) 2019-03-27 17:23:37 -05:00
rodolphito
375303297c Removed internal access modifier. (#675)
good catch,  this should be private
2019-03-27 17:22:21 -05:00
rodolphito
40d2ec54e5 This method seems pretty redundant, could just be called directly. (#677) 2019-03-27 13:06:42 -05:00
MrGadget
49f39f9c09 Updated Obsolete comment and code to remove singleton (#661)
* Updated Obsolete comment and code to remove singleton

* Update NetworkClient.cs

* Update NetworkClient.cs

* Update NetworkClient.cs
2019-03-27 15:13:25 +01:00
rodolphito
1feff9d749 Removed useless comment. (#676) 2019-03-27 13:56:59 +01:00
rodolphito
6edfd3ddf1 Removed more internals. (#673) 2019-03-27 13:37:12 +01:00
rodolphito
ba298c74b0 Style guidelines say these are bad. (#672) 2019-03-27 13:20:36 +01:00
rodolphito
57066a6003 These can be private. (#669) 2019-03-27 13:13:27 +01:00
rodolphito
4897edd76a More internal access modifier removals (#671) 2019-03-27 13:13:11 +01:00
rodolphito
9be7426efa Remove s_ prefix because the entire class is static, the prefix doesnt actually specify anything. (#668) 2019-03-27 12:04:07 +01:00
rodolphito
86c1942310 Remove s_ prefix because the entire class is static, the prefix doesnt actually specify anything. (#667) 2019-03-27 12:03:37 +01:00
rodolphito
595039865f Removed duplicated address storage. (#664)
* Removed duplicated address storage.

* Removed the obsoletion as per vis' request.
2019-03-27 10:27:41 +01:00
rodolphito
c289ffb440 Remove proxy methods for setting playerController. (#665)
* Deprecate proxy methods for setting playerController.

* shortened obsoleted methods.

* This isnt actually public facing, its internal. Obsoletion is unnecessary, plain removal is ok.
2019-03-27 10:26:45 +01:00
uwee
f4cdfbf952 Remove IsClientConnected (#663)
* remove IsClientConnected

no longer needed now that NetworkClient is static

* removed in other scripts also

* marked as obsolete
2019-03-27 09:15:03 +01:00
MrGadget
d7306986b6 Updated Lobby Example Scenes Lighting (#662) 2019-03-26 17:49:56 +01:00
MrGadget
d2868646fa SyncVar Updates (#660)
* Change SyncVar hooks to use `nameof`
I intentionally left the test for missing hook as a literal string because it won't compile otherwise.

* Removed unnecessary property value set from hook
2019-03-26 15:40:28 +01:00
uwee
68f63b5f69 bool InActiveScene not referenced in any script? (#656)
* code is not referenced in any script?

* fully remove code
2019-03-26 13:58:05 +01:00
Paul Pacheco
2d63ee1318
fix: Set syncvar variables after calling the hook (#659)
Previously, during deserialize,  Mirror either called the hook for a syncvar or it set the variable, but never both. So users had to set the variable inside the hook.

```cs
class Player : NetworkBehaviour {

	[SyncVar(hook=nameof(OnVarChanged))]
	public int myvar;

	public void OnVarChanged(int newvalue) {

		Debug.Log("Got new value " + newvalue);
		Debug.Log("Old value is " + myvar);

		// with this pull request the following line is no longer needed
		// the weaver will do this after the hook finishes
		// this.myvar = newvalue;
	}
}
```

fix: Hook not working with NetworkIdentity or GameObjects

Deserializing NetworkIdentity or GameObjects was broken, it called the hook only if there was no hook,  and it saved the variable only if there was a hook.
2019-03-26 07:15:25 -05:00
Paul Pacheco
4d74f555b1 Update Assets/Mirror/Runtime/NetworkClient.cs
Co-Authored-By: vis2k <info@noobtuts.com>
2019-03-26 12:16:57 +01:00
vis2k
1879f5ecdc Add [Obsolete] for compatibility 2019-03-26 12:16:57 +01:00
vis2k
9bc1dc1e85 NetworkClient class made static 2019-03-26 12:16:57 +01:00
vis2k
912572d6fe NetworkClient.ConnectLocalServer: use the same order as Connect 2019-03-26 12:16:57 +01:00
vis2k
7bc320d098 LocalClient class moved into NetworkClient 2019-03-26 12:16:57 +01:00
vis2k
31836c16d1 NetworkClient.RemoveTransportHandlers made static 2019-03-26 12:16:57 +01:00
vis2k
4dbaff8ac1 NetworkManager.StartClient/StartHost don't return NetworkClient anymore 2019-03-26 12:16:57 +01:00
vis2k
d1d006e6d7 NetworkClient.Connect made static 2019-03-26 12:16:57 +01:00
vis2k
080bf2eaf0 NetworkClient.InitializeTransportHandlers made static 2019-03-26 12:16:57 +01:00
vis2k
32ed62f82b NetworkClient.OnError made static 2019-03-26 12:16:57 +01:00
vis2k
461ba0b036 NetworkClient.OnDisconnected made static 2019-03-26 12:16:57 +01:00
vis2k
60083ff72d NetworkClient.OnDataReceived made static 2019-03-26 12:16:57 +01:00
vis2k
42bceb25d9 NetworkClient.OnConnected made static 2019-03-26 12:16:57 +01:00
vis2k
493bf7fa5f NetworkClient.RegisterSystemHandlers made static 2019-03-26 12:16:57 +01:00
vis2k
bc6c2542f6 NetworkClient.UnregisterHandler made static 2019-03-26 12:16:57 +01:00
vis2k
9eac983872 . NetworkManager.RegisterClientMessages doesn't require NetworkClient parameter anymore 2019-03-26 12:16:57 +01:00
vis2k
712aecb452 NetworkClient.REgisterHandle made static 2019-03-26 12:16:57 +01:00
vis2k
ba00554e0c NetworkClient.GetRTT made static 2019-03-26 12:16:57 +01:00
vis2k
4abc58b136 NetworkClient.Send(msgId, msg) made static 2019-03-26 12:16:57 +01:00
vis2k
cd56c6a6f7 NetworkTime.UpdateClient doesn't require NetworkClient anymore 2019-03-26 12:16:57 +01:00
vis2k
8c125d2fd3 NetworkClient.Send made static 2019-03-26 12:16:57 +01:00
vis2k
558e1d8754 NetworkClient.SetHandlers made static 2019-03-26 12:16:57 +01:00
vis2k
180d3f8cf4 NetworkClient.isConnected made static 2019-03-26 12:16:57 +01:00
vis2k
604c205025 NetworkClient.serverIp made static 2019-03-26 12:16:57 +01:00
vis2k
882a7d5ba8 NetworkClient.connection made static 2019-03-26 12:16:57 +01:00
vis2k
f351a8a6d4 NetworkClient.connectState made static 2019-03-26 12:16:57 +01:00
vis2k
006d5d3bc8 NetworkClient.handlers made static 2019-03-26 12:16:57 +01:00
rodolphito
3a8fa3f571 Remove internal access modifier. (#658) 2019-03-26 12:09:43 +01:00
rodolphito
a96417112d Use ulong instead of uint to support up to 64 animator parameters. (#655)
* Use ulong instead of uint to support up to 64 animator parameters.

* Split onto new line as Paul asked
2019-03-26 07:57:51 +01:00
uwee
65eaba1fe0 fix: #651 GetSceneAt assumes default scene (#654)
Changed to GetActiveScene
2019-03-26 07:57:31 +01:00
Paul Pacheco
8c93f31b80 refactor: Load parameters right before function call 2019-03-25 23:13:52 -05:00
vis2k
ff909bf830 Telepathy license file included 2019-03-25 20:03:27 +01:00
vis2k
14807f6ef7 add comment 2019-03-25 16:20:17 +01:00
vis2k
13bb748603 fix: Revert "NetworkClient.Shutdown: call ClientScene.Shutdown, otherwise it's never called" - caused client's player to not be removed from scene after disconnecting
This reverts commit e1e7b3132e.
2019-03-25 16:19:22 +01:00
rodolphito
d483901432 Use PackedUInt for dirty bits for bandwidth (#649) 2019-03-25 13:13:14 +01:00
uwee
4c7c97bf70 reset netId counter to 1 on NetworkServer.Shutdown (#645) 2019-03-25 05:37:28 -05:00
rodolphito
6120a8e082 Removed unused parameter from NetworkAnimator. (#648) 2019-03-25 08:07:45 +01:00
Paul Pacheco
e2a6ce9811
feat: Add weaver support for Vector2Int and Vector3Int (#646) 2019-03-24 16:04:13 -05:00
vis2k
7836433b4f Local Connection's connectionId is now set to 0 inside of their constructors, instead of doing it in LocalClient 2019-03-24 21:16:55 +01:00
vis2k
5f7c4d48b4 NetworkServer.AddLocalClient renamed to SetLocalConnection because that's what it does. The connection is created in LocalClient now too, this way NetworkServer doesn't need to depend on LocalClient(!) 2019-03-24 21:15:05 +01:00
vis2k
829da79288 LocalClient.InternalConnectLocalServer sets connectionId to 0 directly instead of getting it from NetworkServer.AddLocalClient (which shows an error message if failed anyway) 2019-03-24 21:07:41 +01:00
vis2k
56c163d9cd NetworkServer.RemoveLocalClient renamed to RemoveLocalConnection because NetworkServer only keeps a local connection, not a local client 2019-03-24 21:07:41 +01:00
uwee
6db11b298b Add the name of the Message back to the debug
The random int representing the Message is less human readable.
2019-03-24 14:50:13 -05:00
vis2k
ca2c72aee8 NetworkServer.s_LocalConnection replaced with .localConnection private setter 2019-03-24 20:46:34 +01:00
Paul Pacheco
48674151f0 perf: don't varint bytes and shorts 2019-03-24 14:45:03 -05:00
vis2k
bdf12c85d0 fix: #640 InternalReplacePlayerForConnection calls SpawnObserversForConnection now too 2019-03-24 19:41:41 +01:00
vis2k
a2d6317642 fix: #573 NullReferenceException because destroyed NetworkIdentities were never removed from sceneIds dict 2019-03-24 19:28:25 +01:00
rodolphito
1e5fc3cde5 Made dirty bits not rely on NetworkWriter position manipulation hackery. (#636)
* Made dirty bits not rely on NetworkWriter position manipulation hackery.

* Renamed GetDirtyBits to NextDirtyBits, as discussed with Paul.

* Expanded one line ifs.
2019-03-24 12:43:39 -05:00
Paul Pacheco
a495f66fc1
refactor: configure frame rate in a virtual method (#638)
Moved frame rate configuration into a virtual method so that people can override it and we reduce StartServer complexity

Fixes #567
2019-03-24 08:58:11 -05:00
vis2k
2d492607c8 pong example: ball is only simulated on server now 2019-03-24 14:38:22 +01:00
vis2k
e521a20052 fix: #573 (part 2) NetworkManager detects additive scene loads and respawns objects on server/client again 2019-03-24 13:24:29 +01:00
vis2k
c1af84e6bf fix: #573 (part 1) NetworkScenePostProcess handles NetworkIdentities of all scenes except DontDestroyOnLoad. this way it works for additively loaded scenes too. 2019-03-24 13:24:29 +01:00
vis2k
603dfa1fe9 don't use continue and improve comments 2019-03-24 13:24:29 +01:00
vis2k
051cd7cf66 add comment 2019-03-24 13:24:29 +01:00
vis2k
bce7c54fa1 NetworkScenePostProcess: only set inactive if this was actually a valid scene object 2019-03-24 13:24:29 +01:00
rodolphito
b3595d3f5d Code simplification and optimization. (#635) 2019-03-24 10:47:14 +01:00
Zac North
7d21bded9a feat(syncvar): Add SyncDictionary (#602)
* Added basic SyncDictionary support, no support for structs yet

* Fixed TryGetValue usage

* Removed extraneous hardcoded SyncDictionary type

* Added a couple basic tests, more coming

* Added 4 more tests

* Added two tests and SyncDictionary now bubbles item to Callback on Remove (both Remove cases)

* Added the remainder of tests

* Added basic documentation about SyncDictionaries on StateSync.md page

* Simplify test syntax

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

* Simplify test syntax

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

* Simplify test syntax

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

* Simplify test syntax

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

* Remove null-check when setting value directly (and updated expected test behaviour)

* fix: Provide default implementation for SyncDictionary serializers

* feat: Add Weaver support for syncdictionary

* Fix minor issue with Set code and made test use Weaved serialization instead of manual

* Added a new test for bare set (non-overwrite)

* Added another test for BareSetNull and cleaned up some tests

* Updated SyncDictionary documentation on StateSync.md

* Update docs with SyncDictionary info

* Update SyncDictionary docs wording

* docs: document the types and better example

* Add two SyncDictionary constructors

* Removed unnecessary initialization

* Style fixes

* - Merged many operation cases
- Fixed Contains method
- Added new test to test contains (and flag its earlier improper usage)
- Use PackedUInt32 instead of int for Changes and Counts

* - Simplify "default" syntax
- Use Rodol's remove method (faster)
- Don't use var

* Removed unnecessary newline, renamed <B, T> to <K, V> per vis2k, corrected wording of InvalidOperationException on ReadOnly AddOp

* Code simplification, style fixes, docs example style fixes, newly improved implementation for CopyTo that fails gracefully
2019-03-24 10:18:31 +01:00
rodolphito
fea46b801d Remove NetworkAnimatorEditor and animator parameter mask. (#633) 2019-03-24 09:39:51 +01:00
vis2k
67d715fe74 fix: Telepathy updated to latest version: protect against allocation attacks via MaxMessageSize. Can be configured in the TelepathyTransport component now. 2019-03-23 20:34:48 +01:00
Zac North
b0af876221 fix(tests): Added missing SyncListByteValid test file (#634)
* Added missing SyncListByteValid test file (passing)

* Added a missing newline
2019-03-23 18:40:38 +01:00
MichalPetryka
1595fb07b1 PreprocessorDefine rework (#626)
perf: speed up preprocessor define
2019-03-23 06:59:35 -05:00
vis2k
1bf2f9ee56 Update List Server demo text 2019-03-23 12:51:39 +01:00
vis2k
4eb01da0c1 update welcome message 2019-03-22 17:19:05 +01:00
vis2k
fa04185fa8 remove empty line 2019-03-22 14:08:59 +01:00
vis2k
c194771084 ClientScene.DestroyAllClientObjects simplified: use .Values 2019-03-22 14:05:47 +01:00
vis2k
6e11429699 NetworkClient.Shutdown made static too. ShutdownAll made obsolete. 2019-03-22 13:56:43 +01:00
vis2k
1d94464023 NetworkClient.ShutdownAll calls .Shutdown 2019-03-22 13:54:20 +01:00
vis2k
e1e7b3132e NetworkClient.Shutdown: call ClientScene.Shutdown, otherwise it's never called 2019-03-22 13:53:28 +01:00
vis2k
227b0a71d1 tanks example namespaces updated 2019-03-22 13:29:24 +01:00
vis2k
c5b4211ac7 list server examples namespace changed 2019-03-22 13:28:08 +01:00
vis2k
5c00577746
fix: #609 by spawning observers in NetworkServer.AddPlayerForConnection after setting the controller. There is no point in trying to spawn with a null controller in SetReady, because by definition no one can observer something that is null. (#623) 2019-03-22 12:50:35 +01:00
Paul Pacheco
b7e977a7a3
synclist code generator is now reusable (#624)
* refactor: Made serializer generation reusable

* refactor: SyncList code generator is reusable for other structs
2019-03-22 06:44:57 -05:00
vis2k
1d166c699a add comment 2019-03-22 12:24:22 +01:00
vis2k
694185b756 NetworkServer.SpawnObserversForConnection helper function instead of doing it all in SetClientReady 2019-03-22 12:23:33 +01:00
vis2k
009943f368 remove outdated comment 2019-03-22 12:10:13 +01:00
vis2k
c3bd7d6e07 NetworkServer.SetClientReady: get rid of 'continue' 2019-03-22 12:09:22 +01:00
vis2k
400bb91821 NetworkServer.SetClientReady: remove unnecessary null check because we don't have one in the above foreach either, and we don't have them anywhere else for NetworkIdentity.spawned because OnDestroy removes objects from it before they become null. The only way to cause this would be by calling Destroy(GetComponent<NetworkIdentity>()) - which no one does, and if someone does it then it's fine to get an exception here. 2019-03-22 12:08:47 +01:00
vis2k
9567daedba add comments 2019-03-22 12:06:13 +01:00
vis2k
b869e3af99 improve comment 2019-03-22 12:04:25 +01:00
vis2k
c176da7bc3 NetworkServer.SetClientReady: use if+else instead of if + early return 2019-03-22 12:00:16 +01:00
vis2k
0e8b442cad add some ocmments 2019-03-22 11:59:12 +01:00
vis2k
f6a6440294 NetworkServer.SetClientReady: move isReady=true upwards 2019-03-22 11:57:27 +01:00
vis2k
47d5ee976e remove unused variable 2019-03-22 11:53:42 +01:00
Paul Pacheco
6f19489721
feature(synclist): allow SyncList of primitive types (#622)
* feature(synclist): allow SyncList of primitive types

As it turns out this never really worked:
```cs
class SyncListByte : SyncList<byte> {};
```

You had to write your own serializeItem / deserialize item for native types.

This change lifts the restriction, now you can use a synclist of anything that mirror can serialize/deserialize

* fix: fix unit tests error messages
2019-03-22 05:51:20 -05:00
vis2k
aa5e5a104f ClientScene.s_PendingOwnerNetIds converted to HashSet 2019-03-22 10:10:53 +01:00
vis2k
0d6b03989a NetworkServer.InternalAddPlayerForConnection moved into AddPlayerForConnection because there is no reason to keep it in an internal method anymore, since NetworkServer is static now 2019-03-22 10:04:14 +01:00
vis2k
fb2131207c NetworkServer.InternalAddPlayerForConnection: reuse 'identity' for log message 2019-03-22 10:03:00 +01:00
vis2k
4f53f37dc8 NetworkServer.InternalAddPlayerForConnection: rename playerGameObject parameter for consistency 2019-03-22 10:02:30 +01:00
vis2k
75e51513db added the log message again too 2019-03-22 09:58:04 +01:00
vis2k
1a55c3d52d NetworkManager: move OnServerAddPlayerInternal code into OnServerAddPlayer because it was really just the implementation for OnServerAddPlayer moved into another function 2019-03-22 09:53:21 +01:00
vis2k
4b4dd179cc sort regular and obsolete OnServerAddPlayer functions 2019-03-22 09:51:27 +01:00
vis2k
a39954003a NetworkManager.RegisterServerMessages for AddPlayerMessage uses OnServerAddPlayer directly instead of wrapping it with a OnServerAddPlayerMessageInternal function 2019-03-22 09:46:14 +01:00
vis2k
fa4efa6683 syntax 2019-03-21 18:12:34 +01:00
vis2k
155764cea8 simplify NetworkIdentity.RebuildObservers 2019-03-21 17:58:15 +01:00
vis2k
f90cdae3c6 fix #384: duplicating scene objects at runtime is now detected and and error is shown. otherwise the user could instantiate scene objects at runtime, which would then send the sceneId to the client, then the client wouldn't know which of the multiple objects to use for the sceneId, resulting in things getting out of sync. 2019-03-21 11:46:55 +01:00
Zac North
c9eac57ce8 fix: OnClientReady is called and passed the appropriate ready state value in NetworkLobbyPlayer (#618) 2019-03-21 02:27:25 -05:00
Martin Evans
28b067d3cd refactor: Generic IMessageBase to allow struct message types (#619)
* - Added a `IMessageBase` as an interface to `MessageBase`. Existing messages which inherit `MessageBase` (including ones which do not implement Serialize/Deserialize and rely on the weaver) will continue to work in exactly the same way as before!
 - Modified any methods which were generic `T where T : MessageBase` to be `T where T : IMessageBase`. this does not change things at all for all existing usages of the method.

These two changes allow end users to implement IMessageBase as a `struct` instead of `MessageBase` as a `class`, so they are no longer forced to allocate message objects in their own code.

* Update .gitignore

* Update Messages.cs

* Update MessageBaseTests.cs

* Update MessageBaseTests.cs

* Update MessageBaseTests.cs
2019-03-20 19:44:42 -05:00
Paul Pacheco
9d043182bf feature: SyncList now support structs (#614)
Previously, if you wanted a synclist of structures,  you would do:  SyncListSTRUCT<MyStruct>
Now you can use SyncList<MyStruct>
SyncListSTRUCT is left there, but obsolete
2019-03-20 12:45:46 +01:00
vis2k
22640b5e62
Mirror List Server example (#611)
feature: Mirror List Server example
2019-03-20 09:38:53 +01:00
Anthony Eckert
00961ccc9c feature: Add NoRotation to NetworkTransform (#616)
This allows you to leave rotation out of the NetworkTransform if you only need position.
Right now if you don't need sync rotation and set compression to Lots, it can move your object in ways not expected. This forces you to use no compression as a fix. Using more bandwidth for something you don't need. I think this is all that is needed, tested it in my game and it works.
2019-03-19 23:46:33 -05:00
Paul Pacheco
80bce0a626 refactor: rename SyncObjectProcessor -> SyncObjectInitializer
The name SyncObjectProcessor is confusing because it does not process syncobjects.   Instead it initializes syncobjects in a NetworkBehaviour.
this avoids the confusion with SyncListStructProcessor, that does process synclists to add serialization methods
2019-03-19 08:26:03 -05:00
Paul Pacheco
6e51e69e3d refactor: rename SyncListProcessor -> SyncListInitializer
SyncListProcessor is a very confusing name,  it does not process synclists at all,  instead it initializes synclists in the network behaviour.
This is more confusing especially since SyncListStructProcessor  does process the synclists to add serialization methods, and both of them normally work
in tandem in different parts of the code
2019-03-19 08:23:28 -05:00
vis2k
8f8856d320 remove targetrpc first parameter networkconnection test because it's optional now 2019-03-18 13:08:28 +01:00
MichalPetryka
c1707e5917 fix: Don't disconnect host (#608)
* Don't disconnect host

* Update NetworkConnection.cs
2019-03-18 09:38:51 +01:00
vis2k
ed6a93724f tanks: projectiles 2019-03-17 22:23:20 +01:00
vis2k
21327065f2 rename Examples/Movement to Examples/Tank 2019-03-17 21:46:53 +01:00
vis2k
97b4e26d8b movement: add a light to the tank 2019-03-17 21:46:18 +01:00
vis2k
a2165d3278 movement: dirt texture 2019-03-17 21:38:58 +01:00
vis2k
d41c5d0040 movement: adjust camera 2019-03-17 21:31:45 +01:00
vis2k
6a11335050 movement: improve code 2019-03-17 21:30:45 +01:00
vis2k
a773df4905 movement: use animations 2019-03-17 21:30:45 +01:00
vis2k
c0b2d63a8d movement: rename player to tank 2019-03-17 21:18:57 +01:00
vis2k
13717c8b57 movement: rotate camera 2019-03-17 21:17:20 +01:00
vis2k
fbe2895eab movement: delete old model 2019-03-17 21:12:49 +01:00
vis2k
14b63e9d10 movement: add some spawn positions 2019-03-17 21:08:52 +01:00
vis2k
477fe61a14 movement example: fix movement in builds by using navmeshagent; use better model (tank) 2019-03-17 21:05:12 +01:00
MichalPetryka
b67b3e4304 fix: Stop calling ClientDisconnect on host (#597)
* Stop calling ClientDisconnect on host

* Update NetworkConnection.cs

* Update NetworkServer.cs
2019-03-17 19:37:21 +01:00
MrGadget
78504533f3 Fix Scene Handling (#463)
* Fix Scene Handling

Line 361: Passing false prevents the switch to offline scene...pass true instead to forceReload paramater.
Line 588: Never assume Network Manager is in Scene 0 of Build Settings...it often is not.

* Reverted GetActiveScene

Will make separate PR

* Added code to unwind DontDestroyOnLoad

* Fixed typo in comment

* Removed the unwinding of DDOL
2019-03-17 19:32:49 +01:00
vis2k
7efeaa980c not public 2019-03-17 14:35:53 +01:00
vis2k
d72a10b4a9 pong: NetworkManagerPong handles ball spawn and despawn 2019-03-17 14:34:59 +01:00
vis2k
7e9b3efa7d pong: fixed racket spawn position after reconnecting 2019-03-17 14:24:15 +01:00
vis2k
6d8d9f2998 pong: racket uses * Time.fixedDeltaTime 2019-03-17 14:14:22 +01:00
vis2k
a3209add85 pong ball uses continous collision detection and interpolation to fix going through walls 2019-03-17 14:08:08 +01:00
vis2k
f360e5070c pong ball velocity only starts when both players are connected 2019-03-17 14:07:24 +01:00
vis2k
c956148982 pong ball position centered 2019-03-17 14:02:42 +01:00
vis2k
46dd15d4a4 spawn scene object not found message shows sceneID as hex 2019-03-17 09:54:44 +01:00
MrGadget
f64eb8be0b Should be fixedDeltaTime in FixedUpdate (#605) 2019-03-16 13:15:32 -05:00
MrGadget
d09c7cddc0 Fixed typos (#604) 2019-03-16 12:57:17 -05:00
MrGadget
54c964c232 Made Lists available to inheritors (#603)
* Made Lists available to inheritors

* Update NetworkLobbyManager.cs

Made them public
2019-03-16 15:47:33 +01:00
rodolphito
0b83c9feb9 Add scale to spawn payload. (#599) 2019-03-16 11:57:59 +01:00
vis2k
4193574864
[TargetRPC] optional connection parameter for easier usage while still allowing for previous usage (#592)
* [TargetRPC] optional connection parameter for easier usage while still allowing for previous usage

* allow for parameterless targetrpc too

* syntax

* Add Helpers.ReaderParameters change from HLAPI 2019.2 package just to be sure
2019-03-14 14:52:32 +01:00
vis2k
1824e8db80 sceneID buildIndex byte replaced with scenePath hash and sceneID converted to long to fix #571, #577 2019-03-14 11:26:19 +01:00
vis2k
ca69cb9c14 log sceneid as hex 2019-03-14 11:15:51 +01:00
vis2k
de9d31f6b6 syntax 2019-03-14 11:01:42 +01:00
vis2k
e962fd2f35 sceneID random generation excludes 0 because 0 is for random sceneIDs 2019-03-14 11:01:12 +01:00
vis2k
62fc738673 Fix sceneID mismatch bug between build (buildIndex=-1) and editor (buildIndex=0) for projects where the scene was not added to build settings list 2019-03-13 18:36:20 +01:00
vis2k
8642056f21 add comments 2019-03-13 18:27:00 +01:00
MichalPetryka
8c41ee2380 Remove a per packet Encoding allocation (#588)
* Remove a per packet encoding allocation

* Update NetworkReader.cs

* Update NetworkReader.cs

* Update NetworkWriter.cs

* Update NetworkWriter.cs

* Update NetworkReader.cs
2019-03-13 15:53:18 +01:00
MrGadget
ab668962d1 Added Obsoleted Methods (#590) 2019-03-13 15:49:43 +01:00
MrGadget
dc0b8d406a NetworkLobbyManager: Added Obsoleted Method (#591) 2019-03-13 15:49:11 +01:00
vis2k
f17ddfec5f syntax 2019-03-13 14:03:41 +01:00
vis2k
d23facc048 simplify code 2019-03-13 14:01:50 +01:00
vis2k
00a1004b41
Weaver sourcebased hlapi2019.2package (#587)
* move weaver into assets folder

* disable tests for now

* asmdef

* add logs

* Use UNET's WeaverRunner code, slightly modified to find Mirror assembly

* Use UNET's 2019.2 package Weave function changes

* compiler messages error checked moved into separate function

* fix typo

* syntax

* replace 'var'

* rename

* replace var

* fix log

* update comment

* syntax

* rename to assemblyPath. no need for an extra variable.

* remove extra variable

* fix typo

* remove old code

* don't use .Contains to find Mirror dll. that's crazy. would fail for all DLLs in Mirror folder.

* look for 'this' assembly separately

* separate unityEngine assembly search

* add comment

* move null check up

* move null check upwards

* move outputDirectory down

* check process result properly

* use our previous way to find unity engine dll

* rename to unityEngineCoreModuleDLL again

* improve output directory construction

* move unityengine dll finding upwards

* move foundThisAssembly down, where it is used

* add comments

* split dependency code into separate functions

* add TODO

* store this assembly in a variable

* split dependency search depending on if we found assembly or not

* move usesMirror logic into if and out of 'not found' else

* syntax

* improve order

* GetNonDynamicAssemblyDirectories helper function

* check File.Exists instead of exception

* improve comment

* rename HlapiRuntimeAssemblyName to MirrorAssemblyName

* reuse MirrorAssemblyName

* remove telepathy check

* rename to MirrorRuntimeAssemblyName

* add MirrorWeaverAssemblyName

* reuse name consts

* don't use contains to check if assembly depends on Mirror

* add actions for testing again

* make CompilationFinishedHook public so it can be used by tests

* fix typo

* Mirror.Tests.asmdef references weaver asmdef

* reenable tests

* pass error handlers to Weaver Processing for tests to work
2019-03-13 12:17:04 +01:00
Liu
dea7b58792 Fix network animator doesn't sync float value as expected (#589)
Maybe we should do float sync when the Abs of newValue - lastValue > 0.001f
2019-03-13 12:15:34 +01:00
vis2k
b0ef89a0d9 resave scenes because of new sceneIDs 2019-03-12 18:45:42 +01:00
MrGadget
303d0f4b3a Reverted spelling error from #537 (#584) 2019-03-11 18:51:34 -05:00
rodolphito
dd362b18a0 Fixed the NetworkAnimator issue I introduced in the bandwidth fix. This should also further improve bandwidth, too. (#576) 2019-03-11 08:54:46 +01:00
Paul Pacheco
092c5663b6
NetworkReader should enforce read only (#580) 2019-03-10 12:04:45 -05:00
rodolphito
4aa1a4b169 Removed one liner braces from transport files. (#544) 2019-03-10 10:18:11 +01:00
vis2k
98a0e23413
Persistent sceneid (#563)
* add empty line

* persistent scene ids

* never assign scene ids at runtime

* fix warning

* fix 'sceneid is never assigned to' warning in play mode

* simplify bitwise operation

* set dirty even if only scene index byte changed

* improve log message

* assign build index byte in OnPostProcessScene to also work with unopened scenes and build index changes

* add comment

* improve log

* Add sceneid not set check

* Only PostProcess the objects from this scene.

* Interrupt build if there is an unopened scene that still needs sceneId assignments. This makes it 100% fail safe.

* improve comment and error message

* clear build index byte before or-ing into it
2019-03-08 20:24:18 +01:00
vis2k
508ba558fc NetworkManager: headless start moved to Start() because Awake() is for initialization. 2019-03-07 15:30:23 +01:00
vis2k
3a86bd501a headless start doesn't unnecessarily set tick rate anymore. StartServer already takes care of that. 2019-03-07 15:27:15 +01:00
vis2k
8b85e1c846 NetworkIdentityEditor: create GUIContent directly 2019-03-07 13:39:30 +01:00
vis2k
f3738d87d7 NetworkAnimatorEditor: create GUIContent directly 2019-03-07 13:39:30 +01:00
rodolphito
ca7824bbc1 Fixed animator bandwidth problem. (#536)
* Fixed animator bandwidth problem.

* Renamed xShadowCopy to lastXParamters, renamed val to be consistent with the reading value names, renamed newValue to newIntValue to be consistent with newFloatValue and newBoolValue.

* Removed Debug.log which slipped by.
2019-03-06 22:52:26 +01:00
MichalPetryka
9afefbdce7 Adjusted line endings, encoding and trimmed whitespaces at EOL (#561) 2019-03-06 18:08:48 +01:00
rodolphito
896551eb00 Finished replacing comment walls with regions. (#558) 2019-03-06 10:53:35 -06:00
vis2k
17ab8ae30a add empty line 2019-03-06 14:42:22 +01:00
rodolphito
ca57f1180c Removed trailing whitespace (#556) 2019-03-06 09:08:34 +01:00
rodolphito
98284e4253 Removed single line braces from NetworkWriter. (#545)
* Removed single line braces from NetworkWriter.

* Undid alignment.
2019-03-05 18:17:42 -06:00
vis2k
ed64872163 NetworkIdentity.OnValidate: wrap in #if UNITY_EDITOR in case OnValidate is needed at runtime later 2019-03-04 17:43:51 +01:00
vis2k
8eb27ea0af Syntax 2019-03-04 17:42:24 +01:00
rodolphito
f6d89c763f Removed comment divider thingies and used regions where applicable. Reordered a bit of code to make the regions make sense. (#532) 2019-03-04 10:04:54 +01:00
rodolphito
f324c0df94 Removed SetInstanceId by making netId setter internal. (#510)
* Removed SetInstanceId by making netId setter internal.

* Split isServer into multiple lines as per vis' suggestion.
2019-03-04 10:02:00 +01:00
rodolphito
15c3991905 Removed braces from everything else. (#551) 2019-03-04 09:57:27 +01:00
rodolphito
c1179fbd0d Renamed UNetInvokeType to MirrorInvokeType. (#553) 2019-03-04 09:56:59 +01:00
rodolphito
8141c44e50 Brace crunching (#554)
* Made bracing consistent in WeaverTests.

* Made bracing consistent everywhere else.
2019-03-04 08:48:28 +01:00
rodolphito
335ed683a5 Remove one liner braces in NetworkManager. (#547) 2019-03-04 08:47:11 +01:00
rodolphito
0790dd2ac9 Remove one liner braces on NetworkServer. (#548) 2019-03-04 08:46:54 +01:00
rodolphito
b3e6194665 Remove one liner braces. (#550) 2019-03-04 08:44:39 +01:00
rodolphito
45e886e2c4 Removed one liner braces in NetworkIdentity. (#546) 2019-03-04 08:44:27 +01:00
rodolphito
a9deb56282 Remove one liner braces in ClientScene (#549) 2019-03-04 08:43:33 +01:00
Paul Pacheco
70cfe9e8ce Websocket transport should be namespaced (#542) 2019-03-04 08:42:17 +01:00
Paul Pacheco
9a0af7cb55
Allow users to unpack messages too (#543) 2019-03-03 18:06:36 -06:00
Paul Pacheco
4749abd307
Move GetId<T> to MessagePacker (#540)
Now we have the logic of how many bits in just one place and we free up MessageBase for eventually converting to an interface
2019-03-03 14:02:34 -06:00
Paul Pacheco
e4fbbeddc3 Simplify add player extra data (#537)
* Simplify add player extra data

* Pass byte[] in the client too

* Renamed to extra message
2019-03-03 19:53:24 +01:00
vis2k
001cec6d82 NetworkManager.InitializeSingleton: set active transport AFTER setting singleton or destroying self. not before. Otherwise we would set it to a transport that is destroyed a moment later. 2019-03-03 18:19:07 +01:00
vis2k
440a6dfc6f NetworkManager.InitializeSingleton: show warning if destroying self. No need to show an error, since this can be completely normal if we use zones/multiple scenes and switch back to the main scene, which still has a networkmanager. 2019-03-03 18:16:29 +01:00