Commit Graph

360 Commits

Author SHA1 Message Date
vis2k
c7524cb7f1 NetworkClient.Update: remove unnecessary checks 2019-02-26 09:01:09 +01:00
vis2k
d42c13ad15 comment out unused function 2019-02-26 09:00:16 +01:00
vis2k
2c54ab3722 NetworkClient.connection via property 2019-02-26 08:59:43 +01:00
vis2k
605c4d471c rename m_ClientId to clientId 2019-02-26 08:57:12 +01:00
vis2k
4634f0632e comment out unused GenerateConnectError 2019-02-26 08:55:04 +01:00
vis2k
f87f00effa remove unused ctor 2019-02-26 08:54:20 +01:00
vis2k
c3b6fc5f4e syntax 2019-02-26 08:53:44 +01:00
vis2k
bb3bf0635b
Networkclient active (#448)
* use NetworkClient.active directly

* add comment
2019-02-26 08:50:59 +01:00
vis2k
24b3b0d0fb
Networkclient singleton (#447)
* NetworkClient.allClients replaced with singleton because there is only ever one client.

* use this()

* remove redundant log
2019-02-25 22:01:42 +01:00
vis2k
6c229c8c58 LocalClient: add internalmsgs comment 2019-02-25 20:27:12 +01:00
vis2k
39ec1fd256
0gc recv (#445)
* Protocol.UnpackMessage returns reader instead of content to avoid manually extracting content, just to create a reader from it in all callers

* Create NetworkReader outside of Protocol.Unpack
2019-02-25 20:15:47 +01:00
vis2k
647ff39d3f remove trailing whitespaces 2019-02-25 16:59:21 +01:00
vis2k
745519982e
Merge pull request #443 from vis2k/0gc
0gc
2019-02-25 13:57:31 +01:00
MrGadget
3735b3bd72 Update NetworkLobbyManager.cs (#442)
Removed two unused methods
2019-02-25 06:27:27 -06:00
vis2k
086de4bf88 NetworkServer.SendToReady/All/Observers: only pack message once instead of repacking it for each one again. This should avoid giant amounts of allocations (PackMessage->Writer.ToArray()) and computations 2019-02-24 22:52:42 +01:00
vis2k
10c5592f75 NetworkConnection.SendBytes made internal so it can be used by NetworkServer 2019-02-24 22:52:29 +01:00
vis2k
5e09d13d6e NetworkIdentity: cache UNetUpdate UpdateVarsMessage 2019-02-24 22:27:02 +01:00
vis2k
7392de2790 Protocol.PackMessage caches writer and takes message as parameter to serialize it directly into the writer after writing the message type. 2019-02-24 22:20:45 +01:00
vis2k
6c3401c4fe OnSerializeAllSafely: cache writer 2019-02-24 22:11:33 +01:00
Paul Pacheco
7323d450ad Add MIRROR define and version (#437)
* Add MIRROR define and version

* Update PreprocessorDefine.cs
2019-02-24 20:35:14 +01:00
Paul Pacheco
34392915c8 NetworkMessage can be value type. It eliminates per message allocation (#417) 2019-02-24 20:32:19 +01:00
MrGadget
4a59f563e0 Network Lobby Updates (#438)
* Fixed 1 link to be relative
Removed Wiki link from ReadMe

* Made ClientLoadedScene virtual
Updates to scene object references
Scene and vsync handling improvements
Minor cleanup.

* removed all use of vSyncCount

* Fixed bug with ReadyToBegin being incorrectly set
2019-02-24 20:31:13 +01:00
Paul Pacheco
567fa8acf5 Use C# 7 pattern matching 2019-02-23 08:28:36 -06:00
Paul Pacheco
80a4b9d139 Simplify with auto properties 2019-02-23 08:27:26 -06:00
Paul Pacheco
8fc66d3b26 Simplify with auto properties 2019-02-22 19:36:35 -06:00
Paul Pacheco
6ab0a0a7c2 use C#7 out variable declaration 2019-02-22 19:17:15 -06:00
Paul Pacheco
b45d52c765 use C#7 out variable declaration 2019-02-22 19:08:50 -06:00
Paul Pacheco
1191db75d0 We no longer support unity < 2018.3 2019-02-22 19:05:36 -06:00
Paul Pacheco
3ed430a6d1 use C#7 out variable declaration 2019-02-22 19:03:16 -06:00
Paul Pacheco
992bc8ac4e use C#7 out variable declaration 2019-02-22 19:02:10 -06:00
Paul Pacheco
6018f4d9db use C#7 out variable declaration 2019-02-22 19:01:24 -06:00
Paul Pacheco
505d2b85ad use C#7 out variable declaration 2019-02-22 18:59:35 -06:00
Paul Pacheco
9f21421d33 Simplify with auto properties 2019-02-22 18:58:54 -06:00
Paul Pacheco
95fd789ef4 use C#7 out variable declaration 2019-02-22 18:57:49 -06:00
Paul Pacheco
3573294d33 use C#7 out variable declaration 2019-02-22 18:54:44 -06:00
Paul Pacheco
8cff5e3f7d use C#7 out variable declaration 2019-02-22 18:54:00 -06:00
Paul Pacheco
28f3875110 remove redundant initialization 2019-02-22 18:51:09 -06:00
Paul Pacheco
6e1087a02f remove redundant initialization 2019-02-22 18:50:45 -06:00
Paul Pacheco
76af9ecec9 remove redundant initialization 2019-02-22 18:50:22 -06:00
Paul Pacheco
4772c4445c remove redundant initialization 2019-02-22 18:49:08 -06:00
Paul Pacheco
b673167a9e Fix indentation 2019-02-22 18:48:46 -06:00
Paul Pacheco
efac99813c Simplify object initialization 2019-02-22 18:47:45 -06:00
Paul Pacheco
d2eac37aa9 Simplify list initialization 2019-02-22 18:45:58 -06:00
Paul Pacheco
792a356cdb We require 2018.3 now 2019-02-22 18:45:16 -06:00
Paul Pacheco
0309f0b6f9 Use C#7 pattern matching 2019-02-22 18:43:18 -06:00
Paul Pacheco
5cc23fcc35 Make field readonly 2019-02-22 18:42:41 -06:00
Paul Pacheco
788c26a3fa Simplify object initialization 2019-02-22 18:41:28 -06:00
Paul Pacheco
d5112fd65c Remove redundant initialization 2019-02-22 18:40:11 -06:00
Paul Pacheco
c7e22d583c Remove redundant initialization 2019-02-22 18:39:36 -06:00
Paul Pacheco
3755b6bbf0 C# 7 syntax 2019-02-22 18:38:11 -06:00
vis2k
d3afa9f26f Utils.IsHeadless so it can be reused by other classes if needed. 2019-02-22 20:43:25 +01:00
vis2k
2a9d7e2df3 Upgrade to Unity 2018.3.6 to fix #427 and to prepare for LTS version 2019-02-22 09:29:39 +01:00
Chris Langsenkamp
7e7683766f Network Lobby Manager & Lobby Player (#356)
* Initial Commit with Unity's Network Lobby Components

* Lobby Components WIP

* Massive simplifications and structural changes to NetworkLobbyManager and NetworkLobbyPlayer

* Replaced more default messages with Command structure resulting in further simplification and less LOC

* Completed removal of messages

* Code Formatting and GUI Layout

* Fixed bugs and finished Remove feature in UI

* Added Network Lobby Manager Doc

* Network Lobby Docs

* Network Lobby Player Doc

* Updated doc and image about Offline Scene

* changed to PNG

* Added Lobby components to navigation

* Conformed to naming convention
Removed some leftover cruft
Removed maxPlayers (redundant to maxConnections)
Trapped and killed null ref in OnServerDisconnect

* Fixed mistake in OnServerDisconnect

* Fix Active Scene check

* Alow clean switch to Offline scene

* Add Help URL attributes to components

* Added Help URL Attributes

* Fixed OnGUI logic error.

* Added Example and README

* Fixed Disconnect handler

* Updated Docs

* Added Header for Inspector

* Finished Lobby Example Minigame

* Minor cleanup

* Set targetFramerates

* Code Cleanup
Changed to extended Lobby Manager for player Indexes & colors

* Minor changes to align with Mirror's NetworkManager

* Fixed logic error

* SyncVar Hook Workaround
Random Start Positions

* Revert making CallOnClientEnterLobby public

* Added documentation to the extension

* Minor code rearrangement

* Made OnGUI virtual so it can be overridden.
Added AllPlayersReady bool for convenience to extenders
Start Game enhancement to example.

* added comments

* Corrected namespaces and usings

* Reworked DontDestroyOnLoad
LobbyPlayer: Moved code from OnStartClient to Start
Added LobbyPlayerExt to Lobby Example
Code cleanup, added regions
Fixed Start Game button bug

* Final push of Lobby example to make sure it's complete.

* Improved Lobby Example

* Code cleanup

* Added ground texture
Set player camera angle
Adjusted lighting angle

* Updated ReadMe
Cleaned up privates
Fixed example to use SetParent
Changed to 5 max connections in example

* Prefab name fixes due to Mirror master's changes
Changed camera handling and GamePlayer Prefab
Two more SetParent fixes
Demoted two warnings to information
Added more comments to example scripts

* Revisions based on Vis2K review...more to come.

* Added f's where assigning literals to floats

* Removed manual calls to SyncVar Hooks because the bug is now fixed.

* Changed to GUILayout

* wrapped in namespace

* Changed to GUILayout

* All changes per peer review

* Renamed folder to Lobby.

* Fix due to change in Mirror 1691

* Renamed Scenes
Added LobbyScene property to OfflineGUI script.
2019-02-20 16:58:50 +01:00
vis2k
82d4cf08ff Revert "ClientScene.OnSpawnPrefab and NetworkManager.OnServerAddPlayerInternal: spawn objects with prefab names to avoid unnecessary "(Clone)" suffix from Unity. otherwise we need a name sync component in all games that show the names, e.g. MMOs for all monsters. This way we only need name sync components for objects that actually do change names, e.g. players." because of issue #426
This reverts commit 6a33c2d8bf.
2019-02-20 10:19:17 +01:00
Paul Pacheco
dfd0e02125 Fix #372, call syncvar hook for spawn (#410)
* Fix #372, call syncvar hook for spawn

* Rebuilt the weaver with the changes
2019-02-18 13:07:36 +01:00
vis2k
b7ef2b3521
Fix #421 race condition by calling Transport LateUpdate after all other LateUpdates. Transport needs to send and apply data onto latest game state at all times. (#424) 2019-02-18 11:56:38 +01:00
Paul Pacheco
143404aab5 Remove unused import 2019-02-17 20:12:42 -06:00
Paul Pacheco
95a629686d Simplify attribute name 2019-02-17 20:04:16 -06:00
Paul Pacheco
91760d88e3 Simplify with auto properties 2019-02-17 20:02:10 -06:00
Paul Pacheco
2114765668 Simplify more with auto properties 2019-02-17 19:59:17 -06:00
Paul Pacheco
e54a23a286 Simplify with auto properties 2019-02-17 19:57:34 -06:00
Paul Pacheco
c0cc77d062 Simplify with auto properties 2019-02-17 19:55:51 -06:00
Paul Pacheco
fc203dd89e Simplify by using property 2019-02-17 19:53:11 -06:00
Paul Pacheco
559c1f155a Simplify by using auto properties 2019-02-17 19:52:07 -06:00
vis2k
ee1b1c0b2b Telepath updated to latest version 2019-02-17 09:00:10 +01:00
vis2k
2ec7de32df Fix LLAPI.ToString 2019-02-17 08:55:28 +01:00
Chris Langsenkamp
ea3b48ab87 Replaced vars with explicit types (#411) 2019-02-17 08:45:13 +01:00
vis2k
8c441e8fe9
Transport.ServerGetClientAddress (#412) 2019-02-17 08:44:19 +01:00
Paul Pacheco
82cf23d348 Improve some comments 2019-02-15 06:29:54 -06:00
vis2k
bfe6e6aa28 better comments 2019-02-15 13:12:38 +01:00
vis2k
6a33c2d8bf ClientScene.OnSpawnPrefab and NetworkManager.OnServerAddPlayerInternal: spawn objects with prefab names to avoid unnecessary "(Clone)" suffix from Unity. otherwise we need a name sync component in all games that show the names, e.g. MMOs for all monsters. This way we only need name sync components for objects that actually do change names, e.g. players. 2019-02-15 13:02:18 +01:00
vis2k
871fe9a7f4 syntax 2019-02-15 12:43:49 +01:00
vis2k
bc52ff5e62 TelepathyTransport: remove old comments 2019-02-15 12:41:12 +01:00
vis2k
ab30ac6141 Fix #223: NetworkServer.DestroyPlayerForConnection tries to destroy both player controller and player owned objects if not null. No need to return early. 2019-02-14 13:38:34 +01:00
vis2k
5899cf81b5 refactor the fix for #389 2019-02-14 13:32:07 +01:00
uwee
0187163f70 fix for inactive scene in editor (#389)
* fix for inactive scene in editor

* changed to use #if UNITY_EDITOR
2019-02-14 13:26:53 +01:00
vis2k
9b232b0551 Revert "Source based weaver (#319)"
This reverts commit 8d7613b9b6.
2019-02-13 15:59:32 +01:00
vis2k
d159e9c78b
Configurable Server Tickrate (#390)
* Configurable Server Tickrate

* only  Update
2019-02-11 10:49:44 +01:00
Paul Pacheco
8d7613b9b6 Source based weaver (#319)
* Example for weaver issue

* Fix #314,  weave assemblies built before the weaver

* Don't need the example anymore

* Update CompilationFinishedHook.cs

* Dont try to load assemblies while they are being modified

* Revert "Weave dll again. Plan B for #314 (#323)"

This reverts commit b20cb4280c.
2019-02-09 18:14:26 +01:00
Paul Pacheco
1249ec25ac Fix #371, NetworkAnimator can support more than 6 variables (#387) 2019-02-08 09:32:36 +01:00
Chris Langsenkamp
d1626f7842 Add a virtual method that fires on the client right before scene change so devs can implement client-side work / prep / cleanup / visuals / etc. based on what scene is about to be loaded. (#383)
Documentation updates included.
2019-02-07 13:37:54 +01:00
Chris Langsenkamp
f1bdd8620c Update TelepathyTransport.cs (#382)
Added Help URL
2019-02-07 12:26:45 +01:00
Gabe Brown
a5515b099e BUG: TelepathyTransport delivers messages even when this.enabled == false across scene loads (#379)
* BUG: Fix issue where setting this.enabled = false doesn't get honored when transitioning from Local Offline Host to Connected Server.

* Update TelepathyTransport.cs
2019-02-07 10:13:23 +01:00
Chris Langsenkamp
5e642af577 Update NetworkManager.cs (#376)
Make "Multiple NetworkManagers detected" a full time error not hidden by log filter.
2019-02-06 15:30:16 +01:00
vis2k
548876a9b6 Syntax 2019-02-05 10:07:02 +01:00
Paul Pacheco
fba7b3f826 Add multiplex transport (#358)
* Add multiplex transport

* Simplify Availability method

* Update MultiplexTransport.cs
2019-02-05 10:02:32 +01:00
vis2k
4c749df4fa Telepathy updated to latest version 2019-02-02 14:37:32 +01:00
vis2k
ca4ef1d8b3 LLAPITransport: expose connectionconfig and globalconfig in inspector 2019-02-02 11:08:52 +01:00
vis2k
de4b08d066 LLAPITransport: fix localhost connections 2019-02-02 11:08:20 +01:00
vis2k
1cc125d6c6 LLAPITransport: fix max connections error 2019-02-02 11:05:16 +01:00
vis2k
a210e8ce65 LLAPITransport: fix hostId out of bounds error 2019-02-02 11:02:45 +01:00
vis2k
dbbdcd02c7
Onserialize improvements (#302)
* position magic instead of allocating writers

* premature optimizations here we come

* simplify. less magic.

* better logging

* fix ondeserialize bugs caused by readpacketuint32 instead of readint32
2019-02-01 13:23:21 +01:00
vis2k
e690360f41 Updated Telepathy to latest version: Net 4.x, ConcurrentQueue/Dictionary, Fixed growing thread count bug in #347 2019-02-01 13:00:54 +01:00
vis2k
e6f5511d24 TelepathyTransport.ToString: fix NRE in server-only mode while listener wasn't created yet 2019-02-01 12:02:58 +01:00
Chris Langsenkamp
22e88cd8d4 Superfluous Code (#366)
Immediately after the deleted lines is a call to `OnClientDisconnect(netMsg.conn);` which calls `StopClient();` which has the exact same code on line 344 as what I'm proposing be deleted here.
2019-02-01 09:48:49 +01:00
vis2k
cb6bb75ee1 Use LateUpdate in Transports. Fixes race condition where Mirror would complain about 'Observer not ready for ...' when stress testing uMMORPG after bots machine was shutdown. 2019-01-31 16:19:14 +01:00
Chris Langsenkamp
46befb6682 Add Help URL attributes to components (#359) 2019-01-31 12:16:31 +01:00
Paul Pacheco
ee5befdd6d Body expressions 2019-01-30 19:11:05 -06:00
Paul Pacheco
52887c2292 Body expressions 2019-01-30 19:10:53 -06:00
Paul Pacheco
c98f0c050c Body expressions 2019-01-30 19:10:21 -06:00
Paul Pacheco
c2fbda6755 Body expressions 2019-01-30 19:10:12 -06:00
Paul Pacheco
869ae95138 Body expressions 2019-01-30 19:09:57 -06:00
Paul Pacheco
027dd3f91e Use body expressions 2019-01-30 19:03:57 -06:00
Paul Pacheco
00c0d5a800 Use body expressions 2019-01-30 19:03:09 -06:00
Paul Pacheco
b816045c06 Null-conditional 2019-01-30 18:40:21 -06:00
Paul Pacheco
07e3d48dde null-conditional operator 2019-01-30 18:37:21 -06:00
Paul Pacheco
17eedda836 null-conditional operator 2019-01-30 18:33:01 -06:00
Paul Pacheco
e15d3cdd71 Removed redundant conditional 2019-01-30 18:30:01 -06:00
Paul Pacheco
332416432e .Net 4.x object initialization syntax 2019-01-30 18:25:26 -06:00
Paul Pacheco
d4cd4aef06 Use null-conditional operator 2019-01-30 18:21:12 -06:00
Paul Pacheco
beeef0cb96 Use null-conditional operator 2019-01-30 18:15:09 -06:00
Paul Pacheco
915dbd7af7 4.x syntax 2019-01-30 18:09:41 -06:00
Paul Pacheco
67767cb131 Fix namespace 2019-01-30 18:09:41 -06:00
uwee
0b5d325062 Removed hostPort as its no longer used. (#360) 2019-01-30 22:12:49 +01:00
Paul Pacheco
ed4c577680 This class should never be instantiated 2019-01-30 07:58:22 -06:00
Paul Pacheco
f6af36d74b 4.x syntax 2019-01-30 07:56:55 -06:00
Paul Pacheco
138dfaa6e1 4.x syntax 2019-01-30 07:55:34 -06:00
Paul Pacheco
7d081da541 4.x syntax 2019-01-30 07:53:04 -06:00
Paul Pacheco
306f974e0c 4.x syntax 2019-01-30 07:39:21 -06:00
Paul Pacheco
ca6224d238 4.x syntax 2019-01-30 07:37:53 -06:00
Paul Pacheco
63f6e40289 4.x syntax 2019-01-30 07:32:43 -06:00
Paul Pacheco
272ac79409 4.x syntax 2019-01-30 07:31:40 -06:00
Paul Pacheco
a0b5d15362 4.x object initialization syntax 2019-01-30 07:27:30 -06:00
Paul Pacheco
b67fe66a91 4.x syntax 2019-01-30 07:24:58 -06:00
Paul Pacheco
69f07547c7 4.x object initialization syntax 2019-01-30 07:22:19 -06:00
Paul Pacheco
4bc87f74fd 4.x syntax 2019-01-30 07:20:52 -06:00
Paul Pacheco
39385d15ee Reduce server CPU usage by limiting framerate 2019-01-29 19:23:41 -06:00
Paul Pacheco
1b915fbffb Now we can stop even while connecting.
In some transports (Ignorance),  when the player clicks "Connect",   the transport goes in Connecting state. If the player clicks Disconnect
the transport remains in Connecting state.

This gives the transport a chance to cancel the Connecting process.  This fix has been tested for quite some time in 2018 branch
2019-01-29 19:07:18 -06:00
Paul Pacheco
6c163d1a45 Fix NRE when disconnecting 2019-01-29 19:01:03 -06:00
vis2k
2e0c38aec8 Upgrade to Unity 2018.2.20f1 2019-01-29 22:44:24 +01:00
vis2k
b20cb4280c
Weave dll again. Plan B for #314 (#323)
* weaver as dll again

* add plugins/weaver folder with latest weaver dll

* Remove unnecessary Debug-Editor/Release-Editor configurations

* Remove old comment

* Build into Assets/Mirror/Plugins directly
2019-01-28 18:20:18 +01:00
vis2k
1a5ce38163
Dispatch Messages as Events - via UnityEvent (#350)
* Transport as events - via UnityEvent

* call RemoveTransportHandlers();

* hide event in inspector until we actually need them
2019-01-27 20:58:22 +01:00
Callum Ferguson
f98d3405f5 Fixed bug allowing one more than max connections to join (#349) 2019-01-27 11:12:40 +01:00
Paul Pacheco
ac07ac8941
Renamed class for clarity (#346) 2019-01-26 09:24:22 -06:00
Paul Pacheco
3a6b37c779
Assign transport in inspector (#344)
* Assign transport in inspector

* Update NetworkManager.cs

* Update NetworkManager.cs

* Update NetworkManager.cs

* Update NetworkManager.cs

* Move transport under NetworkInfo

* Updated scene with new properties
2019-01-26 08:20:33 -06:00
vis2k
90e8fabde9 ITransport converted to Transport as MonoBehaviour 2019-01-26 10:32:16 +01:00
vis2k
41a385afd8 NetworkServer HandleConnection: check if connectionId already in use 2019-01-25 15:02:57 +01:00
vis2k
e31a3a3c4d NetworkServer HandleConnection: >0 check added to fix #321 2019-01-25 15:00:26 +01:00
vis2k
fe02dcab4c Syntax 2019-01-24 20:00:09 +01:00
Paul Pacheco
9c990b938f Remove Network Manager Editor (#310)
* Remove Network Manager Editor

* Add reorderable list to prefabs

* Move Start On Headless to more logical place
2019-01-24 16:56:25 +01:00
vis2k
53fc33cce8 TelepathyTransport: added NoDelay option 2019-01-24 12:09:28 +01:00
vis2k
4f61dc9bc5 Updated Telepathy again. Forgot to check SendMessagesBlocking return value before. 2019-01-22 19:35:35 +01:00
vis2k
b3eb092878 NetworkTransformBase: remove unnecessary connectionToServer check 2019-01-22 16:34:12 +01:00
vis2k
98b786514c Telepathy updated to latest version (performance improvements under heavy load) 2019-01-22 15:45:10 +01:00
vis2k
e969fcf26c More #if fixes (again) 2019-01-21 14:38:53 +01:00
petris
15c5926041 Fix #if 2019-01-20 09:28:17 -06:00
vis2k
3396e56133 Telepathy updated to latest version (Stop always returns and .Active is definitely false afterwards) 2019-01-20 14:26:24 +01:00
vis2k
12f0ba6a64 NetworkTransformBase: fix interpolation being applied to a client's object that he had authority over. fixes #273 2019-01-18 17:50:43 +01:00
vis2k
1b90647f72 Pong: only simulate ball physics on server. Fixes #304 2019-01-18 17:34:59 +01:00
vis2k
32ed3cb540 Pong: Use OnStartServer instead of Server and ServerCallback 2019-01-18 17:32:03 +01:00