Commit Graph

1947 Commits

Author SHA1 Message Date
MrGadget
9257112c65
feat: Implemented NetworkReaderPool (#1464)
* Implement NetworkReaderPool

* Reset Position

* Debug logging removed

* SetBuffer methods internal

* Edited comment
2020-02-01 14:05:09 +01:00
Chris Langsenkamp
d0e493ac92 Updated ScriptTemplates 2020-01-31 21:25:38 -05:00
Chris Langsenkamp
a28ccbb477 Allow Room Manager Additional GamePlay Scenes 2020-01-31 21:18:01 -05:00
Chris Langsenkamp
1433d369c8 Applied Mirror Icon to Discovery components 2020-01-30 15:40:23 -05:00
MrGadget
28212aa8d7
Message Tests (#1463)
* Added UpdateVarsMessageTest

* commit staged

* Added SpawnMessageTest

* Delete MessageTests.cs

* Updated SpawnMessageTest

* Updated SpawnMessageTest

* Updated SpawnMessageTest

* Added RemovePlayerMessageTest

* Added ReadyMessageTest

* Added ObjectSpawnStartedMessageTest

* Added ObjectSpawnFinishedMessageTest

* Added ObjectHideMessageTest

* Added ObjectDestroyMessageTest

* Added NotReadyMessageTest

* Added DisconnectMessageTest

* Added ConnectMessageTest

* Added NetworkPingMessageTest

* Updated NetworkPingMessageTest

* Added NetworkPongMessageTest

* Updated ErrorMessageTest

* Tests in alphabetic order
2020-01-30 09:42:05 +01:00
MrGadget
e44ca7f334
BasicAuthenticatorTest (#1459)
* First Draft

* Second Draft

* Third Draft

* First 2 tests that work
2020-01-29 20:44:30 +01:00
vis2k
93a9eb8339 Disable two telepathy tests that sometimes fail in Unity's mono version 2020-01-29 20:29:21 +01:00
vis2k
d0d77b661c fix: Telepathy reverted to older version to fix freezes when calling Client.Disconnect on some platforms like Windows 10 2020-01-29 20:20:18 +01:00
Paul Pacheco
e75b45f888
feat: LAN Network discovery (#1453)
* Fix typo

* Updated Changelog

* first commit

* Add example for discovery

* NetworkDiscovery component should be added

* fixed UI

* Fix some warnings

* refactor: network discovery reimplemented

* Remove unused GUIstyle

* Fix namespaces

* Just send to the broadcast address

* Fix indentation

* Log errors in ClientListen

* Code formatting cleanup, HelpURL's fixed, comments revised. (#38)

* Transport can now provide server uri

* work with any transport by passing uri

* Move discovery initialization to start

* feat: Discovery can now be easily customized per game

* Use generics to simplify api

* Renamed ServerInfo -> ServerResponse

* Rename method

* Moved up one folder

* Move ServerId to NetworkDiscovery

* tests now reference Mirror.Discovery

* Cleaned up blank space

* Disable GUID apparently fixes it

* Use UnityEvents for ease of use

* Remove noisy log

* remove blank spaces

* Process request receives the client endpoint

* use consistent name for parameters

* Remove white space

* Keep it minimalistic,  we don't need age or totalPlayers

* Comment non obvious property

* Don't break transports

* Documentation and image

* Code formatting

* removed privates

* Added Range attribute

* Rename ActiveDiscoverySecondInterval

* Revised NetworkDiscovery doc

* Swapped field order (Cosmetics)

* Added ScriptTemplate

* Update ProjectSettings/ProjectVersion.txt

* Updated ScriptTemplate

* Updated xml comment and ScriptTemplate

* Updated ScriptTemplate

* Improve xmldocs

* Improve xmldocs

* Remove leftover comment

* Renamed event

* Moved discovery inside components

* Keep parameter names consistent

* Provide a guide for network discovery

* XML Comments and ScriptTemplate

* Moved Credits

* fixed template

* Removed comment

* removed comment

* xml comments and template

* fixed method name

* fixed method and template

* removed semicolon

* fixed template

* fixed method and template

* fixed template

* fixed template

* Fix copypasta error

* Show error if no url is available

Network Discovery now shows an error if the transport does not support
providing Url

* Grammar fix

* Extended Template

* fixed template

* Added guide link to template

* New image

* Update NetworkDiscovery.md

* Updated Guid Doc and Template

* fixed bullets

* Remove unnecessary using

* Make it like Mirror's

* Update ScriptTemplates Image & Zip

* Removed from Deprecations

* Updated ChangeLog

* Updated ChangeLog

* Update NetworkDiscovery.md

Remove last line...this was copied to the paragraph above the code block

Co-authored-by: MrGadget <chris@clevertech.net>
2020-01-29 09:56:29 +01:00
MrGadget
9621b0bd30
Update PreprocessorDefines (#1456)
* Update PreprocessorDefines

* Removed 8

* Update PreprocessorDefine.cs
2020-01-29 09:53:39 +01:00
MrGadget
d52aa7e173 Prevent AddPlayer after Additve Scene operation (#1458) 2020-01-28 22:54:46 +01:00
Paul Pacheco
b916064856 breaking: Transports can now provide their Uri (#1454)
* Fix typo

* Updated Changelog

* first commit

* Add example for discovery

* NetworkDiscovery component should be added

* fixed UI

* Fix some warnings

* refactor: network discovery reimplemented

* Remove unused GUIstyle

* Fix namespaces

* Just send to the broadcast address

* Fix indentation

* Log errors in ClientListen

* Code formatting cleanup, HelpURL's fixed, comments revised. (#38)

* Transport can now provide server uri

* work with any transport by passing uri

* Move discovery initialization to start

* feat: Discovery can now be easily customized per game

* Use generics to simplify api

* Renamed ServerInfo -> ServerResponse

* Rename method

* Moved up one folder

* Move ServerId to NetworkDiscovery

* tests now reference Mirror.Discovery

* Cleaned up blank space

* Disable GUID apparently fixes it

* Use UnityEvents for ease of use

* Remove noisy log

* remove blank spaces

* Process request receives the client endpoint

* use consistent name for parameters

* Remove white space

* Keep it minimalistic,  we don't need age or totalPlayers

* Comment non obvious property

* Don't break transports

* Documentation and image

* Code formatting

* removed privates

* Added Range attribute

* Rename ActiveDiscoverySecondInterval

* Revised NetworkDiscovery doc

* Swapped field order (Cosmetics)

* Added ScriptTemplate

* Update ProjectSettings/ProjectVersion.txt

* Updated ScriptTemplate

* Updated xml comment and ScriptTemplate

* Updated ScriptTemplate

* Improve xmldocs

* Improve xmldocs

* Remove leftover comment

* Renamed event

* Moved discovery inside components

* Keep parameter names consistent

* Provide a guide for network discovery

* XML Comments and ScriptTemplate

* Moved Credits

* fixed template

* Removed comment

* removed comment

* xml comments and template

* fixed method name

* fixed method and template

* removed semicolon

* fixed template

* fixed method and template

* fixed template

* fixed template

* Fix copypasta error

* Show error if no url is available

Network Discovery now shows an error if the transport does not support
providing Url

* breaking: Make server uri mandatory

BREAKING CHANGE: Make the server uri method mandatory in transports

Co-authored-by: MrGadget <chris@clevertech.net>
2020-01-28 22:50:52 +01:00
MrGadget
a706ef72e2 Make the Dictionary public (#1457) 2020-01-28 08:49:50 +01:00
MrGadget
a7efb13e29 feat: Mirror Icon for all components (#1452)
* Apply Icon

* Assigned Icons

* Assigned Icons

* Updated ChangeLog
2020-01-27 18:00:27 +01:00
vis2k
ab7c28ea91 Telepathy Tests added 2020-01-27 14:53:43 +01:00
vis2k
4007423db2 fix: Telepathy updated to latest version. Threads are closed properly now. 2020-01-27 14:43:00 +01:00
vis2k
ef7993cac1 MessageTests: SyncEventMessageTest 2020-01-27 14:32:31 +01:00
vis2k
8d272a4107 MessageTests: RpcMessageTest 2020-01-27 14:32:31 +01:00
vis2k
0b2965af1c MessageTests: CommandMessageTest 2020-01-27 14:32:31 +01:00
MrGadget
49529db347 Restore Empty NetworkIdentityEditor (#1455) 2020-01-27 09:18:41 +01:00
vis2k
1a08f1b95d NetworkWriterTests: benchmark test so it's easier to check performance after changes 2020-01-26 13:12:39 +01:00
Paul Pacheco
0c2556ac64 feat: network writer and reader now support uri 2020-01-25 16:16:14 -06:00
MrGadget
71c0d3b2ee
feat: Network Scene Checker Component (#1271)
* Create Network Scene Checker Component

* Move objects to subscene in client

* Remove OnStartClient

* Rewritten with static dictionary

* Updated doc

* renamed image

* Replaced image

* fixed image name

* Changed to short-circuit return in Update

* Changed to using string for key since additive scenes may be unloaded

* Added null check

* Removed commented line

* Update Assets/Mirror/Components/NetworkSceneChecker.cs

Co-Authored-By: vis2k <info@noobtuts.com>

* Moved initializer to declaration

* Removed [Scene, SerializeField]

Co-authored-by: vis2k <info@noobtuts.com>
2020-01-25 15:48:47 -05:00
Chris Langsenkamp
e58f84758e set port to 7777 2020-01-25 00:38:21 -05:00
MrGadget
dde8c5d0c5 Remove m_sceneId (#1310)
* Remove m_sceneId

* remove commented code

* copied comment from removed field

* made it full public

* Added FormerlySerializedAs

* Added HideInInspector

* Updated example
2020-01-24 22:33:55 +01:00
Chris Langsenkamp
a82fe9191f Fixed Additive Scene Visualizer 2020-01-24 12:34:08 -05:00
MrGadget
c84b00336d Fix GetSceneIdenity name typo (#1450) 2020-01-23 11:46:03 -06:00
vis2k
84fc240d00 NetworkReaderTest: stopwatch not needed, Unity already shows the time 2020-01-23 15:56:16 +01:00
vis2k
2f7a67e3f9 NetworkReaderTest: benchmark test so it's easier to check performance after changes 2020-01-23 15:51:52 +01:00
Paul Pacheco
0ed8550c02 refactor: Move Editor tests to Tests/Editor (#1449) 2020-01-22 21:35:10 +01:00
vis2k
b5a4988331 FallbackTransportTest from paul 2020-01-22 11:55:56 +01:00
vis2k
9d7513925f NetworkReaderTest to reach 100% NetworkReader coverage 2020-01-22 09:51:06 +01:00
vis2k
e798ac45de MessagePackerTest: cover UnpackMessage non generic version 2020-01-22 09:46:30 +01:00
vis2k
5736dd8d05 MessagePackerTest: cover FormatException case 2020-01-22 09:30:09 +01:00
Chris Langsenkamp
17af872f99 Use conn instead of NetworkClient 2020-01-21 21:44:15 -05:00
Chris Langsenkamp
f778b4c399 Removed unnecessary using 2020-01-21 17:35:57 -05:00
Chris Langsenkamp
71bd09417c Removed MonoBehaviour inheritance 2020-01-21 17:23:14 -05:00
Chris Langsenkamp
388a338cfa Removed commented code 2020-01-21 17:16:08 -05:00
MrGadget
c147caf30c Added ErrorMessage Test (#1448) 2020-01-21 23:01:34 +01:00
Chris Langsenkamp
cbbe82e4d1 Make roomSlots work correctly for clients 2020-01-20 20:04:09 -05:00
vis2k
15c77c6926 NetworkTransform.SerializeIntoWriterTest 2020-01-20 11:02:11 +01:00
vis2k
875f19e030 Mirror.Tests asmdef references Mirror.Components asmdef 2020-01-20 10:54:59 +01:00
Chris Langsenkamp
eef97e9a52 Code cleanup 2020-01-19 23:34:53 -05:00
Chris Langsenkamp
c57c01a47a Updated Script Templates 2020-01-19 16:45:12 -05:00
MrGadget
268753c3bd fix: Fix Room Slots for clients (#1439)
* Fix Room Slots for clients

* Removed change to ServerChangeScene
2020-01-19 11:39:26 +01:00
MrGadget
cb4be4df78 Set AllPlayersready false in the Room scene (#1440) 2020-01-19 11:38:59 +01:00
MrGadget
e4c498312e Reorder properties with headers (#1437) 2020-01-17 12:09:08 +01:00
MrGadget
f69f1743c5 feat: Add Sensitivity to NetworkTransform (#1425)
* Add Sensitivity to NetworkTransform

* Removed commented lines

* Made them floats

* Tooltips

* Added comments

* Update NetworkTransformBase.cs

Co-authored-by: vis2k <info@noobtuts.com>
2020-01-16 09:06:25 +01:00
Chris Langsenkamp
bafe3b28fd Freshen Example Appearance 2020-01-13 22:05:08 -05:00
vis2k
2186f3c7d7 clean up Pong folder 2020-01-13 17:34:55 +01:00
vis2k
cb3d9f0d08 fix: Telepathy works on .net core again 2020-01-13 17:27:44 +01:00
Paul Pacheco
0c047f9227
Remove latin placeholder text in chat window (#1430) 2020-01-12 17:07:57 -06:00
Paul Pacheco
42a2f9b853
fix: Decouple ChatWindow from player (#1429) 2020-01-12 16:53:14 -06:00
MrGadget
a0c96f8518 fix: StopHost with offline scene calls scene change twice (#1409)
* Separate StopHostClient

* Added comments

* move comment

* add comment

* Changed to loadingSceneAsync check

* Update Assets/Mirror/Runtime/NetworkManager.cs

Co-authored-by: vis2k <info@noobtuts.com>
2020-01-12 00:12:46 +01:00
MrGadget
29c96b6bc0 made handlers private (#1426) 2020-01-11 21:38:09 +01:00
MrGadget
c30e4a9f83 feat: NetworkAnimator warns if you use it incorrectly (#1424)
* Added warnings to NetworkAnimator

* Updated ChangeLog

* pauls suggestions
2020-01-11 10:35:58 -06:00
MrGadget
f858f4d703 Rename WeaveExisingAssemblies to fix spelling (#1423) 2020-01-10 19:07:59 -06:00
MrGadget
dffdf02be5 feat: Network Animator can reset triggers (#1420) 2020-01-10 18:33:10 -06:00
MrGadget
7d472f21f9 perf: Use NetworkWriterPool in NetworkAnimator (#1421) 2020-01-10 18:10:06 -06:00
MrGadget
a4578458a1 perf: Use NetworkWriterPool in NetworkTransform (#1422) 2020-01-10 18:09:27 -06:00
vis2k
b9f52fdb46
breaking: fix: #1151 - assign SyncVars before calling the Hook. Hook now passes old and new value instead of changing it from new value to old value, as this would break all SyncVar Hook projects silently. (#1416)
* test

* new docs

* adjust CheckForHookFunction to expect two hooks

* update example

* update example

* update example

* update test

* update example

* SyncVar.set: store value in oldValue variable

* SyncVar.set: pass old value to hook too

* TODO

* SyncVar deserialize store value in oldValue variable (for simple types)

* SyncVar deserialize: pass old value to hook too (for simple types)

* add test for GameObject type

* fix comment

* SyncVar deserialize: set value before calling hook

* add TODO

* SyncVar.set: set value before calling hook

* replace tests

* GO test

* SyncVar deserialize: move oldvalue code higher up so it applies to GO/NI too

* syntax

* SyncVar deserialize: pass oldValue to hook (GO/NI types)

* SyncVar deserialize: set netid before calling hook (GO/NI types)

* update comment

* update comment

* update comment

* shorter

* comment, TODO

* put oldValue code into separate cases again

* fix SyncVarEqual comparing the same two __goNetId values

* get rid of tmpValue

* fix weaver tests

* remove TODO

* SyncVar deserialize simple types: get rid of tmpValue here too

* remove tests
2020-01-10 16:17:13 +01:00
vis2k
a1649dfb25 remove outdated comment 2020-01-10 12:36:18 +01:00
vis2k
49d93d814c NetworkClient.Shutdown calls Client.Disconnect as suggested in #923 2020-01-10 12:34:42 +01:00
vis2k
260cb49698 NetworkServer.Shutdown: add comment on why we call Transport.ServerStop, not Shutdown as suggested in #923 2020-01-10 12:30:01 +01:00
vis2k
fd7dc5e226 fix: #723 - NetworkTransform teleport works properly now 2020-01-09 09:15:47 +01:00
vis2k
2d59de801f fix #923: move NetworkManager.OnApplicationQuit Transport Shutdown code into Transport.OnApplicationQuit. Fixes a potential bug where the Transport wouldn't be shut down if someone doesn't use the NetworkManager. 2020-01-09 08:32:25 +01:00
vis2k
76a514aeec syntax 2020-01-09 08:32:20 +01:00
vis2k
651e709785
fix #1407: Check EnterPlayModeSettings and disable if needed for 2019.3 support (#1415)
* fix #1407: Check EnterPlayModeSettings and disable if needed for 2019.3 support

* add reference
2020-01-09 08:03:47 +01:00
vis2k
a3ffd1264c
fix: #1278 - only call initial state SyncVar hooks on clients if the SyncVar value is different from the default one. (#1414)
* move comment

* add comment

* fix: #1278 - only call initial state SyncVar hooks on clients if the SyncVar value is different from the default one.

* initialState test for an if

* !initialstate

* getting there

* closer

* works but incompatible stack heights message

* better comments

* better

* not needed

* syntax

* rename

* incompatible stack height fixed

* update comment

* remove first todo

* SAVE PROGRESS

* compare go/ni too

* whitespace

* update comments
2020-01-08 16:58:46 +01:00
vis2k
32abb70ae9 add comment 2020-01-08 13:27:11 +01:00
vis2k
aafe387899 add comment 2020-01-08 12:16:58 +01:00
vis2k
a71ecdba4a fix: #1380 - NetworkConnection.clientOwnedObjects changed from uint HashSet to NetworkIdentity HashSet for ease of use and to fix a bug where DestroyOwnedObjects wouldn't find a netId anymore in some cases. 2020-01-08 11:32:29 +01:00
vis2k
a2173d37db NetworkConnection.DestroyOwnedObjects clears the hashset afterwards 2020-01-08 11:04:57 +01:00
vis2k
43030ac917 NetworkConnection.DestroyOwnedObjects to move code out of NetworkServer 2020-01-08 11:04:17 +01:00
Chris Langsenkamp
6111021252 meta file 2020-01-08 01:34:09 -05:00
vis2k
228b32e1da fix: #1241 - Telepathy updated to latest version. All tests are passing again. Thread.Interrupt was replaced by Abort+Join. 2020-01-07 20:55:34 +01:00
vis2k
2dc13e9666
Merge pull request #1404 from vis2k/NetTransAuthority
fix: Use hasAuthority instead of isLocalPlayer
2020-01-07 16:24:27 +01:00
Chris Langsenkamp
3d3436c80a Renamed and added comment 2020-01-07 10:17:44 -05:00
vis2k
28803b90de
Merge pull request #1405 from vis2k/NetAnimClientAuthCheck
fix: Check clientAuthority in NetworkAnimator
2020-01-06 15:15:37 +01:00
vis2k
25277e00ad
Merge pull request #1406 from vis2k/Remove-DDOL-Escape
Remove DDOL escape
2020-01-06 15:15:07 +01:00
vis2k
bfe90857bb Log is enough for now 2020-01-06 12:51:01 +01:00
vis2k
474a9480a5 ConnectHost moved into FinishStartHost 2020-01-06 12:36:03 +01:00
vis2k
3eb11c9a2d FinishLoadScene uses new NetworkManager.mode. This way the host connection doesn't need to be connected before changing host server's online scene. This makes everything easier. 2020-01-06 12:35:56 +01:00
vis2k
b9c9a3c350 NetworkManager.mode to simplify FinishLoadScene afterwards 2020-01-06 12:35:49 +01:00
Chris Langsenkamp
5a728ac4e6 Remove DDOL escape 2020-01-06 06:04:08 -05:00
Chris Langsenkamp
00149f3a2d Fixed comment 2020-01-06 04:27:43 -05:00
Chris Langsenkamp
847d02cfda Add clientAuthority check 2020-01-05 20:01:42 -05:00
Chris Langsenkamp
7b1761ea1e Add clientAuthority check 2020-01-05 19:56:33 -05:00
MrGadget
039cf5af22
Use hasAuthority instead of isLocalPlayer
This allows non-player objects that have been assigned authority to the client to be moved around by the client and their positions updated from that client appropriately when clientAuthority is also true.
2020-01-05 18:50:13 -05:00
vis2k
7776049526 ConnectHost moved into FinishStartHost 2020-01-05 20:42:41 +01:00
vis2k
f33d90a4ca FinishLoadScene uses new NetworkManager.mode. This way the host connection doesn't need to be connected before changing host server's online scene. This makes everything easier. 2020-01-05 20:38:18 +01:00
vis2k
1fe1ca730c NetworkManager.mode to simplify FinishLoadScene afterwards 2020-01-05 20:35:00 +01:00
vis2k
ccb45a6215 FinishLoadSceneHost doesn't call OnClientSceneChanged if the scene changed because of a StartHost call. fixes a bug where AddPlayer was called twice in mrgadget's simple scenes example. 2020-01-05 20:30:22 +01:00
vis2k
df9c29a6b3 fix: FinishLoadSceneHost calls FinishStart host which now calls StartHostClient AFTER server online scene was loaded. Previously there was a race condition where StartHostClient was called immediately in StartHost, before the scene change even finished. This was still from UNET. 2020-01-05 19:49:26 +01:00
vis2k
4f169b021d add comment 2020-01-05 19:26:14 +01:00
vis2k
fadcd46eff add more comments 2020-01-05 19:14:44 +01:00
vis2k
5029bc5253 StartHost: add comment on what StartHostClient does 2020-01-05 19:14:02 +01:00
vis2k
7f7658ad75 add comment 2020-01-05 19:12:34 +01:00
vis2k
f7500a2a82 OnClientConnect: explain clientLoadedScene flag 2020-01-05 19:04:46 +01:00
vis2k
af878bd915
Merge pull request #1388 from paulpach/privatehandler
refactor: this should not be accessible
2020-01-03 09:49:06 +01:00
vis2k
654979aa3c
Merge pull request #1387 from vis2k/UpdateRoomExample
Room Example: NetworkManager moved to Offline scene
2020-01-03 09:48:40 +01:00
vis2k
217f880191
Merge pull request #1389 from paulpach/privatevislist
fix: it is not safe to modify this outside this class
2020-01-02 10:35:28 +01:00
Paul Pacheco
ae3860f51b refactor: use save parameter name as overriden method 2020-01-01 20:28:43 -06:00
Paul Pacheco
addbd91fbd Fix floating point comparison 2020-01-01 20:28:43 -06:00
Paul Pacheco
480350d413 refactor: avoid unused private warning 2020-01-01 20:28:43 -06:00
Paul Pacheco
bd7e27c662 refactor: remove unnecesary base. 2020-01-01 20:22:03 -06:00
Paul Pacheco
12c10a3896 refactor: reuse authentication expiration 2020-01-01 20:11:50 -06:00
Paul Pacheco
12de543aa4 fix: move NetworkStreamExtension in a namespace 2020-01-01 20:02:37 -06:00
Paul Pacheco
7ce95c5cea fix: null reference exception 2020-01-01 19:59:07 -06:00
Paul Pacheco
bc7a961e4d fix: it is not safe to modify this outside this class 2020-01-01 19:56:56 -06:00
Paul Pacheco
663773c3fc refactor: this should not be accessible 2020-01-01 19:55:20 -06:00
Paul Pacheco
33493a0137 fix: potential null reference exception with debug logging 2020-01-01 19:34:55 -06:00
Paul Pacheco
2668b17162 fix: move listserver classes into package 2020-01-01 19:09:37 -06:00
Paul Pacheco
f02d3174db fix: list server logs properly when disconnected 2020-01-01 19:07:48 -06:00
Paul Pacheco
a438216458 refactor: Remove double semicolon 2020-01-01 15:33:52 -06:00
Chris Langsenkamp
97871e23c2 Updated ReadMe 2020-01-01 15:56:40 -05:00
Chris Langsenkamp
147ddab13e NetworkManager moved to Offline scene 2020-01-01 15:46:36 -05:00
Chris Langsenkamp
f64cf6e3db Update Prefabs & Scenes to Master 2020-01-01 12:34:30 -05:00
vis2k
c2d817259b NetworkManager.FinishLoadScene: split into host/server/client functions to prepare for further improvements 2020-01-01 13:34:34 +01:00
vis2k
5d68ef2c28 update comment 2020-01-01 12:49:59 +01:00
vis2k
11586a4177 explain StartHost 2020-01-01 12:18:07 +01:00
vis2k
9d9625b42f explain StartServer 2020-01-01 12:16:01 +01:00
Paul Pacheco
05ce317714 refactor: cleanup code format using dotnet-format 2019-12-31 23:14:17 -06:00
Paul Pacheco
1d20a27879 Follow naming convention for private variable 2019-12-31 22:23:20 -06:00
Paul Pacheco
c90bbaa66b Follow naming convention for private variable 2019-12-31 22:23:08 -06:00
Paul Pacheco
c31e7c8202 Follow naming conventions 2019-12-31 22:18:24 -06:00
Paul Pacheco
cfc280a527 Don't use deprecated methods in test 2019-12-31 21:27:48 -06:00
Paul Pacheco
e8ca3401d0 Don't use deprecated methods in test 2019-12-31 21:24:07 -06:00
Chris Langsenkamp
f117bdb9fc Filled in missing summary comments 2019-12-31 09:54:03 -05:00
vis2k
588117e6d4 add comment 2019-12-31 15:39:08 +01:00
vis2k
c4e3c2debf ServerChangeScene: disable Transport before sceneload call. it's cleaner this way. 2019-12-31 15:34:24 +01:00
vis2k
a603a55ed5 syntax 2019-12-31 15:33:41 +01:00
vis2k
0ed0c077fb remove empty line 2019-12-31 15:28:33 +01:00
vis2k
21045466bf NetworkManager.ConnectLocalClient renamed to StartHostClient for consistency with StartClient (it does almost the same as StartClient) 2019-12-31 12:09:21 +01:00
vis2k
97fd6b5d7e NetworkManager.StartHost: OnStartClient call moved into ConnectLocalClient for consistency with StartClient functions 2019-12-31 12:07:22 +01:00
vis2k
0b0c1edad2 update log message 2019-12-31 12:06:20 +01:00
vis2k
668d6a063d NetworkManager.ConnectLocalClient moved higher near StartClient because it's similar 2019-12-31 12:06:09 +01:00
vis2k
a472edd14c NetworkClient.SetupLocalConnection renamed to ConnectHost for consistency with NetworkClient.Connect (it does almost the same anyway) 2019-12-31 11:10:10 +01:00
vis2k
b36c347200 call OnStartHost AFTER SetupServer 2019-12-31 11:02:21 +01:00
vis2k
ed260cfb18 add comments 2019-12-31 10:24:21 +01:00
vis2k
23b5b50155 Call SetupLocalConnection after SetupServer to prepare for local connection removal, where a real connection can only connect to the server after it was started, not before. 2019-12-31 10:24:10 +01:00
vis2k
07a85309e0 StartHost calls SetupServer + scene change + spawnobjects manually 2019-12-31 10:14:42 +01:00
vis2k
539fe69585 StartServer code mostly moved into SetupServer 2019-12-31 10:11:20 +01:00
vis2k
a8d3e0c998 move log message above 2019-12-31 09:41:05 +01:00
vis2k
e54728d1cc NetworkManager.StartServer changed to void because it always returned true 2019-12-31 09:40:53 +01:00
vis2k
9969cc1c08 NetworkServer.Listen changed to void because it always returned true 2019-12-31 09:32:51 +01:00
vis2k
8787910d34 add comment 2019-12-31 09:30:29 +01:00
vis2k
2971345f37 NetworkManager.StartServer: scene change check moved into IsServerOnlineSceneChangeNeeded 2019-12-31 09:26:13 +01:00
Paul Pacheco
39817fcf00 docs: refer to the correct RegisterHandler method 2019-12-30 13:17:40 -06:00
Chris Langsenkamp
3a17699c23 Cleared Spawn Prefabs - not needed 2019-12-30 13:15:21 -05:00
vis2k
892acf272c explain SetupLocalConnection order properly 2019-12-30 18:47:24 +01:00
vis2k
cfe9520f7c add comments 2019-12-30 17:37:44 +01:00
Chris Langsenkamp
53b160e480 Update NetworkBehaviour Template 2019-12-30 09:47:44 -05:00
vis2k
3e28b10dcb syntax 2019-12-30 13:33:02 +01:00
vis2k
d712cd0303 fix: NetworkTransform clientAuthority works again via clientAuthority option that is configurable in inspector. this had to be fixed after we removed local authority. 2019-12-30 11:09:18 +01:00
vis2k
e8015dfc80 typos 2019-12-30 09:12:24 +01:00
vis2k
87376ae3af SendTargetRPCInternal: disallow all connections to server, not just the local client one 2019-12-29 22:07:47 +01:00
vis2k
53aa0bcc19 improve comments 2019-12-29 21:42:42 +01:00
vis2k
ee1807c85c remove empty line 2019-12-29 21:36:07 +01:00
Paul Pacheco
7258823a3c Test that OnStartServer is propagated by NI 2019-12-27 19:20:01 -06:00
Julien Heimann
3c0bc28228 feat: generate serializers for IMessageBase structs (#1353)
* Allow Weaver to add bodies to IMessageBase structs with empty de/serialize methods

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

Co-Authored-By: Paul Pacheco <paulpach@gmail.com>

* applied suggested changes

* adjusted empty method check

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

formatting

Co-Authored-By: vis2k <info@noobtuts.com>

Co-authored-by: Paul Pacheco <paulpach@gmail.com>
Co-authored-by: vis2k <info@noobtuts.com>
2019-12-27 10:12:28 -06:00
MrGadget
b34ae51965 Replace License.txt (#1360) 2019-12-26 09:51:56 -06:00
vis2k
4cc4279d7d fix: #1359. Revert "Destroy objects owned by this connection when disconnecting (#1179)"
This reverts commit 8931944005.
2019-12-26 13:43:02 +01:00
MrGadget
8e77da3424 Call OnClientConnect in FinishLoadScene (#1357) 2019-12-26 10:07:37 +01:00
MrGadget
ba3f855c98 Add Meta Files (#1358) 2019-12-26 10:07:08 +01:00
Paul Pacheco
d7a58d25d4
fix: destroy owned objects (#1352)
* fix: destroy owned objects

fix #1346
Broken in PR #1206

alternative to #1351

* fix nre

* Simplify
2019-12-23 19:25:16 -06:00
Paul Pacheco
d83efbbd8d Test connect and send 2019-12-23 19:06:14 -06:00
Paul Pacheco
e7abf4e7c7 Test transport events 2019-12-23 18:06:00 -06:00
Paul Pacheco
fe39459181 Test ClientSend 2019-12-23 17:44:03 -06:00
Paul Pacheco
ad115af845 Test ClientDisconnect 2019-12-23 17:37:50 -06:00
Paul Pacheco
947c473a3d Test ClientConnected 2019-12-23 17:23:58 -06:00
Paul Pacheco
3e0802607a Test connecting with uri 2019-12-23 16:44:40 -06:00
Paul Pacheco
1eff4ed4e6 Test connect 2019-12-23 16:36:13 -06:00
Paul Pacheco
caece9ecde Fully initialize multiplex for testing 2019-12-23 16:29:40 -06:00
Paul Pacheco
a132a9c47a Test available method 2019-12-23 16:26:25 -06:00
Paul Pacheco
c6af3c39f7 Add NSubstitute 2019-12-23 16:19:03 -06:00
Paul Pacheco
b55cf957a8 refactor: move ninja websocket in it's own assembly 2019-12-23 16:03:09 -06:00
Paul Pacheco
885e1f4c73
test: Mocking library for testing (#1350)
* Include mocking libraries

* reimported nsubstitute dlls

* Only include as part of test assemblies
2019-12-23 14:51:20 -06:00
Paul Pacheco
9f2dca56f0 refactor: compatibility with 2019.3 2019-12-23 13:40:16 -06:00
Paul Pacheco
a800064d8a test: Test packing floats into ushort 2019-12-23 12:52:39 -06:00
Paul Pacheco
ad2bee222a test: removing pair test 2019-12-23 12:25:14 -06:00
Paul Pacheco
f12fa2f51a test: Simplify tests 2019-12-23 12:21:50 -06:00
Paul Pacheco
60cfea0d14 test: copyto tests 2019-12-23 11:37:53 -06:00
MrGadget
abd2af9001 Made loadingSceneAsync public (#1349) 2019-12-23 08:32:15 +01:00
MrGadget
58f573729f Allow Custom Scene Handling (#1329) 2019-12-22 19:59:35 +01:00
MichalPetryka
3d94f4b6c7 Remove trailing whitespace and fix encodings (#1342) 2019-12-22 11:58:52 +01:00
vis2k
307f129bd7 remove trailing whitespaces 2019-12-22 11:13:18 +01:00
vis2k
4c6805cf86 update comment 2019-12-22 11:12:45 +01:00
vis2k
45a8e6367b Telepathy updated to latest version 2019-12-22 09:33:26 +01:00
vis2k
93d3511266 add comment 2019-12-22 09:24:31 +01:00
vis2k
54498403a5
fix: potential exploits / out of sync issues where clients with different transports might see different game states because of different max message sizes when using FallbackTransport. (#1331) 2019-12-22 09:18:51 +01:00
Paul Pacheco
9926472d98
feat: Chat example (#1305)
* Add chat example

* Update Assets/Mirror/Examples/Chat/Scripts/ChatNetworkManager.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Examples/Chat/Scripts/Player.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Examples/Chat/Scripts/ChatWindow.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Examples/Chat/Scripts/Player.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Examples/Chat/Scripts/Player.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Examples/Chat/Scripts/Player.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Change package to chat

* Update Assets/Mirror/Examples/Chat/Scripts/ChatNetworkManager.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Examples/Chat/Scripts/ChatNetworkManager.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Examples/Chat/Scripts/ChatNetworkManager.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Examples/Chat/Scripts/ChatNetworkManager.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Examples/Chat/Scripts/ChatWindow.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* UI FIxes

* Lighting

* Fixed ScrollView

* Fixed username assignment

* removed commented line

* Layout refinement

* remove empty lines

Co-Authored-By: MrGadget <chris@clevertech.net>

* fixed which element was enabled

* Strip unprintable characters

* reverted ASCI filter

Co-authored-by: MrGadget <chris@clevertech.net>
2019-12-21 13:22:02 -06:00
vis2k
b3127beb89 fix: MultiplexTransport GetMaxMessageSize NullReferenceException when called on server. And fixes potential exploits / out of sync issues where clients with different transports might see different game states because of different max message sizes. (#1332) 2019-12-21 08:09:33 -06:00
MrGadget
9a0127aadc Remove usings (#1327)
* Removed extraneous usings

* Removed extraneous usings

* Removed extraneous usings
2019-12-21 10:26:22 +01:00
MrGadget
ea4fc93159 Add return to ClientConnect(Uri) (#1326) 2019-12-20 21:46:52 +01:00
MrGadget
0e705d4aa0 Remove all extraneous blank lines (#1325) 2019-12-20 21:46:16 +01:00
MrGadget
b479b8ee51 Put the return back in ClientConnect (#1324) 2019-12-20 21:16:45 +01:00
MrGadget
1be4de3f63 Adjust cameras for server view (#1318) 2019-12-19 08:06:00 +01:00
Chris Langsenkamp
a5d369f96c fixed comment 2019-12-18 16:53:09 -05:00
MrGadget
abf5cdcf36 feat: Add roomPlayer parameter to OnRoomServerCreateGamePlayer (#1317)
* Adds roomPlayer parameter to OnRoomServerCreateGamePlayer

* fixed template
2019-12-17 10:16:14 +01:00
vis2k
6fb8a32f5b
remove NetworkIdentityEditor because it's not really needed after removing local player authority (which required special checks to only show one option at a time). Also fixes #1289 (#1309) 2019-12-16 08:50:47 +01:00
Paul Pacheco
a2e17108b6 display the whole connection 2019-12-13 08:03:15 -06:00
Paul Pacheco
dbe064393a
fix: error when there are no network behaviors (#1303)
Use the lazy network behaviors cache everywhere, so this can never be null
2019-12-12 20:28:31 -06:00
MrGadget
ca4ff9b6b2 Fix Delayed Disconnect (#1302) 2019-12-12 20:02:23 -06:00
MrGadget
3684033f6a Restore clientAuthorityCallback (#1298) 2019-12-12 19:31:11 -06:00
MrGadget
c6678eb3f1 No point in calling this here (#1300) 2019-12-12 19:30:40 -06:00
MrGadget
a18d6b5eaa Unused field (#1299) 2019-12-12 19:11:20 -06:00
Paul Pacheco
e4a701ed4e feat: fallback transport now supports uri (#1296) 2019-12-10 17:13:32 +01:00
Paul Pacheco
c206f9ad97 feat: Multiplex based on url (#1295)
If the multiplex transport receives an url for connection,
try all the underlying transports until it finds a suitable one

For example,  let's say you configure a multiplex transport with telepathy and websocket,  if you try:
```cs
NetworkManager.StartClient("tcp4://host:port");
```

then the multiplex transport will use telepathy.

if we pass:
```cs
NetworkManager.StartClient("ws://host:port");
```

then the multiplex transport will select websocket
2019-12-10 07:36:42 +01:00
Paul Pacheco
7865a840b6 feat: LLAPI transport can receive port from uri (#1294)
* feat: LLAPI transport can receive port from uri

* Refactor to use the original method
2019-12-09 21:52:50 +01:00
Paul Pacheco
c8ad118d50 feat: websocket can receive port in url (#1287)
* feat: websocket can now receive port and encryption setting from uri

* check for ws or wss scheme
2019-12-09 16:52:39 +01:00
Paul Pacheco
06946cf37f feat: telepathy can now receive port from uri (#1284)
* feat: telepathy can receive port from uri

* Use configured port if the url does not have one

* use tcp4 as scheme for telepathy

* don't change default port

* Update TelepathyTransport.cs

* Update TelepathyTransport.cs
2019-12-08 19:48:26 +01:00
vis2k
e766f7b511 Update list server header text 2019-12-08 09:08:35 +01:00
Tor Esa Vestergaard
a0425e4e84 fix: Draw SyncVar label for Unity objects inline (#1291)
* SyncVar label for Unity objects is now drawn inline instead of on the next line

* Made syncVarIndicatorContent static

Did it since there's no need to have that allocation per editor instance.
2019-12-07 14:29:14 +01:00
MrGadget
c8aabd246a Fix Inspector Refresh (#1290) 2019-12-07 09:20:31 +01:00
MrGadget
7843b12f7f Make startPositionIndex public (#1288)
* Make startPositionIndex public

startPositions is a public list, so the index should be too.

* Update NetworkManager.cs

* Update NetworkManager.cs
2019-12-06 06:55:38 +01:00
Paul Pacheco
f9d34d5863
feat: Mirror now supports message inheritance (#1286)
* test: child messages should serialize parent's data

* feat: Mirror now supports inheritance for messages
2019-12-05 11:21:42 -06:00
Paul Pacheco
7e4023246b fix: Don't set asset id for scene objects
Fixes this warning:
```
SetDynamicAssetId object already has an assetId <68fb15ce5f2e7eb44a8ac123d853b91a>
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)
Mirror.NetworkIdentity:set_assetId(Guid) (at D:\Unity\Projects\TestUmmorpg\Assets\uMMORPG\Plugins\Mirror\Runtime\NetworkIdentity.cs:165)
Mirror.ClientScene:ApplySpawnPayload(NetworkIdentity, SpawnMessage) (at D:\Unity\Projects\TestUmmorpg\Assets\uMMORPG\Plugins\Mirror\Runtime\ClientScene.cs:470)
Mirror.ClientScene:OnSpawn(SpawnMessage) (at D:\Unity\Projects\TestUmmorpg\Assets\uMMORPG\Plugins\Mirror\Runtime\ClientScene.cs:529)
Mirror.<>c__DisplayClass35_0`1:<RegisterHandler>b__0(NetworkConnection, SpawnMessage) (at D:\Unity\Projects\TestUmmorpg\Assets\uMMORPG\Plugins\Mirror\Runtime\NetworkClient.cs:400)
Mirror.<>c__DisplayClass7_0`1:<MessageHandler>b__0(NetworkMessage) (at D:\Unity\Projects\TestUmmorpg\Assets\uMMORPG\Plugins\Mirror\Runtime\MessagePacker.cs:163)
Mirror.NetworkConnection:InvokeHandler(Int32, NetworkReader, Int32) (at D:\Unity\Projects\TestUmmorpg\Assets\uMMORPG\Plugins\Mirror\Runtime\NetworkConnection.cs:271)
Mirror.NetworkConnection:TransportReceive(ArraySegment`1, Int32) (at D:\Unity\Projects\TestUmmorpg\Assets\uMMORPG\Plugins\Mirror\Runtime\NetworkConnection.cs:325)
Mirror.NetworkClient:OnDataReceived(ArraySegment`1, Int32) (at D:\Unity\Projects\TestUmmorpg\Assets\uMMORPG\Plugins\Mirror\Runtime\NetworkClient.cs:149)
UnityEngine.Events.InvokableCall`2:Invoke(ArraySegment`1, Int32)
UnityEngine.Events.UnityEvent`2:Invoke(ArraySegment`1, Int32)
Mirror.TelepathyTransport:ProcessClientMessage() (at D:\Unity\Projects\TestUmmorpg\Assets\uMMORPG\Plugins\Mirror\Runtime\Transport\TelepathyTransport.cs:79)
Mirror.TelepathyTransport:LateUpdate() (at D:\Unity\Projects\TestUmmorpg\Assets\uMMORPG\Plugins\Mirror\Runtime\Transport\TelepathyTransport.cs:106)
```
2019-12-05 05:15:43 -06:00
Paul Pacheco
00b51364ac improve warning message 2019-12-05 05:12:44 -06:00
Paul Pacheco
7c3622cfae feat: new way to connect using uri (#1279)
* feat: new way to connect using uri

* set the host name when starting by url
2019-12-05 11:57:24 +01:00
Paul Pacheco
0e1bc8110f
fix: ReplacePlayer now calls OnStartLocalPlayer (#1280)
* fix: ReplacePlayer now calls OnStartLocalPlayer

fixes #962

* fix: replace player cannot steal another player
2019-12-04 14:54:50 -06:00
MrGadget
b23cfc739d Fix ServerChangeScene (#1281) 2019-12-04 14:49:33 -06:00
MrGadget
555d0d9cc0 Add true for keepAuthority (#1277) 2019-12-03 08:49:11 +01:00
vis2k
13e2dcccd9
breaking: SyncList.Callback passes old and new entries instead of only passing one entry which is sometimes the old, sometimes the new entry. This is more consistent and it's very useful to know the previous value in a hook for OP_SET and OP_DIRTY. (#1273)
* feature: SyncList.Callback passes old and new entries instead of only passing one entry which is sometimes the old, sometimes the new entry. This is more consistent and it's very useful to know the previous value in a hook for OP_SET and OP_DIRTY.

* update tests

* update docs
2019-12-03 08:35:41 +01:00
vis2k
97e838b932 SyncDictionary: remove unused OP_DIRTY operations 2019-12-03 08:17:55 +01:00
vis2k
4b9dcbf9f4 SyncList: remove unused OP_DIRTY operations 2019-12-03 08:16:44 +01:00
vis2k
c5079ada6c
remove SyncDictionary.Dirty function because it's unused and we removed it for SyncList already too (#1272) 2019-12-03 08:12:12 +01:00
Paul Pacheco
ad724fe23c fix: replace player (remove authority by default) (#1261)
* fix: remove authority properly in replace player

This is an alternative to #1257

Now the user can pass a parameter to ReplacePlayer to indicate
that the old player should remain attached to the connection.

Note the user could simply pass true and then call RemoveAuthority themselves
which was the approach in #1257

Personally I would prefer #1257,  but this is at least better than
master because authority is removed the proper way.

* Update NetworkServer.cs
2019-12-03 08:11:39 +01:00
MrGadget
8012972b0e Removed non-implemented overload (#1276) 2019-12-03 08:01:52 +01:00
vis2k
1eae07fa2c remove unused SyncList.Dirty function 2019-12-02 11:50:18 +01:00
MrGadget
7898dc2347 Restore Room Player Authority (#1267) 2019-12-02 08:48:27 +01:00
MrGadget
1ed12dba79 Require Network Transform (#1269) 2019-12-02 06:41:07 +01:00
MrGadget
42a4a7cb00 Add Return button to Room Manager (#1268)
* Add Return button to Room Manager

* Simplified GUI

* Fixed height
2019-12-02 06:40:55 +01:00
MrGadget
cddef72b41 Move scoring to PlayerScore (#1266) 2019-12-02 06:40:11 +01:00
MrGadget
e6f8f3c46f Improve Turn and Jump (#1265) 2019-12-02 06:39:56 +01:00
Paul Pacheco
8899d20712
fix: Additive scene can respawn objects safely (#1270)
* fix: Additive scene can respawn objects safely

* Update Assets/Mirror/Runtime/NetworkIdentity.cs

Co-Authored-By: MrGadget <chris@clevertech.net>
2019-12-01 22:48:08 -06:00
Paul Pacheco
c753089478
fix: don't call OnStartLocalPlayer twice (#1263) 2019-12-01 09:55:57 -06:00
Paul Pacheco
4d373c5071
fix: call OnStartClient only once in room (#1264) 2019-12-01 09:55:38 -06:00
Paul Pacheco
2195fee81c fix: set authority when replacing the player 2019-11-30 07:09:06 -06:00
Paul Pacheco
c58ead16a6 Remove unused method 2019-11-29 23:10:25 -06:00
MrGadget
e8841a3c1d
Merge pull request #1259 from paulpach/fix2clients
fix: issue with more than 1 client
2019-11-29 19:58:07 -05:00
Paul Pacheco
095b54752a isClient is already true, so make sure to initialize the objects 2019-11-29 18:23:46 -06:00
Paul Pacheco
ab73fbcf7a
Simplify isServer (#1258) 2019-11-29 18:06:44 -06:00
Chris Langsenkamp
55dabf2755 Updated Templates 2019-11-29 18:44:55 -05:00
Paul Pacheco
4816f0ead1
Spawn host objects via spawn, just like clients (#1248)
* Spawn host objects works via messages just like clients

* fix spawning local player

* Do not call OnStartClient twice
2019-11-29 17:25:32 -06:00
Paul Pacheco
b8618d356f Revert "fix: replacing the player does not mean giving up authority (#1254)"
This reverts commit a2c273ecd1.
2019-11-29 16:04:06 -06:00
Paul Pacheco
fb26d0023f
fix: isLocalPlayer is true during OnStartClient for Player (#1255)
related to #1250 but for client mode.

Before:

```
Void Awake() hasAuthority=False isClient=False isLocalPlayer=False
Void OnStartClient() hasAuthority=True isClient=True isLocalPlayer=False
Void OnStartAuthority() hasAuthority=True isClient=True isLocalPlayer=False
Void OnStartLocalPlayer() hasAuthority=True isClient=True isLocalPlayer=True
Void Start() hasAuthority=True isClient=True isLocalPlayer=True
```

After:
```
Void Awake() hasAuthority=False isClient=False isLocalPlayer=False
Void OnStartClient() hasAuthority=True isClient=True isLocalPlayer=True
Void OnStartAuthority() hasAuthority=True isClient=True isLocalPlayer=True
Void OnStartLocalPlayer() hasAuthority=True isClient=True isLocalPlayer=True
Void Start() hasAuthority=True isClient=True isLocalPlayer=True
```
2019-11-29 15:40:38 -06:00
Paul Pacheco
a2c273ecd1
fix: replacing the player does not mean giving up authority (#1254) 2019-11-29 15:02:55 -06:00
Paul Pacheco
9acde20b0a
fix: isLocalPlayer works in host mode onStartServer (#1253)
See #1250

Before:
```
Void Awake() hasAuthority=False isClient=False isLocalPlayer=False
Void OnStartServer() hasAuthority=False isClient=False isLocalPlayer=False
Void OnStartClient() hasAuthority=False isClient=True isLocalPlayer=False
Void OnStartAuthority() hasAuthority=True isClient=True isLocalPlayer=True
Void OnStartLocalPlayer() hasAuthority=True isClient=True isLocalPlayer=True
Void Start() hasAuthority=True isClient=True isLocalPlayer=True
```

after

```
Void Awake() hasAuthority=False isClient=False isLocalPlayer=False
Void OnStartServer() hasAuthority=False isClient=False isLocalPlayer=True
Void OnStartClient() hasAuthority=False isClient=True isLocalPlayer=True
Void OnStartAuthority() hasAuthority=True isClient=True isLocalPlayer=True
Void OnStartLocalPlayer() hasAuthority=True isClient=True isLocalPlayer=True
Void Start() hasAuthority=True isClient=True isLocalPlayer=True
```

Note it is not possible to fix Awake because it gets called before we
have any chance of setting any property
2019-11-29 14:34:07 -06:00
Paul Pacheco
d00c95bb55
fix: isClient now reports true onStartServer in host mode (#1252) 2019-11-29 14:10:46 -06:00
Paul Pacheco
2f19c7ca89
fix: hasAuthority is now visible in all overrides (#1251)
See #1250

Before:
```
Void Awake() hasAuthority=False isClient=False isLocalPlayer=False
Void OnStartServer() hasAuthority=False isClient=False isLocalPlayer=False
Void OnStartClient() hasAuthority=False isClient=True isLocalPlayer=False
Void OnStartAuthority() hasAuthority=True isClient=True isLocalPlayer=True
Void OnStartLocalPlayer() hasAuthority=True isClient=True isLocalPlayer=True
Void Start() hasAuthority=True isClient=True isLocalPlayer=True
```

After:
```
Void Awake() hasAuthority=False isClient=False isLocalPlayer=False
Void OnStartServer() hasAuthority=True isClient=False isLocalPlayer=False
Void OnStartClient() hasAuthority=True isClient=True isLocalPlayer=False
Void OnStartAuthority() hasAuthority=True isClient=True isLocalPlayer=True
Void OnStartLocalPlayer() hasAuthority=True isClient=True isLocalPlayer=True
Void Start() hasAuthority=True isClient=True isLocalPlayer=True
```
2019-11-29 13:09:46 -06:00
Paul Pacheco
7aa7815754 fix: Call hooks when initializing objects OnStartServer on host (#1249) 2019-11-29 15:12:06 +09:00
Paul Pacheco
7119dd15f8
fix: Do not call InternalAddPlayer twice (#1246) 2019-11-28 13:47:31 -06:00
MrGadget
4c0fb9ba34 Simplified Spawner (#1244) 2019-11-28 10:35:23 -06:00
MrGadget
d0c0f394f7 Auto Assign Character Controller (#1245) 2019-11-28 10:34:18 -06:00
MrGadget
d963e29d95 Made RandomColor a Separate Component (#1240)
* Made RandomColor a separate component

* Adjusted Prefab

* Simplified OnValidate

* Reverted unrelated changes
2019-11-28 09:42:46 -06:00
Chris Langsenkamp
c89ba52e3d Change to using Color32 2019-11-27 21:32:25 -05:00
Paul Pacheco
a282c32394 clearer comment 2019-11-27 18:18:59 -06:00
Paul Pacheco
9a2ff84440 space in comment 2019-11-27 18:17:32 -06:00
Paul Pacheco
888e46c685 fix: OnSetHostVisibility can now check if it has authority 2019-11-27 17:53:30 -06:00
vis2k
d2075002ca improve comment 2019-11-25 19:15:04 +09:00
vis2k
91fc3c25db remove trailing whitespace 2019-11-25 19:11:55 +09:00
vis2k
ba88ca6ab5 explain the special case in RebuildObservers 2019-11-25 19:11:47 +09:00
Chris Langsenkamp
fad50818bf Added AddComponentMenu empties and namespace 2019-11-24 14:35:19 -05:00
Chris Langsenkamp
37e5b49f28 Removed extraneous comments 2019-11-24 09:46:41 -05:00
Chris Langsenkamp
210540b669 Fixed Obsolete comment 2019-11-24 08:38:47 -05:00
Paul Pacheco
3b9414f131 perf: spawn with client authority only takes 1 message (#1206)
* perf: spawn with client authority only takes 1 message now

* Fix javadocs and warning

* Rename parameters

* Make sure we spawn players with authority
2019-11-24 10:22:43 +09:00
Paul Pacheco
5b04836bb2 fix: spawnwithauthority works again in host mode 2019-11-24 10:16:15 +09:00
Paul Pacheco
92d0df7b39 feat: SyncToOwner now works with authority (#1204)
* WIP redoing authority

* Local client also handles authority

* Remove unused callback

* Update Assets/Mirror/Runtime/NetworkIdentity.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Runtime/NetworkIdentity.cs

Co-Authored-By: vis2k <info@noobtuts.com>

* Rename pendingOwner

* Update Assets/Mirror/Runtime/NetworkIdentity.cs

Co-Authored-By: vis2k <info@noobtuts.com>

* Update Assets/Mirror/Runtime/NetworkIdentity.cs

Co-Authored-By: vis2k <info@noobtuts.com>

* Update Assets/Mirror/Runtime/NetworkIdentity.cs

Co-Authored-By: vis2k <info@noobtuts.com>

* Update Assets/Mirror/Runtime/NetworkIdentity.cs

Co-Authored-By: vis2k <info@noobtuts.com>
2019-11-23 15:07:00 +09:00
Paul Pacheco
24d8368b38 refactor: reuse connectionToClient for authority (#1200)
* refactor: reuse connectionToClient for authority

* Fix compilation issue

* Make PR easier to read

* Better error message

* Update Assets/Mirror/Runtime/NetworkIdentity.cs

Co-Authored-By: MrGadget <chris@clevertech.net>
2019-11-23 15:00:53 +09:00
Paul Pacheco
876da8bbcd refactor: Simplify spawning 2019-11-23 14:54:37 +09:00
MrGadget
1e96cb7a8a Replaces SpawnWithClientAuthority with Spawn Overloads (#1233)
* Replaces SpawnWithClientAuthority with Spawn Overloads

* Cleaned up comments and log messages
2019-11-23 14:26:27 +09:00
vis2k
e847344bde syntax 2019-11-23 11:59:04 +09:00
vis2k
f0cf4e7e14 Replace 'local client' naming with 'host' to be less confusing. This breaks NetworkProximityChecker.OnSetLocalVisibility because it needs to be renamed to OnSetHostVisibility
* rename parameter

* obsolete

* rename parameter
2019-11-23 11:34:47 +09:00
Paul Pacheco
1d4b1faac2 docs: fix link to spawn custom player 2019-11-23 11:03:27 +09:00
Paul Pacheco
0bc151bb27 Obsolete built in messages 2019-11-23 11:03:18 +09:00
Paul Pacheco
c669ff155d perf: avoid allocation for error messages 2019-11-23 11:03:08 +09:00
vis2k
1c7c54305d add missing meta file 2019-11-23 11:00:49 +09:00
Chris Langsenkamp
638b445744 Update Prefabs After LocalPlayerAuthority Removed 2019-11-23 10:59:52 +09:00
MrGadget
8cf6a0707e feat: Script Templates (#1217)
* Add Script Templates

* Moved serialization section down

* Added comments to Awake & Start

* Capitalization

* meta files

* Added doc links and XML comments
2019-11-23 10:59:38 +09:00
Chris Langsenkamp
477028913a Update Prefabs After LocalPlayerAuthority Removed 2019-11-23 10:59:21 +09:00
Chris Langsenkamp
1699335aaa fixed comment 2019-11-23 10:59:12 +09:00
Paul Pacheco
d741baed78 feat: Pass all information to spawn handler (#1215) 2019-11-23 10:57:52 +09:00
ZacNorthBigBox
701f4f4183 fix: Pass the name of the invoking class and desired command when an object has no authority. (#1216) 2019-11-23 10:57:45 +09:00
Paul Pacheco
2c58902357 Code style 2019-11-23 10:57:40 +09:00
Paul Pacheco
2081a757ea Remove unused connection id cache
Good find by MrGadget
2019-11-23 10:57:32 +09:00
Paul Pacheco
2d4d4109bb Make list cache readonly 2019-11-23 10:57:25 +09:00
Paul Pacheco
c2096d0fb7 Available transport is determined at connection time (#1213)
* Available transport is determined at connection time

* Update MultiplexTransport.cs
2019-11-23 10:57:11 +09:00
Paul Pacheco
ce305d95fc Removed unused code 2019-11-23 10:57:09 +09:00
Paul Pacheco
15e03d9bbf Removed unused code 2019-11-23 10:57:06 +09:00
Paul Pacheco
7ba4bc3590 use C# formatter 2019-11-23 10:56:53 +09:00
Paul Pacheco
09f6892c55 feat: An authenticator that times out other authenticators (#1211)
* feat: An authenticator that times out other authenticators

* Clean up some spaces

* Add tooltip for timeout
Disable timeout with 0

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Remove space

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* use float for time

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs

* Update Assets/Mirror/Authenticators/TimeoutAuthenticator.cs
2019-11-23 10:56:51 +09:00
Chris Langsenkamp
d821013deb Added HelpURL to NetworkBehaviour 2019-11-23 10:56:22 +09:00
Chris Langsenkamp
e33f2e84cb Updated summary comments 2019-11-23 10:56:04 +09:00
Paul Pacheco
bf9eb610dc feat: NetworkConnection is optional for handlers (#1202)
* feat: NetworkConnection is optional for handlers

* make NetworkConnction optional in handlers
2019-11-23 10:52:24 +09:00
Paul Pacheco
12fd2ae6fc Remove redundant namespace 2019-11-23 10:52:12 +09:00
Paul Pacheco
236dcb6734 remove redundant type parameter 2019-11-23 10:52:02 +09:00
Paul Pacheco
1531281516 Enforce proper type for connectionToClient 2019-11-23 10:51:50 +09:00
vis2k
db99dd7b3d fix: when modifying a prefab, Unity calls OnValidate for all scene objects based on that prefab, which caused Mirror to reset the sceneId because we only checked if a prefab is currently edited, not if THIS prefab is currently edited 2019-11-03 14:33:59 +01:00
vis2k
188b74edd6
Fallback Transport (#1198)
* Fallback Transport

* doc

* doc

* help URL

* exception

* fixed help url
2019-11-03 00:04:59 +01:00
Paul Pacheco
f70a2ac702 refactor: Simplify spawn message (#1195)
* refactor: Simplify spawn message

* Update Assets/Mirror/Runtime/Messages.cs

* fix brainfart

* consolidate spawning logic

* simpler find

* remove unnecesary private keyword

* Remove redundant else
2019-10-31 10:07:37 +01:00
vis2k
6765da2387 Make Transport.Available() abstract (#1194)
* Make Transport.Available() abstract

* better
2019-10-30 13:02:07 -07:00
vis2k
7fe8888df5 perf: MultiplexTransport: avoid Linq allocations that would happen on every packet send because Send calls .ServerActive() each time 2019-10-30 20:18:02 +01:00
Paul Pacheco
40f50ac908 breaking: Remove localPlayerAuthority (#1192)
* breaking: Remove localPlayerAuthority (#1188)

* breaking: Remove localPlayerAuthority

This flag does not do anything useful in anything but NetworkAnimator
so NetworkAnimator can keep it's own flag.

* Add tooltip with explanation

* Editor should no longer access localPlayerAuthority property
2019-10-30 18:13:25 +01:00
Paul Pacheco
7df3ce37d1 fix: Don't throw exception getting address 2019-10-30 09:30:58 -07:00
Paul Pacheco
6cbef06e00 Simplify editor a bit 2019-10-30 05:49:04 -07:00
vis2k
d9afbfe4c9
rename 'owner' to 'isLocalPlayer' to prepare to be less confusing (#1185) 2019-10-27 16:30:06 +01:00
vis2k
27daf3fb0b remove old comment 2019-10-27 15:01:21 +01:00
Paul Pacheco
8931944005 Destroy objects owned by this connection when disconnecting (#1179)
* Destroy objects owned by this connection when disconnecting

* How did this get here?

* Simplify keeping track of owned objects
2019-10-27 14:55:12 +01:00
Paul Pacheco
4d9e5809ee tests: unit test local connections (#1184) 2019-10-27 14:47:06 +01:00
Paul Pacheco
f94adbf09b refactor: local connections maintain their own queue (#1183)
* refactor: local connections maintain their own queue

* pass message to the counterpart connection

* Update LocalConnections.cs

* Update LocalConnections.cs
2019-10-27 14:09:54 +01:00
MrGadget
2d13512642 Remove redundant force authority (#1180) 2019-10-26 10:38:29 +02:00
Paul Pacheco
8d886ecf69 Remove leftover xmldoc parameter 2019-10-25 23:38:33 -05:00
Paul Pacheco
2ae5f0ddfc Make sure we use a connection to client for clientAuthorityOwner 2019-10-25 23:09:19 -05:00
Paul Pacheco
24a7968cc2
refactor: Split NC for clients and servers (#1175)
NetworkConnection has been broken down into:

NetworkConnection

NetworkConnectionToClient
NetworkConnectionToServer
This way each class does one thing only, instead of trying to accommodate client and server functionality in the same class.

I can't go any further than this without breaking a lot of code. Ideally we would move the connectionId down to NetworkConnectionToClient, but that will result in a lot of breaking changes.
2019-10-25 23:01:54 -05:00
MrGadget
51653ed811 Remove Authority Set (#1178) 2019-10-25 13:13:57 +02:00
Paul Pacheco
1ec8910575
perf: allocation free syncdict foreach, fix #1172 (#1174) 2019-10-23 08:40:55 -05:00
Paul Pacheco
13e4e6fe3a refactor: make it clearer that connection id is 0 or possitive 2019-10-23 07:21:20 -05:00
Paul Pacheco
035e6307f9 perf: allocation free enumerator for syncsets, fixes #1171 (#1173) 2019-10-23 11:36:52 +02:00
Paul Pacheco
ade7e76f45 This method should never be used by users 2019-10-22 20:23:48 -05:00
Paul Pacheco
745ef89e8c make it clearer that connection id can't be -1
It was already impossible for he connection id to be -1
So make it clear.
Also make sure the connection id cannot change
2019-10-22 19:48:51 -05:00
Paul Pacheco
c0a7c8a6db Users should never be creating NetworkConnections directly 2019-10-22 19:44:54 -05:00
Paul Pacheco
9dea4856ac obsolete: Players should not really use connectionId 2019-10-22 18:46:36 -05:00
MichalPetryka
4ffd5a2e06 perf: Custom IEnumerator for SyncLists to avoid allocations on foreach (#904)
* Custom IEnumerator for SyncLists to avoid allocations on foreach

* add comments and benchmark

* remove unnecessary 'private'

* syntax
2019-10-22 17:41:09 +02:00
Paul Pacheco
60b2dcb94b
refactor:use ToString() to display connections (#1170) 2019-10-22 08:34:19 -05:00
vis2k
0a22e61787 add comment 2019-10-22 15:10:25 +02:00
Paul Pacheco
94eda38803 feat: Remove Command shortcut for host mode (#1168) 2019-10-22 10:13:27 +02:00
Paul Pacheco
22b45f7a11 perf: Use RemoveAt to remove elements from lists 2019-10-21 02:20:51 -05:00
vis2k
12c5a8fdc3 Revert "feat: Add Timeout to NetworkAuthenticator (#1091)"
This reverts commit e8cc9ba27b.
2019-10-20 20:12:14 +02:00
MrGadget
e8fac8aba5 fix: Suspend server transport while changing scenes (#1169)
* Suspend transport

* fixed typo
2019-10-20 11:54:43 -05:00
MrGadget
e8cc9ba27b feat: Add Timeout to NetworkAuthenticator (#1091)
* Add timeout to NetworkAuthenticator

* Added back the using Vis removed

* updated doc

* Typo
2019-10-20 11:23:34 -05:00
MrGadget
1fc1ed2708 fix: Don't give host player authority by default (#1158)
* Don't give host player authority by default

* Same when removing authority
2019-10-20 18:01:00 +02:00
Paul Pacheco
eb51da0b72 simplify tests 2019-10-19 11:29:52 -05:00
Lymdun
8be06fc453 Fix comments (#1167) 2019-10-19 10:06:30 -05:00
Paul Pacheco
2db9520b54 Cleaned up some tests 2019-10-19 10:05:30 -05:00
MichalPetryka
0fde090bf2 SyncList custom Equality Comparer support (#1146) 2019-10-19 16:02:08 +02:00
Paul Pacheco
9cb309e5bc feat: Users may provide custom serializers for any type (#1153)
* feat: Users may provide custom serializers for any type

* Relax rules for rpc parameters to support user provided serializers

* Improve error messages

* Fixed component types

* Adjusted tests
2019-10-19 16:00:27 +02:00
MrGadget
ae5c92b40c Rename includeSelf to includeOwner (#1163)
* Rename includeSelf to includeOwner

* Renamed isSelf too
2019-10-19 09:47:17 +02:00
MrGadget
11b3cce123 Refresh Data For Preview Window (#1161) 2019-10-19 09:41:06 +02:00
MrGadget
0295522d5a Prevent NRE (#1162) 2019-10-19 09:39:46 +02:00
MrGadget
039abfcc81 Remove unnecessary virtuals (#1156) 2019-10-18 08:09:27 -05:00
MrGadget
c3fcf9117c
Update NetworkClient.cs
updated comment
2019-10-18 00:27:34 -04:00
Paul Pacheco
d8ce80fe0e fix: don't call hook in host if no change, fixes #1142 (#1143)
* fix: don't call hook in host if no change,  fixes #1142

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

Co-Authored-By: MrGadget <chris@clevertech.net>

* avoid hook calls for GO and NI in host

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

* Remove check from SetSyncVarGameObject
2019-10-17 09:31:31 +02:00
Paul Pacheco
34c419ee07 Update NI and GO fields for ease of use (#1154) 2019-10-17 09:30:29 +02:00
MrGadget
61428382f4 Make playerData public to get rid of Unity's warning (#1152) 2019-10-16 21:16:46 +02:00
MichalPetryka
0f951858c5 feat: SyncSet custom Equality Comparer support (#1147) 2019-10-15 09:07:15 -05:00
MichalPetryka
84555bc9d0 Fix invalid exception usage (#1148) 2019-10-14 19:39:00 +02:00
MrGadget
fd43c67d68 fix: Prevent Compiler Paradox (#1145)
* Prevent Compiler Paradox

* Change platform to Editor Only

* added new line at EOF
2019-10-14 07:32:24 -05:00
Paul Pacheco
ae2f5cb7d8 Make field readonly 2019-10-14 07:23:40 -05:00
Paul Pacheco
85faddfdd0 Remove unused, obsolete private method 2019-10-14 07:20:47 -05:00
Paul Pacheco
ec5434b087 Method should be static 2019-10-13 16:20:56 -05:00
Paul Pacheco
95138427f3
perf: avoid boxing for getting message id (#1144)
* perf: avoid boxing for getting message id

* Update Assets/Mirror/Runtime/MessagePacker.cs

Co-Authored-By: MichalPetryka <35800402+MichalPetryka@users.noreply.github.com>

* Update Assets/Mirror/Runtime/NetworkConnection.cs

Co-Authored-By: MichalPetryka <35800402+MichalPetryka@users.noreply.github.com>
2019-10-13 15:57:39 -05:00
Chris Langsenkamp
d5e3e56c78 Fixed HelpURL 2019-10-09 01:41:54 -04:00
MrGadget
bcc6af8527 Simplify Jump and reset player prefabs (#1140) 2019-10-08 09:35:08 +02:00
Chris Langsenkamp
98b6328f76 Merge branch 'master' of https://github.com/vis2k/Mirror 2019-10-07 06:41:35 -04:00
Chris Langsenkamp
86b5f565d0 updated comments 2019-10-07 06:41:12 -04:00
vis2k
231a384881 Telepathy updated to latest version 2019-10-07 10:43:47 +02:00
Chris Langsenkamp
1f2ff6b2c9 Code formatting 2019-10-05 10:13:13 -04:00
Chris Langsenkamp
d177df8f35 Changed to OnStartServer 2019-10-04 04:42:48 -04:00
Chris Langsenkamp
24052428e0 Removed unused Players object from scene 2019-10-04 04:25:18 -04:00
Paul Pacheco
c85d0df533
fix: webgl build fix #1136 (#1137) 2019-10-03 01:05:28 -05:00
MrGadget
5dfc85931f Obsoletes OnServerAddPlayer (#1134)
* Obsoletes OnServerAddPlayer(NetworkConnection conn, AddPlayerMessage extraMessage)

* Fixed NetworkManager

* Fixed Pong

* Fixed Room

* Wrapped call in warning suppressors

* Improved comments
2019-10-02 10:26:19 +02:00
MrGadget
e73185932a Updated Basic Example (#1135)
* Updated Basic Example

* Added more comments

* addes more comments
2019-10-01 21:52:36 -05:00
Paul Pacheco
77ec19c0dd docs: update links to new add player documentation 2019-10-01 11:56:43 -05:00
Paul Pacheco
c0417e3788 docs: explain what TargetRpcProcessor does 2019-10-01 06:58:13 -05:00
Paul Pacheco
af6be4fe41 docs: explain what RpcProcessor does 2019-10-01 06:58:13 -05:00
Paul Pacheco
b0a67041d8 docs: explain what CommandProcessor does 2019-10-01 06:58:13 -05:00
vis2k
ed572da6a0 fix: NetworkBehaviourInspector wouldn't show SyncMode if syncvars / syncobjects were only private 2019-10-01 11:47:12 +02:00
Paul Pacheco
c24a73f6c9
fix: syncvars in commands work again (#1131)
* fix: syncvars in commands work again
2019-09-30 22:13:34 -05:00
Paul Pacheco
fb15c56d39 refactor: we no longer replace methods 2019-09-30 21:23:44 -05:00
Paul Pacheco
5ecd646134
fix: TargetRpc now works accross assemblies (#1130)
similar to #1128 but for TargetRpc
2019-09-30 21:19:32 -05:00
Paul Pacheco
13dbcb9f35
fix: ClientRpc methods now work accross assemblies (#1129)
Similar to #1128 but for client rpc
2019-09-30 21:17:30 -05:00
Paul Pacheco
d8a98d8d99
fix: Cmds can be called from child classes in other assemblies
fix #1108
2019-09-30 20:51:34 -05:00
vis2k
3831cbddbe fix: Telepathy fix a bug where calling Disconnect while connecting to a dead end would freeze Unity because .Join would wait forever. Interrupt fixes it. 2019-09-30 19:30:13 +02:00
Chris Langsenkamp
82ebf44ae6 updated xml comments 2019-09-29 20:19:20 -04:00
Chris Langsenkamp
5f034bf3da Added XML comments 2019-09-29 20:14:32 -04:00
Chris Langsenkamp
8e3f3c75de Fixed XML comments 2019-09-29 18:08:24 -04:00
Paul Pacheco
32c75fe14c Describe cleaner way to add customizable character (#1090)
* Describe cleaner way to add custom characters

* Update doc/articles/Guides/CustomPlayer.md

* Update doc/articles/Guides/CustomPlayer.md

* make example code clearer

* Update doc/articles/Guides/CustomPlayer.md

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update doc/articles/Guides/CustomPlayer.md

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update doc/articles/Guides/CustomPlayer.md

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update doc/articles/Guides/CustomPlayer.md

* Update doc/articles/Guides/CustomPlayer.md

* Apply suggestions from code review
2019-09-29 14:28:18 +02:00
vis2k
4ef6077d65
breaking: allocation free sends (#1103)
* so far

* websocket alloc free send

* keep old Pack name

* syntax

* LLAPI allocation free sends

* use ServerSend(list) for all

* multiplex send(list) based on https://github.com/vis2k/Mirror/pull/1118/files

* new mirror define
2019-09-29 13:34:15 +02:00
Paul Pacheco
c9f317ddee
feat: Websockets now give client address, fix #1121 (#1125) 2019-09-28 18:27:46 -05:00
Paul Pacheco
2cd36c8b58 Fix async warnings 2019-09-28 18:03:21 -05:00
Paul Pacheco
6402ecdf90 Fix xml docs 2019-09-28 17:52:46 -05:00
Paul Pacheco
dbafb2c56a Get rid of warning 2019-09-28 17:49:27 -05:00
Paul Pacheco
5649cc6977 feat: profiler info is available in production builds 2019-09-28 16:54:22 -05:00
Paul Pacheco
65d81d6fb4
Transports now give the channel when receiving message (#1124)
* Transports now give the channel when receiving message

* Profile inbound messages channel id
2019-09-28 14:01:45 -05:00
vis2k
680d14338b xmldocs too 2019-09-28 19:29:17 +02:00
vis2k
bc7e116a6e
feat: Transport can send to multiple connections at once (#1120)
* so far

* consider local conn

* internal Send(list) to avoid obsolete later

* typo

* empty line
2019-09-28 19:08:58 +02:00
vis2k
3c9459b60c NetworkConnection.ValidatePacketSize 2019-09-28 17:02:06 +02:00
vis2k
e6a20a5ef0 just Send 2019-09-28 16:13:07 +02:00
vis2k
55698162c9 merge it (#1119) 2019-09-28 09:02:19 -05:00
Paul Pacheco
2696ee20f4 Use local connection send method 2019-09-26 19:09:22 -05:00
Paul Pacheco
15098d59ea Add todo comment 2019-09-26 19:06:18 -05:00
Paul Pacheco
55c9bb625a fix: pack works if message is boxed 2019-09-26 18:54:11 -05:00
MrGadget
9bce5a84e8 Remove Host Migration cruft (#1114)
* Remove Host Migration cruft

* Deprecated instead of removed.
2019-09-25 18:49:25 -05:00
MrGadget
85e607088a Make RemoveClientAuthority easier to use (#1113)
* Make RemoveClientAuthority easier to use

* Added back the returns...oops
2019-09-25 13:45:18 -05:00
Paul Pacheco
db2e1488c1 fix #1096 move xmldocs to docs 2019-09-24 22:42:02 -05:00
MrGadget
7dfaf05cee Unity 2018.4.9 changes (#1111) 2019-09-24 15:48:41 -05:00
Paul Pacheco
db8310f838
fix: Sync full netAnimator for new clients, fix #980 (#1110) 2019-09-24 09:35:24 -05:00
Paul Pacheco
d91b387bb2 fix(weaver): fix #796, reload assemblies after initial import (#1106)
* fix: fix #796, reload assemblies after initial import

* Do not weave assemblies that aren't compiled yet

* Update CompilationFinishedHook.cs

* Update CompilationFinishedHook.cs

* Use SessionState instead of env variable
2019-09-24 08:43:55 +02:00
Chris Langsenkamp
043cf29d0a Fixed list items in comments 2019-09-23 03:26:41 -04:00
Chris Langsenkamp
97848e56fc Updated links 2019-09-21 23:43:06 -04:00
vis2k
958fc256be remove unused import 2019-09-21 22:44:55 +02:00
vis2k
633f7825ed NetworkAuthenticator: OnStartServer/OnStartClient made virtual because not all authenticators need them. 2019-09-21 22:42:14 +02:00
vis2k
c3917cdf0b NetworkAuthenticator: OnStartClient moved into client region 2019-09-21 22:41:07 +02:00
vis2k
a498bff511 syntax 2019-09-21 21:29:26 +02:00
vis2k
3a803c1c39 fix typo 2019-09-21 21:26:56 +02:00
MrGadget
99652b24f0 Reorder NetworkManager (#1105) 2019-09-21 11:50:55 -05:00
MrGadget
3e92f53a36 Update NetworkRoomPlayer.cs (#1094)
CmdChangeReadyState needs to be public
2019-09-21 09:25:01 -05:00
Paul Pacheco
a351879f91 perf: avoid boxing if there is no profiler 2019-09-21 08:19:07 -05:00
vis2k
4a13773dbc remove old comment 2019-09-21 10:47:34 +02:00
Chris Langsenkamp
760b5284b9 Fixed obsoletes and comments 2019-09-20 20:31:41 -04:00
Paul Pacheco
5985e6d641 GetRpcMethod does not need an instance 2019-09-19 23:31:43 -05:00
Paul Pacheco
bc87649be6 Don't report out messages if there are no recipients 2019-09-19 23:27:34 -05:00
Paul Pacheco
e742ffad4b Messages must be public for profiler 2019-09-19 23:26:50 -05:00
Paul Pacheco
838d4f019f
fix: Fix error scene error message in host mode
When using online scene and starting host mode,  users were getting:

```
Closing connection: 0. Received message Mirror.SceneMessage that required authentication
```
2019-09-18 18:13:26 -05:00
MrGadget
e88316f336 Rename NetworkConnection.playerController to identity (#1092)
* change playerController to identity

* improved obsolete

* Obsolete comment
2019-09-18 10:32:26 +02:00
Chris Langsenkamp
9f09c21680 Revert "Remove add component from deprecated components (#1087)"
This reverts commit 8a99ab16e8.
2019-09-17 23:23:13 -04:00
Chris Langsenkamp
6e4409b786 Fixed double-spaced bullets in docs 2019-09-17 20:34:26 -04:00
MrGadget
958e2ad612 Redefine SceneMessage (#1093)
* Redefine SceneMessage

* Add obsolete method

* Removed SceneLoader
2019-09-17 22:59:16 +02:00
Paul Pacheco
7ac43cd56a feat: Secure messages that require authentication, fixes #720 (#1089)
* feat: Secure messages that require authentication, fixes #720

* Rename the parameter for clarity

* Update Assets/Mirror/Runtime/MessagePacker.cs

Co-Authored-By: vis2k <info@noobtuts.com>

* Update Assets/Mirror/Runtime/MessagePacker.cs

Co-Authored-By: MrGadget <chris@clevertech.net>
2019-09-17 22:16:37 +02:00
MrGadget
56bcb02c15 feat: Authentication Framework (#1057)
* Component-based Authentication

* Capitalized IsAuthenticated

* Added isAuthenticated to NetworkConnection

* Removed activeAuthenticator as unnecessary

* Removed unnecessary using

* Added more comments

* Documentation

* Added cs to code blocks in doc

* fixed typo in doc

* Doc improvements

* Fixed another typo in doc

* Removed HideInInspector

* Updated doc and image

* Fixed comment

* Added inspector header and tooltips

* Fixed typo

* Add AuthenticationData object

* Add a bullet point in the doc about AuthenticationData

* Updated screenshot image

* Added HelpURL attribute

* Added Initializers for both Server and Client

* Fixed doc grammar and phrasing

* Forgot to add the ClientInitialize in StartHost

* Updated doc with info about the initializers

* Changed initializers from bool to void.

* Eliminated the abstract model and renamed to NetworkAuthenticator and made all methods virtual

* Fixed comment

* Fixed typo

* Doc cleanup

* Doc Cleanup

* authenticator RemoveAllListeners in StopServer and StopClient

* Update Assets/Mirror/Runtime/NetworkManager.cs

Co-Authored-By: vis2k <info@noobtuts.com>

* Changes requested by Vis

* reverted conflicting change

* Revert "reverted conflicting change"

This reverts commit f65870e073.

* UnityEditor.Undo.RecordObject

* made the name camelCase

* Added internal methods and On prefix to methods

* Reverted this change so it can be done in a separate PR

* Moved authenticator calls to after runInBackground

* Add built-in timeout feature

* Changed UnityEditor.Undo.RecordObject to use gameobject

* Convert to Abstract, add Basic Authenticator, update docs.

* Removed timeout, against my better judgement.

* Removed the rest of timeout, still against my better judgement

* Fixed event listener mappings

* Renamed and consolidated methods

* updated doc and image

* made OnClientAuthenticate and OnServerAuthenticate abstract

* Updated Debug log msgs

* changed to authenticator != null

* Renamed to NetworkAuthenticator
2019-09-17 10:41:04 +02:00
Paul Pacheco
e67035e971 Add profiler hooks (#1086)
* Add profiler hooks

* Polish API a bit

Now if we want to add more fields,  we can do so without
breaking profilers

* Provide documentation for the profiler data

* Use -1 channel until we implement this feature

* Use C# events instead of UnityEvent

* Simplify message info structure

* Renamed class

* Send -> OnSend
Receive -> OnReceive

* Update Assets/Mirror/Runtime/NetworkConnection.cs

* Update Assets/Mirror/Runtime/NetworkDiagnostics.cs

Co-Authored-By: vis2k <info@noobtuts.com>

* Update NetworkDiagnostics.cs
2019-09-17 08:45:51 +02:00
MrGadget
8a99ab16e8 Remove add component from deprecated components (#1087) 2019-09-16 22:14:02 -05:00
vis2k
229e5e8d6e remove trailing whitespace 2019-09-15 19:04:33 +02:00
vis2k
524abfc5e8 fix: NetworkManager OnValidate wouldn't properly save the automatically added Transport before because Undo.RecordObject is needed for that now. 2019-09-15 19:04:33 +02:00
Paul Pacheco
5a9e14c79e
Expose methods for profiler (#1083) 2019-09-15 09:43:36 -05:00
vis2k
06c3385e7d fix comment 2019-09-14 13:19:17 +02:00
vis2k
dcafadfdba fix #1073 sync components with different intervals and add test (#1077) 2019-09-12 07:56:59 -05:00
vis2k
245dcfd1d9 forgot internal 2019-09-12 14:23:11 +02:00
MrGadget
d5e6bbc552 Clear Handlers on NetworkClient.Shutdown (#1069)
* Clear handlers on Shutdown

* Update NetworkClient.cs

* Update NetworkClient.cs
2019-09-12 13:35:08 +02:00
vis2k
414fa9cfb9 forgot to make internal for test 2019-09-12 11:52:24 +02:00
vis2k
811f3f63c3 Add test for ClearAllComponents and syncInterval 2019-09-12 11:49:43 +02:00
vis2k
aae0a72143 add comment 2019-09-12 11:40:11 +02:00
vis2k
4eedae1d91 rename to ClearAllComponentsDirtyBits 2019-09-12 11:36:49 +02:00
vis2k
ce5484742b remove trailing whitespace 2019-09-12 11:21:12 +02:00
vis2k
f65f9e47db add comment 2019-09-12 11:21:04 +02:00
vis2k
81bb208d1d rename NetworkIdentity.ClearDirtyBits to ClearAllDirtyBits because that's what it does. It doesn't just clear some, it always clear all no matter what. 2019-09-12 11:20:27 +02:00
vis2k
584cda0508 consistent indentation with comment below 2019-09-12 10:45:27 +02:00
MrGadget
1b37a2160e Room Game Player Camera Restore (#1075)
Restore camera when Game Player is destroyed
2019-09-12 10:15:01 +02:00
MrGadget
5b9752558e Put all RoomPlayer's in DDOL (#1074)
* Put all RoomPlayer's in DDOL

* Simplify by using pattern matching
2019-09-12 10:14:44 +02:00
MrGadget
0bd898dc32 doc: Add XML comments to Custom Attributes (#1071)
* Add XML comments to Custom Attributes

* We don't throw errors,  just display them
2019-09-11 23:23:33 -05:00
MrGadget
650f9caa50 Remove privates (#1072) 2019-09-11 23:07:44 -05:00
MrGadget
4ac4c06135 Don't reload offline scene (#1066)
* Don't reload offline scene

Check if we're already in the offline scene before calling ClientChangeScene to the offline scene.

* Update NetworkManager.cs
2019-09-11 10:07:35 +02:00
MrGadget
0e95016e95 Lobby to Room (#1065)
* Change Lobby to Room with Obsoletes

* Changed folder from Lobby to Room

* Updated docs

* reverted leftover debu.log line

* Fixed OfflineGUI

* Changed the obsolete classes to inherit from the new ones.

* Fixed SyncVar hook
2019-09-11 10:06:25 +02:00
MrGadget
b3030aff85 Add check for sceneMode (#1054)
* Add check for sceneMode

* Added comment
2019-09-10 17:36:02 +02:00
vis2k
913d503fda Revert "Inserted blank lines where appropriate"
This reverts commit af84a1730b.
2019-09-05 19:45:25 +02:00
MrGadget
c84c3892bc Reset Start Position Index (#1058) 2019-09-05 10:45:23 -05:00
MrGadget
da8b2f1d59
Updated xml comments 2019-09-05 09:55:08 -04:00
MrGadget
af84a1730b
Inserted blank lines where appropriate 2019-09-05 09:52:49 -04:00
Paul Pacheco
87385628f0
fix: code generation works with il2cpp again (#1056) 2019-09-04 10:26:06 -05:00
Paul Pacheco
c00bb2d81d
No need to read symbols (#1055)
Should speed up build slightly.
If user has old symbols we don't care, so don't give an error.
2019-09-04 10:25:53 -05:00
MrGadget
ddd51e577e Don't call Ready if we're ready already (#1049)
* Fix typo

* Check ClientScene.ready
2019-09-04 10:29:48 +02:00
Paul Pacheco
5aac362f07 Remove unused usings 2019-09-03 20:39:30 -05:00
Paul Pacheco
463bdfa2fa Remove unnecesary usings 2019-09-03 20:37:11 -05:00
Paul Pacheco
4ef680a474 fix: suppress warning on standalone build #1053 2019-09-03 18:09:30 -05:00
Paul Pacheco
13ca6b6542 Remove unnecesary using 2019-09-03 18:01:17 -05:00
Paul Pacheco
34e1f45615 Remove redundant tostring 2019-09-03 18:00:45 -05:00
Paul Pacheco
e939b9734d Remove redundant castings 2019-09-03 18:00:18 -05:00
Paul Pacheco
00eb23aa01
fix: error with missing assemblies (#1052)
* fix: error with missing assemblies

During first import,  the weaver will be called before all assemblies
are built.  No need to look for custom readers and writers if the assemblies
are not built.

fixes #1051

* forgot using
2019-09-02 23:46:27 -05:00
Paul Pacheco
74faf2a95b fix: missed ushort reader/writer 2019-09-02 12:17:56 -05:00
MrGadget
68ce6327bc Updated Pong 2 (#982)
* Turned off Simulated & Set Transform Interval to zero

* Set sync interval to zero

* Removed ballPrefab field

* Cached RigidBody & simplified FixedUpdate

* Cached RigidBody and Moved Start code to OnStartServer

* Scene file updated

* Updated Scene file again

* Moved comments and fixed typos

* Eliminated GetComponent in code

* Assigned Rigidbody2d in inspector of prefabs
2019-09-02 19:06:04 +02:00
Paul Pacheco
b45afad641 feat: custom reader/writer via extension methods (#1047)
* Remove hardcoded writers from weaver

* Remove hardcoded readers from weaver

* Remove unused stuff

* cleanups

* Cleanup some comments

* remove unused import

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

* Improve comments a bit

* small cleanups

* Remove redundant private keyword

* Remove unnecesary blank space

* Remove unused field

* Measure how long it takes to find the readers and writers

* Find all extension methods for readers and writers

* Get rid of debugging log

* Don't comment obvious stuff

* Don't swallow exception

* only scan static classes for extension methods

* Add unit test for custom readers and writers

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

* Update Assets/Mirror/Runtime/NetworkWriterExt.cs

* Update ReaderWriterProcessor.cs

* Renamed to avoid abreviations

* Move the extensions inside the same .cs

* Update NetworkReader.cs

* Update NetworkWriter.cs
2019-09-02 18:57:45 +02:00
Paul Pacheco
e0b66db335 Link to non obsolete methods in xmldocs 2019-08-31 16:12:25 -05:00
Paul Pacheco
a61635424f Remove unncesary casting 2019-08-31 14:48:59 -05:00
Paul Pacheco
4638342168 Remove unnecesary casting 2019-08-31 14:47:19 -05:00
Paul Pacheco
32b72c959d use compound assignment 2019-08-31 14:46:12 -05:00
Paul Pacheco
42b635346a linting 2019-08-31 14:44:53 -05:00
Chris Langsenkamp
438dbfdf03 Fixed typo 2019-08-31 13:12:30 -04:00
Paul Pacheco
ae7fd90f1f use array segment for reading string 2019-08-30 23:16:30 -05:00
Paul Pacheco
7f8840c9b6 refactor to use arraysegment 2019-08-30 23:12:51 -05:00
Paul Pacheco
702b183034 Removed more unused variables 2019-08-30 21:49:26 -05:00
Paul Pacheco
bd44d35bae Use dfault uint64 writer 2019-08-30 21:46:12 -05:00
Paul Pacheco
cab08b1b5a Use default int32 writer 2019-08-30 21:42:53 -05:00
Paul Pacheco
3181b4a5d4 Use default uint64 reader 2019-08-30 21:39:50 -05:00
Paul Pacheco
e389f62c2d Use default reader for uint32 2019-08-30 21:37:19 -05:00
Paul Pacheco
609480208c use default int32 reader 2019-08-30 21:35:00 -05:00
Paul Pacheco
a5d4f46980 test: fix invalid unit test 2019-08-30 17:56:42 -05:00
Chris Langsenkamp
4a78288c92 Updated Comments 2019-08-30 13:48:32 -04:00
vis2k
c6d86b301b
feat: component based SyncToOwner, fixes #39 (#1023)
* adjust comments

* NetworkBehaviour.syncMode

* show in Editor

* feat: component based SyncToOwner, fixes #39

* rename to Observers

* rename writers and comments too

* SendToReady old signature version

* shorter syntax

* fix segment write length

* fix NullReferenceException for local player

* update comment

* support runtime syncMode changes

* add a test

* remove comments

* UL suffix to avoid cast

* UL suffix

* remove empty line

* OnSerializeAllSafely returns how many components were written. MirrorUpdate only sends to owner/observer if anything written.

* fix tests
2019-08-26 15:21:59 +02:00
Chris Langsenkamp
9e1cb624ac Replace <T> with {T} for XML Docs Parser 2019-08-25 22:23:55 -04:00
Chris Langsenkamp
080bcb0a31 Updated HelpURL links 2019-08-25 22:10:00 -04:00
Paul Pacheco
614f4bc875 Fix xmldoc in NetworkTime 2019-08-25 08:30:44 -05:00
Paul Pacheco
4730b137cf Fix issue doc.csproj conflicting with other assemblies 2019-08-24 15:04:40 -05:00
Paul Pacheco
e1561bda02 Add mea for doc project 2019-08-24 12:36:25 -05:00
Paul Pacheco
35fee94d56
docs: switch to docfx for documentation (#1026)
* Moved doc files to docfx folder

* load csproj

* doc generation

* Run docfx

* Add docfx

* Deploy docs to mirror-networking.com

* use deploy phase

* deploy whole generated site

* Fixed the semantic release command

* Is last \ required?

* show debug log

* using lftp for site deploy

* Testing lftp

* Show current folder

* try -e command option

* Show me the files

* use plain ftp

* use choco install instead of cinst

* fix ssl certificate validation

* fix username

* Upload site to xmldocs folder

* no need to archive docs

* No need for debug output

* Fix file permissions

* show me .htaccess

* Show me contents

* Wipe out folder to fix permissions

* Set file permissions

* Fix file permissions

* complete toc list

* Migrated intro page

* Remove old docs

* Update link to docs

* Add link to github

* Only update docs for stuff in master

* This is a powershell command

* Update doc/articles/Concepts/Communications/RemoteActions.md

* Update doc/articles/Concepts/VisibilityCustom.md

* Update doc/articles/Concepts/Authority.md

* Update doc/articles/Concepts/GameObjects/SpawnObjectCustom.md

* Update doc/articles/Concepts/Authority.md

* Update doc/articles/Classes/SyncVars.md

* No need to run semver twice
2019-08-24 10:20:33 -05:00
Paul Pacheco
9e283b1f9b refactor: syntax fixes 2019-08-18 16:30:53 -05:00
Paul Pacheco
1070fee325 refactor: Unused parameter 2019-08-18 16:23:10 -05:00
Paul Pacheco
0bf6453aff refactor: fix warnings 2019-08-18 16:22:40 -05:00
Paul Pacheco
216c0cb65c docs: Document the network time class 2019-08-18 16:20:17 -05:00
Paul Pacheco
4bc4ec86ea docs: proper reference to non obsolete method 2019-08-18 16:05:49 -05:00
Paul Pacheco
12f338e142 docs: proper reference to non obsolete method 2019-08-18 16:05:03 -05:00
Paul Pacheco
325d30f42a docs: proper reference to non obsolete method 2019-08-18 16:04:30 -05:00
Paul Pacheco
d441c2faf9 refactor: unused parameters 2019-08-18 15:54:05 -05:00
Paul Pacheco
f78510a6a9 refactor: unused parameters 2019-08-18 15:53:05 -05:00
Paul Pacheco
5e2914be3c refactor: unused parameter 2019-08-18 15:52:10 -05:00
Paul Pacheco
2bae240534 doc: fix parameter name 2019-08-18 15:50:26 -05:00
Paul Pacheco
d08dd0328e refactor: handlers dictionaries should be readonly 2019-08-18 15:49:46 -05:00
Paul Pacheco
9e3ecc1ced perf: remove network transform allocation 2019-08-17 13:22:11 -05:00
vis2k
812c6434e2 remove empty line 2019-08-12 20:58:49 +02:00
vis2k
48785b594c remove empty line 2019-08-12 20:02:10 +02:00