Commit Graph

4945 Commits

Author SHA1 Message Date
MrGadget
8d07be97ed fixed XML comment 2022-04-17 12:40:17 -04:00
MrGadget
63fdd53903 fixed comment 2022-04-17 12:23:44 -04:00
vis2k
3839fafade remove unused import 2022-04-17 14:16:36 +08:00
vis2k
bec8e01c69 MIRROR_66_0_OR_NEWER 2022-04-17 14:01:24 +08:00
MrGadget
9c47d87bce XML Comments 2022-04-16 12:46:33 -04:00
MrGadget
c86deedbd9 Updated NetworkStatistics
- Reorganized to method call order
- Added component attributes
- XML comments for docs
2022-04-16 12:24:15 -04:00
vis2k
4d0cd1054a
fix: #3138, 3135 revert Cmd/Rpc from 2 byte indices back to 4 byte function hashes for stability (#3139)
* Revert "fix: Weaved static constructors need to always run (#3135)"

This reverts commit b0624b2f64.

* Revert "perf: Rpcs/Cmds functionHash bandwidth reduced from 4 => 2 bytes (with the potential for 1 byte VarInt) (#3119)"

This reverts commit a868368eca.

* comment
2022-04-16 19:53:55 +07:00
MrGadget
3dba6a3833 NetworkRoomManager log update 2022-04-15 11:25:14 -04:00
Robin Rolf
b0624b2f64
fix: Weaved static constructors need to always run (#3135)
Static constructors are lazily called when the class is first "used"
 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/static-constructors
 > It is called automatically before the first instance is created or any static members are referenced.
 This means, in particular circumstances, client and server may diverge on which classes they have "loaded"
 and thus the rpc index will be desynced
 One such example would be on-demand-loading of prefabs via custom spawn handlers:
   A game might not want to preload all its monster prefabs since there's quite many of them
   and it is practically impossible to encounter them all (or even a majority of them) in a single play
   session.
   So a custom spawn handler is used to load the monster prefabs on demand.
   All monsters would have the "Monster" NetworkBehaviour class, which would have a few RPCs on it.
   Since the monster prefabs are loaded ONLY when needed via a custom spawn handler and the Monster class
   itself isn't referenced or "loaded" by anything else other than the prefab, the monster classes static
   constructor will not have been called when a client first joins a game, while it may have been called
   on the server/host. This will in turn cause Rpc indexes to not match up between client/server
 By just forcing the static constructors to run via the [RuntimeInitializeOnLoadMethod] attribute
 this is not a problem anymore, since all static constructors are always run and all RPCs will
 always be registered by the time they are used
2022-04-12 12:00:15 +08:00
MrGadget
3188472f74 Syntax: same method grouping as NetworkReaderExtenstions 2022-04-11 09:42:23 -04:00
MrGadget
2f76c73c41 fix: NetworkWriterExtensions:WriteTexture2D call WriteArray instead of Write 2022-04-11 09:12:35 -04:00
vis2k
92c5b54034 add comment 2022-04-04 20:36:42 +08:00
vis2k
eded0a2b15 fix: #2705 NetworkClient.SpawnPrefab looks for spawn handlers before looking for registered prefabs, instead of the other way around 2022-04-04 19:21:26 +08:00
vis2k
7d4a9c46e4 NetworkClient: RegisterPrefabIdentity double registration warning improved with explanation (related to #2705) 2022-04-04 19:13:46 +08:00
vis2k
1a256b5060 Tanks Example: destroy projectile after 2 seconds instead of 5 seconds 2022-04-04 11:51:57 +08:00
vis2k
1a09f0dc58 Tanks Example: reuse DestroySelf() 2022-04-04 11:39:44 +08:00
vis2k
1a6c5de8ac
fix: #2060 serializing GameObjects / NetworkIdentities now throws an obvious exception for prefabs / unspawned objects (#3132)
* fix: #2060 serializing GameObjects / NetworkIdentities now throws an obvious exception for prefabs / unspawned objects

* NetworkWriter: WriteGameObject reuses WriteNetworkIdentity

* warning instead of exception
2022-04-04 01:24:35 +08:00
vis2k
3ec5ca758e comment 2022-04-03 11:39:30 +08:00
vis2k
243821f5b1 fix: #2972 ReadNetworkBehaviour now reads the correct amount of data even if the NetworkIdentity has disappeared on the client.
added test to guarantee it never happens again.
2022-04-03 10:50:04 +08:00
vis2k
a92189b272 ReadNetworkIdentity: reuse Utils.GetSpawnedInServerOrClient 2022-04-03 10:47:54 +08:00
MrGadget
c81a4374b2 fixed comment 2022-04-01 17:29:23 -04:00
MrGadget
c79c6d1e70 fix: Correct version for Queue.TryDequeue
- fixes #3131
2022-04-01 17:19:37 -04:00
vis2k
3d471db938 fix: added Queue.TryDequeue extension for Unity 2019 2022-04-01 17:18:12 +08:00
vis2k
6c2559a73e
perf: Build batches directly instead of queuing serializations (#3130)
* rename

* so far

* better

* fixx

* old

* error

* typo

* comment
2022-04-01 13:46:38 +08:00
Robin Rolf
1631402bd7
fix: Byte format test uses current culture (#3126)
Since some may use , instead of . as their decimal place seperator

Error:
String lengths are both 7. Strings differ at index 1.
  Expected: "1.00 KB"
  But was:  "1,00 KB"
2022-03-26 13:06:30 +08:00
vis2k
d8774ecd47 fix: #2954 calling StopClient in host mode does not destroy other client's objects anymore 2022-03-23 23:58:47 +08:00
vis2k
6f981224a9 fix: #2954 calling StopClient in host mode does not reset nextNetId anymore 2022-03-23 23:55:35 +08:00
vis2k
3d6c41a595
fix: #3122 DestroyAllClientObjects now also resets after unspawn handler was called (#3124) 2022-03-23 23:54:58 +08:00
MrGadget
cca7afdd08 MultipleMatches example fixed 2022-03-23 07:19:36 -04:00
MrGadget
3024427933 Fixed comments 2022-03-23 07:19:36 -04:00
vis2k
2c138c5d71 hasAuthority comment updated 2022-03-22 22:51:48 +08:00
vis2k
012d7a5d1e Tests: runtime clientscene tests simplified and they don't rely on host mode anymore 2022-03-22 22:51:35 +08:00
vis2k
4b207d2994 fix: NetworkStatistics Unity 2019 support (part two) 2022-03-19 01:45:13 +08:00
vis2k
8f357d5961 fix: NetworkStatistics Unity 2019 support 2022-03-15 00:23:11 +08:00
vis2k
f4ceb067c9 perf: NetworkTime ExponentialMovingAverage .Value & .Var as fields instead of properties to avoid call overhead 2022-03-12 20:26:40 +08:00
vis2k
d979880c5f perf: NetworkTime.time inlined 2022-03-12 20:26:20 +08:00
vis2k
18170d16b8 perf: NetworkTime.localTime inlined 2022-03-12 20:26:02 +08:00
vis2k
45e1afc812 perf: inline GetIndexFromFunctionHash because it's called for every RPC 2022-03-12 19:46:00 +08:00
vis2k
5fcbd1d550 perf: CompressVarInt uses WriteByte instead of Write<T> to avoid Action call overhead 2022-03-12 19:20:00 +08:00
vis2k
a868368eca
perf: Rpcs/Cmds functionHash bandwidth reduced from 4 => 2 bytes (with the potential for 1 byte VarInt) (#3119)
* perf: Rpcs/Cmds functionHash bandwidth reduced from 4 => 2 bytes (with the potential for 1 byte VarInt)

* tests
2022-03-12 18:26:00 +08:00
vis2k
5515eae4e8 perf: HandleRemoteCall passes componentIndex as byte to avoid extra < 0 check 2022-03-11 23:55:35 +08:00
vis2k
b6a9a95572 align NetworkStatistics exactly below NetworkManager HUD 2022-03-11 13:33:36 +08:00
vis2k
3d03146699
feature: NetworkStatistics (#3118)
* feature: NetworkStatistics

* better UI
2022-03-11 13:29:39 +08:00
vis2k
b100307929 feature: Transport.OnClient/ServerDataSent events += (prepares for NetworkStatistics) (#3117)
* feature: Transport.OnClient/ServerDataSent events += (prepares for NetworkStatistics)

* comments
2022-03-11 13:19:24 +08:00
vis2k
dc5162099e
feature: allow hooking into Transport events via += -= (prepares for NetworkStatistics) (#3116) 2022-03-11 13:10:12 +08:00
vis2k
0499dc0503 Tests: ShutdownCleanup test cleanup to prepare for Transport events += -= hooking 2022-03-10 22:19:21 +08:00
vis2k
e71f0e1cc4 script icons .meta 2022-03-10 20:29:41 +08:00
vis2k
9686c68bb7 base Transport moved to Runtime folder; Transport folder renamed to Transports 2022-03-10 20:25:49 +08:00
vis2k
99c3c0ded6 perf: NetworkConnection.Send() inlining 2022-03-10 19:57:35 +08:00
vis2k
24142b085b comments 2022-03-10 19:50:08 +08:00
vis2k
3643679ec5 comments 2022-03-10 19:46:42 +08:00
vis2k
70bd831bd8 NetworkWriterPooled moved into separate file 2022-03-10 19:45:37 +08:00
vis2k
d92dbe1572 NetworkReaderPooled moved into separate file 2022-03-10 19:45:03 +08:00
vis2k
0402d31eb2 breaking: PooledNetworkReader/Writer renamed to NetworkReader/WriterPooled 2022-03-10 19:44:13 +08:00
vis2k
f0c9a81c10
breaking: NetworkReader/WriterPool API simplified: GetReader/Writer => Get; Recycle => Return; (#3112)
* breaking: NetworkReader/WriterPool API simplified: GetReader/Writer => Take; Recycle => Return;

* rename Take() to Get()

* Pool<T> Take() => Get()
2022-03-10 19:37:21 +08:00
vis2k
006efa090e fix test 2022-03-09 16:40:31 +08:00
vis2k
926761c452 fix test 2022-03-09 16:33:34 +08:00
vis2k
70e40b88b5 test for #3106 OnStartLocalPlayer being called twice from ReplacePlayerForConnection 2022-03-09 16:25:28 +08:00
vis2k
f6df4edaae fix: #3106 NetworkClient.ChangeOwner now uses .isLocalPlayer flag to check if OnStopLocalPlayer should be called.
previously it used localPlayer static identity, but that's error prone because in this case it was set by another function before already. added test to guarantee it never fails again.
2022-03-09 16:21:43 +08:00
vis2k
e2d1ad0b5e better comment 2022-03-09 16:18:40 +08:00
vis2k
fedb6002b6 not necessary 2022-03-09 16:04:30 +08:00
vis2k
1423bee9d2 comment 2022-03-09 16:03:46 +08:00
vis2k
35ec47d213 Tests: guarantee OnStopLocalPlayer is called when using RemovePlayerForConnection. for #3106 2022-03-09 16:02:24 +08:00
vis2k
5846045122 comments 2022-03-09 15:55:05 +08:00
vis2k
303b66247e ChangeOwner comments 2022-03-09 15:54:27 +08:00
vis2k
8bef2bf864 TODO 2022-03-09 15:52:07 +08:00
vis2k
c14566c731 comments 2022-03-09 15:51:12 +08:00
vis2k
a34cb00eb2 comment 2022-03-09 15:49:53 +08:00
vis2k
401074fc67 syntax 2022-03-09 15:47:43 +08:00
vis2k
376494e7f5 syntax 2022-03-09 15:46:50 +08:00
vis2k
7e19881630 MIRROR_65_0_OR_NEWER 2022-03-07 20:26:11 +08:00
MrGadget
a51bc743a8 syntax 2022-02-26 15:02:16 -05:00
MrGadget
3a1d9822bd Updated Authenticators 2022-02-26 14:53:25 -05:00
vis2k
66eff281c7 breaking: removed unnecessary 'initialize' parameter from InterestManagement.OnRebuildObservers 2022-02-26 15:26:04 +08:00
MrGadget
c1e05d9df4 fix: NetworkAuthenticator methods virtual
- abstract throws an error for derived classes that wrap server methods in UNITY_SERVER or similar as missing required override.
2022-02-25 09:47:35 -05:00
MrGadget
44dfce94b1 fix: Chat Example Authenticator 2022-02-24 08:22:33 -05:00
MrGadget
a88b03739f fix: NetworkConnectionToClient in Authenticators 2022-02-23 14:57:25 -05:00
Robin Rolf
d67dc74bbd
feat: Allow generic NetworkBehaviour<T> subclasses (#3073)
* feat: Allow generic NetworkBehaviour subclasses

It's only generic SyncVars (via attribute) and rpcs/cmds we don't want to deal with and that aren't supported.
Even generic SyncVar<T> works

* Generate IL2CPP compatible base calls

see cf91e1d547

* Make SyncVar field/hook references generic too

Fixes bad IL

* Update Extensions.cs

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

Co-authored-by: vis2k <info@noobtuts.com>
2022-02-23 12:50:15 +08:00
James Clancey
7670271bf1
fix: Android multicast Discovery. Fixes #2878 (#2887)
* Added Android multicast support for Discovery Fixes #2878

This will add support for turning on and off Multicast for Android devices.
It also contains an Android manifest editor that will add the appropriate permissions.

* Reset the lock state once you end it.

* Update NetworkDiscoveryBase.cs

* Update AndroidManifestHelper.cs

Co-authored-by: vis2k <info@noobtuts.com>
2022-02-17 19:39:20 +08:00
vis2k
c804efd731 ClientSceneTests: remove redundant ApplyPayload tests. we have higher level (and more simple) tests that already guarantee this. 2022-02-17 13:08:15 +08:00
vis2k
1bbd2bbad7 MirrorTest: CreateNetworkedAndSpawnPlayer<T, U> 2022-02-17 12:55:31 +08:00
vis2k
d91f43a486 MirrorTest: guarantee isServer/isClient 2022-02-17 00:02:49 +08:00
vis2k
a07eb1bbba Tests: use explicit NetworkConnectionToClient 2022-02-17 00:02:02 +08:00
vis2k
fa1e5184c1 Tests: TooManyComponents improved to prepare for SyncDirection 2022-02-16 23:05:35 +08:00
vis2k
e0bdca7532 Tests: TooManyComponents improved to prepare for SyncDirection 2022-02-16 23:02:14 +08:00
vis2k
d99652873b corrected the answer 2022-02-16 21:46:52 +08:00
vis2k
baf5002560 "life is all about setup" 2022-02-16 21:41:42 +08:00
vis2k
61a98fd97b Tests: SerializationException cleanup to prepare for SyncDirection 2022-02-16 21:38:54 +08:00
vis2k
a45d3adf42 unused import 2022-02-16 21:25:01 +08:00
vis2k
5420cd084d Tests: OnSerializeAndDeserializeAllSafely cleanup 2022-02-16 21:24:44 +08:00
vis2k
b64a170b24 syntax 2022-02-16 16:36:26 +08:00
vis2k
f042933334 perf: NetworkReader: ReadBytes cleanup. copy buffer directly instead of generating segment first. 2022-02-16 16:33:41 +08:00
vis2k
c26c75485a NetworkReader: move extensions into separate file 2022-02-16 16:11:17 +08:00
vis2k
0f77fe342d NetworkWriter: move extensions into separate file 2022-02-16 16:09:52 +08:00
vis2k
c3ac08203a NetworkWriter: runtime resizing comment 2022-02-16 15:50:51 +08:00
vis2k
2ea328750c
[SyncVar] OnDeserialize moved to C# to reduce headaches (#3103) 2022-02-16 12:24:01 +08:00
vis2k
533c054408 GenerateNewActionFromHookMethod helper function for future reuse in OnDeserialize 2022-02-15 17:31:28 +08:00
vis2k
72973f484a
fix: host mode [SyncVar] setter hooks now support virtual / overwritten functions again (#3102) 2022-02-15 17:30:56 +08:00
vis2k
4e91833c7d
fix: host mode [SyncVar] setter hooks now support static functions again (#3101)
* fix: host mode [SyncVar] setter hooks now support static functions again

* Tests: [SyncVar] setter in host mode static hook test for https://github.com/vis2k/Mirror/pull/3101
2022-02-15 14:42:39 +08:00
vis2k
e41edfae2f better comment 2022-02-13 22:21:36 +08:00
James Frowen
e250d4eb6f
feat: updating to SimpleWebTransport v1.3 (#3099)
- Allowing max message size to be increase to int32.max
- fixing minor bugs (see change log)
2022-02-13 17:01:04 +08:00
MrGadget
9e45ce869b
breaking: Make clientLoadedScene protected (#3098)
- users shouldn't be messing with this
- it does need to be available in an override of OnClientConnect
2022-02-13 16:56:54 +08:00
MrGadget
8394190b11 explicit type 2022-02-12 19:44:04 -05:00
MrGadget
faf8f15a59 Comments 2022-02-12 16:12:15 -05:00
MrGadget
4db8da0b6a Comments 2022-02-12 16:03:15 -05:00
vis2k
791a9b907d test comments 2022-02-11 19:40:40 +08:00
vis2k
0b4787d3d9 SyncVarAttributeTest: use MirrorTest's ProcessMessages() instead of manual serialize/deserialize for consistency 2022-02-09 13:07:13 +08:00
vis2k
9271990cae SyncVarAttributeHookTest: use MirrorTest's ProcessMessages() instead of manual serialize/deserialize for consistency 2022-02-09 13:05:24 +08:00
vis2k
f962f7fb47 GetSerializationAtTick: disable tick based serialization caching during tests. fixes [SyncVar] changes not serializing in tests because Time.frameCount would never increase during tests, so the original spawn serialization would always be reused. 2022-02-09 12:48:12 +08:00
vis2k
d5af1c6407 GeneratedSyncVarSetter: add comments 2022-02-09 01:58:04 +08:00
vis2k
2610dfc1b3
Tests: Mirrortest isClient check and make sure it's actually set (#3094)
* Tests: guarantee isClient == true

* fix
2022-02-08 20:44:56 +08:00
vis2k
39632fc5e5 NetworkClient.SpawnSceneObject: don't rely on SpawnMessage 2022-02-08 00:01:07 +08:00
MrGadget
46e6c61da6
fix: Match & Team Int Mgmt OnCheckObserver (#3089) 2022-02-06 08:30:03 -05:00
MrGadget
4e4e001c92 fix: Missed a couple NetworkConnectionToClient changes 2022-02-06 07:14:12 -05:00
MrGadget
b117b92d08
fix: Updated Templates (#3090) 2022-02-06 06:25:08 -05:00
MrGadget
c94ee5222f
breaking: Use NetworkConnectionToClient (#3088)
* fix: Use NetworkConnectionToClient

* Revert change to MatchInterestManagement

* Revert change to Basic Example scene

* Revert change to Basic Example Player prefab

* Interest Management too

* Updated MultipleMatches example

* Updated RoomManager and Room example
2022-02-06 14:03:55 +08:00
vis2k
f26797a7d7
breaking: NetworkConnection cleanup (#3086)
* breaking: NetworkManager: use strong typed OnConnect/OnDisconnect events

* breaking: NetworkConnection server code moved to NetworkConnectionToClient (it shouldn't be in base class, otherwise it would be in client code's NetworkConnectionToServer as well)

* InterestManagement.OnCheckObserver: use NetworkConnectionToClient
2022-02-06 13:24:38 +08:00
vis2k
db1c7e3e28 TODO 2022-02-05 18:19:46 +08:00
vis2k
6cc293b12d NetworkBehaviour.connectionToClient type changed to NetworkConnectionToClient, just like NetworkIdentity 2022-02-05 18:03:12 +08:00
vis2k
d56da0ed02 NetworkServer.OnConnected/Disconnected/ErrorEvent: strong typing 2022-02-05 13:12:55 +08:00
vis2k
770dfc838a use NetworkConnectionToClient for NetworkServer.RegisterHandler registered handlers. allows for further NetworkConnection cleanups, enforces actual type, does not break anything 2022-02-05 13:12:55 +08:00
vis2k
c556b23543 NetworkServer.RegisterHandler: allow passing NetworkConnectionToClient instead of NetworkConnection base class.
both work now; old code does not break; but still allows for new code NetworkConnection cleanups
2022-02-05 13:12:55 +08:00
vis2k
eafaa2cf32 syntax 2022-02-05 00:51:50 +08:00
vis2k
bf2350030b breaking: NetworkServer.NoExternalConnections => HasExternalConnections to avoid double negative checks as usual 2022-02-05 00:47:24 +08:00
vis2k
7488aac1d6 syntax 2022-02-05 00:37:48 +08:00
vis2k
8e03cee673 remove old comment 2022-02-05 00:32:06 +08:00
vis2k
3cf595ff30 MessagePackingTest: don't rely on scene feature 2022-02-04 13:26:16 +08:00
James Frowen
b62fbf51b5
fix(SWT): fixing jslib for Unity2021 (#3084)
replacing `Pointer_stringify` with `UTF8ToString`, This still works in  2019.4 as well.

fixes "Runtime is not defined" unity bug. Unity does not auto link Runtime in 2021, this is a bug, checking if it is undefined then creating it fixes the issue, and  will continue you work after unity fixes the bug. Note: `Module['dynCall_vi']` fix does not work here because it throws an exception after each call.

original commits:
2f5a74ba10
945b50dbad

fixes: https://github.com/vis2k/Mirror/issues/3012
2022-02-03 12:55:16 -05:00
vis2k
ff1199607e perf: SyncVar<T> some more inlining 2022-02-03 22:12:00 +08:00
vis2k
0d55ed8448 Tests: SetAllClientsNotReady - don't rely on host mode 2022-02-03 21:36:48 +08:00
vis2k
924ce2b668 Tests: SetClientReadyAndNotReady don't rely on host mode 2022-02-03 21:35:16 +08:00
vis2k
9f5bc2fadb ClientRpcOverrideTests: don't rely on hos tmode 2022-02-02 21:37:36 +08:00
vis2k
60f6bf7092 ClientRpcTests: don't rely on host mode anymore 2022-02-02 21:36:33 +08:00
vis2k
bb4ae1eeac TargetRpcOverrideTests: don't rely on host mode 2022-02-02 21:32:39 +08:00
vis2k
51678d7cdc TargetRpcTests: don't rely on host mode 2022-02-02 21:31:30 +08:00
vis2k
1f42831a7f RpcNetworkIdentityTests: don't rely on host mode 2022-02-02 21:29:35 +08:00
vis2k
5ba40d5608 unused import 2022-02-02 21:27:52 +08:00
vis2k
c7a8af3b7f syntax 2022-02-02 21:24:38 +08:00
vis2k
7251cd621c CommandOverrideTests: don't rely on host mode 2022-02-02 21:24:34 +08:00
vis2k
8d602ecec7 cleaner 2022-02-02 21:18:07 +08:00
vis2k
4a23a9a0ad CommandTests: need host mode for one test 2022-02-02 21:17:00 +08:00
vis2k
bc941a1b9e CommandTests: don't rely on host mode anymore 2022-02-02 21:14:11 +08:00
vis2k
83049d71f7 Tests: DistanceInterestManagement uses holder GameObject 2022-02-02 13:31:43 +08:00
vis2k
1d6cad9c24 NetworkWriterTests: don't rely on host mode anymore 2022-02-02 13:05:31 +08:00
vis2k
e959ff2d23 NetworkBehaviourDirtyBitsTests: don't rely on host mode anymore 2022-02-02 12:56:43 +08:00
vis2k
ce849cd61b Tests: fix NetworkServer.DestroyObject .Destroy throwing during tests. use DestroyImmediate if Application isn't running. 2022-02-02 12:54:58 +08:00
vis2k
23455570e6 MirrorTest: fix CreateNetworkedAndSpawnPlayer not properly spawning because the GO wasn't considered for spawning because it wasn't inactive 2022-02-02 12:44:37 +08:00
vis2k
9451fa0369 add check 2022-02-02 12:42:15 +08:00
vis2k
9512b8f0e6 MirrorTest: fix CreateNetworkedAndSpawnPlayer not properly spawning because the GO wasn't considered for spawning because it wasn't inactive 2022-02-02 12:40:42 +08:00
vis2k
badde10c1d MirrorTest: fix wrong authority check always throwing assert 2022-02-02 12:21:06 +08:00
vis2k
ac06a32622 NetworkBehaviourSerializeTests: don't rely on host mode anymore 2022-02-02 12:00:48 +08:00
vis2k
5ba53185f2 Tests: SerializeAndDeserializeObjectsDelta doesn't rely on host mode anymore 2022-02-02 11:54:31 +08:00
vis2k
3772f0b8e3 Tests: SyncObjectChanges_DontGrowWithoutObservers don't rely on host mode 2022-02-02 01:52:30 +08:00
vis2k
eef8e02974 Tests: don't rely on host mode 2022-02-02 01:50:46 +08:00
vis2k
55abc80c8e Tests clear NetworkManager singleton. prepares for NS/NC as component where we would need to initialize NM (and the singleton), and need to clear it 2022-02-02 01:34:28 +08:00
vis2k
8f7a0858ce NetworkManagerTests: use holder 2022-02-02 01:32:58 +08:00
vis2k
6ae3e0b4ce Multiplex Tests: use holder GO to make NS/NC as component easier later 2022-02-02 01:31:48 +08:00
vis2k
51ccb29275 Spatial Hashing Tests: use holder GO to make NS/NC as component easier later 2022-02-02 01:30:12 +08:00
vis2k
5b68aa8ade MirrorTest: holder GO to make NS/NC as component easier later 2022-02-02 01:29:10 +08:00
vis2k
efcf960917 SyncVarTests: don't rely on host mode 2022-02-02 01:24:19 +08:00
vis2k
39ad3840a5 SyncVarNetworkIdentityTests: don't rely on host mode 2022-02-02 01:23:08 +08:00
vis2k
6049925f66 SyncVarNetworkBehaviourInheritedTests: don't rely on host mode 2022-02-02 01:20:03 +08:00
vis2k
0ef0545eb8 SyncVarNetworkBehaviourAbstractTests: don't rely on host mode 2022-02-02 01:17:24 +08:00
vis2k
cb0040b1c3 SyncVarGameObjectTests: don't rely on host mode 2022-02-02 01:10:37 +08:00
vis2k
f5a8458391 MultiplexTest: add missing TearDown 2022-02-02 00:57:11 +08:00
vis2k
9912341f48
Tests: remove redundant generated attribute tests. -5000 LOC (#3079)
* Tests: remove redundant generated Attribute tests.

* move to AttributeTests.cs

* syntax

* proper SetUp
2022-02-01 18:47:49 +08:00
MrGadget
224a5587b0 Updated PlayerCamera scripts in examples 2022-02-01 04:14:17 -05:00
MrGadget
85048539d0 Updated Basic Example 2022-02-01 04:06:12 -05:00
vis2k
a54e74716d SyncVarNetworkBehaviour: ==, != for T as well to block != null 2022-02-01 13:09:26 +08:00
vis2k
0fd0aa2135 SyncVarGameObject/NetworkBehaviour/NetworkIdentity .Equals/.GetHashCode too 2022-02-01 12:41:33 +08:00
vis2k
f03dd3f8b8 SyncVar<T> Hook changed to .Callback += like SyncLists. can now be assigned in OnStartClient too. 2022-02-01 12:41:33 +08:00
vis2k
ed7de945d5 SyncVarNetworkBehaviour ==, != overloads 2022-02-01 12:41:33 +08:00
vis2k
0e42e5ce48 SyncVarNetworkIdentity ==, != overloads 2022-02-01 12:41:33 +08:00
vis2k
9efb3ada25 SyncVarGameObject ==, != overloads 2022-02-01 12:41:33 +08:00
MrGadget
27e71acef6 fix: Call OnStopLocalPlayer from ChangeOwner 2022-01-31 11:08:24 -05:00
MrGadget
6f84dfc0e1 Assigned Mirror Icons 2022-01-31 03:09:45 -05:00
vis2k
7c15a76dc1 remove unused imports 2022-01-31 14:25:08 +08:00
MrGadget
68f1a605d3 Added OnStopLocalPlayer to NetworkBehaviour Script Template 2022-01-31 00:35:35 -05:00
vis2k
e7a2a1467f fix: #2907 LatencySimulation now uses Time.unscaledTime 2022-01-31 12:44:56 +08:00
vis2k
7f9209cd7f Weaver.Extensions.Is: Syntax 2022-01-31 12:25:15 +08:00
vis2k
4a95f42c17
feat: OnStopLocalPlayer (#2070) (#3076)
* OnStopLocalPlayer

* NB test

* stuff
2022-01-30 12:23:37 +08:00
vis2k
da09e71576
fix: Duplicate IL2CPP hashes when building to WebGL (#3061) (#3072)
* fix: Duplicate IL2CPP hashes when building to WebGL (#3061)

* change to tryget

* Update DistanceInterestManagement.cs

* Update MethodProcessor.cs

* GenerateMethodName

* Update MethodProcessor.cs

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

* Update Weaver.cs

Co-authored-by: vis2k <info@noobtuts.com>

* fix callers to replacement rpcs which used to call the deadlock

* improve generated name

Co-authored-by: cooper <60411087+cxxpxr@users.noreply.github.com>
2022-01-29 23:19:13 +08:00
vis2k
e781448419 Weaver: SubstituteMethod improved comment 2022-01-29 23:04:44 +08:00
vis2k
99fb73191f test comment 2022-01-29 23:00:00 +08:00
vis2k
ce3d4e49cc Weaver: FixRemoteCallToBaseMethod - proper comments to explain what it does 2022-01-29 22:59:49 +08:00
MrGadget
8a8f71b30b Revert merge master to master 2022-01-28 22:31:38 -05:00
MrGadget
6c729970cd
Merge branch 'master' into master 2022-01-28 21:53:43 -05:00
MrGadget
ecf44518f5 Added Chat Example 2022-01-28 21:49:13 -05:00
MrGadget
bd7f75f50c Added Tests 2022-01-28 21:46:10 -05:00
MrGadget
8e7a36b8ad Fixed AsmDefs 2022-01-28 21:45:48 -05:00
vis2k
cd40498457 remove TODO 2022-01-26 18:43:33 +08:00
vis2k
5369b8f47c
Weaver: move [SyncVar] generated setter to C# (#3070)
* WeaverSyncVarSetter<T>

* resolve

* no ref

* rename

* simple types without hook

* hook WIP

* stll need 'new Action' type

* pass hook

* ilnine

* remove now unused types

* remove unused

* comment

* no default

* cases

* GeneratedSyncVarSetter_GameObject/NetworkIdentity

* resolve

* GO/NI setters

* use the right equals

* NB setter

* comment
2022-01-26 18:40:56 +08:00
Roman Niukhalov
48df9ec287
Fix typo in a comment in NetworkServer.cs (#3071) 2022-01-26 13:35:17 +08:00
vis2k
8e682ec79e syntax 2022-01-25 15:02:38 +08:00
Samuel Schultze
a9a42c7aa7
fix (middleware): call inner transport events (#3068) 2022-01-25 12:42:32 +08:00
vis2k
88f09be888
Tests: Weaver IsSuccess() tests moved to regular C# space instead of AssemblyBuilder (#3069)
* README

* WeaverClientRpcTests

* CommandTests

* WeaverGeneralTests

* WeaverGeneratedReaderWriterAnotherAssemblyTests

* Tests asmdef references ExtraAssembly

* WeaverGeneratedReaderWriterTests

* WeaverMessageTests

* WeaverMonoBehaviourTests

* WeaverNetworkBehaviourTests

* WeaverSyncDictionaryTests

* pragma

* meta

* WeaverSyncListTests

* WeaverSyncObjectsTests

* WeaverSyncSetTests

* WeaverSyncVarAttributeHookTests

* WeaverSyncVarAttributeTests

* comment

* WeaverTargetRpcTests
2022-01-25 12:29:37 +08:00
vis2k
cb0d722366
perf: inline several hot path functions (#3065)
* perf: NetworkReader inline all functions

* perf: NetworkWriter inline all functions

* perf: Utils inlining

* perf: Pool inlining

* perf: NetworkReader/WriterPool inlining

* perf: Compression inlining

* perf: Extensions inlining

* perf: Mathd inlining

* perf: MessagePacking inlining
2022-01-25 11:09:52 +08:00
vis2k
7a1c5774a3 rename 2022-01-25 01:14:19 +08:00
vis2k
212ec448fb Test to prevent SyncVar.value = X throwing invalid IL 2022-01-25 01:11:03 +08:00
vis2k
f30429dbd2 Test to prevent SyncVar ldflda replacement issues as reported by imer
https://github.com/vis2k/Mirror/pull/2957#issuecomment-1020061244
2022-01-24 21:05:48 +08:00
MrGadget
5c48971d8e Updated SyncListWithUserData 2022-01-22 19:35:56 -05:00
MrGadget
be8cf781d9 Updated SyncListWithUserData 2022-01-22 18:19:04 -05:00
MrGadget
61eec62de9 Updated SyncListWithUserData 2022-01-22 12:23:35 -05:00
MrGadget
76843e6c30 Updated SyncListWithUserData 2022-01-21 21:42:15 -05:00
MrGadget
1bfa2dae52 Added SyncListWithUserData 2022-01-21 09:57:19 -05:00
vis2k
9956c1620a Revert "fix: Duplicate IL2CPP hashes when building to WebGL (#3061)"
This reverts commit d33c7cb247.

because remoteattributetests deadlock on 2021.2.8
2022-01-21 18:11:23 +08:00
vis2k
657a06bbc8 remove leftover comment 2022-01-21 16:11:17 +08:00
cooper
d33c7cb247
fix: Duplicate IL2CPP hashes when building to WebGL (#3061)
* change to tryget

* Update DistanceInterestManagement.cs

* Update MethodProcessor.cs

* GenerateMethodName

* Update MethodProcessor.cs

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

* Update Weaver.cs

Co-authored-by: vis2k <info@noobtuts.com>
2022-01-21 12:47:16 +08:00
MrGadget
238c80dc33
fix: added / updated AddComponent attributes (#3062)
* fix: added / updated AddComponent attributes

* fix: Added / Updated AddComponent attirbutes

* Update Assets/Mirror/Components/Discovery/NetworkDiscoveryHUD.cs
2022-01-20 11:58:27 -05:00
MrGadget
d1543d5943 Removed using from ChatAuthenticator 2022-01-19 19:33:15 -05:00
MrGadget
9dbba89c0d
Merge branch 'vis2k:master' into master 2022-01-19 14:18:07 -05:00
tuf
171d3543be
Fixed everything that's wrong with Mirror (#3059) 2022-01-19 14:07:52 -05:00
MrGadget
fab9961436 Mirror 60.2.0 2022-01-19 09:48:55 -05:00
MrGadget
ffabc3e802
Merge branch 'vis2k:master' into master 2022-01-19 09:48:04 -05:00
MrGadget
fe8893dd3a
feat: NT uses Cmd/Rpc overloads (#3058) 2022-01-19 22:25:36 +08:00
MrGadget
9c7f7f849f Removed Tests 2022-01-19 07:22:12 -05:00
MrGadget
0d30a0b102
Merge pull request #2 from vis2k/master
Mirror 60.1.0
2022-01-19 07:21:14 -05:00
MrGadget
140691e744 Added Tests 2022-01-19 07:20:57 -05:00
vis2k
30a7e1d576 feature: remote call overloads are now allowed for [TargetRpc] too. they are possible now due to 0cdeccbe71 using .FullName instead of .Name 2022-01-19 18:43:05 +08:00
vis2k
b6f4c641de feature: remote call overloads are now allowed for [ClientRpc] too. they are possible now due to 0cdeccbe71 using .FullName instead of .Name 2022-01-19 18:43:05 +08:00
MrGadget
85e86bd4a0 fix: Network Manager Template singleton 2022-01-18 11:56:55 -05:00
vis2k
f79166dd6c Weaver: remove unused .Resolver 2022-01-19 00:10:41 +08:00
vis2k
508cc7ec1a comments 2022-01-19 00:00:11 +08:00
vis2k
1328dcb7ea comment 2022-01-18 17:27:34 +08:00
vis2k
1eca5fe9b4 breaking: RemoteCalls.RegisterCommand/RpcDelegate renamed to RemoteCalls.RegisterCommand/Rpc to keep it simple 2022-01-18 17:22:15 +08:00
vis2k
131e854479 RemoteCalls: CheckIfDelegateExists cmdHash renamed to functionHash 2022-01-18 17:17:43 +08:00
vis2k
c675cfe2b0 syntax 2022-01-18 17:14:09 +08:00
vis2k
3792e23f2f remove old code 2022-01-18 17:12:33 +08:00
vis2k
45438b5e91 feature: remote call overloads are now allowed. they are possible now due to 0cdeccbe71 using .FullName instead of .Name 2022-01-18 17:10:37 +08:00
vis2k
a797c9733a syntax 2022-01-18 16:50:00 +08:00
vis2k
8647efc297 add comments 2022-01-18 16:45:36 +08:00
vis2k
739dfb361e RemoteCalls.Invoker.invokeClass renamed to componentType because that's what we use it to check for 2022-01-18 16:44:15 +08:00
vis2k
11ca6a542f RemoteCalls: add comment 2022-01-18 16:42:34 +08:00
vis2k
0418f1c9d2 RemoteCalls.Invoker.remoteCallType renamed to callType for simplicity 2022-01-18 16:38:57 +08:00
vis2k
1242fb1356 RemoteCalls: InvokeHandlerDelegate renamed to Invoke for simplicity. 2022-01-18 16:36:21 +08:00
vis2k
ad2d0560a3 RemoteCalls.Invoker.invokeFunction renamed to function for simplicity 2022-01-18 16:33:05 +08:00
vis2k
d1d2523b75 syntax 2022-01-18 16:31:23 +08:00
vis2k
a83786f884 syntax 2022-01-18 16:30:52 +08:00
vis2k
40333bb784 syntax 2022-01-18 16:28:49 +08:00
vis2k
c55e42f7e2 perf: NetworkServer.OnCommandMessage doesn't requires NetworkIdentity.CommandRequiresAuthority check anymore.
Remote calls are now hashed based on full name, so we don't need to find & compare the particular component anymore.
2022-01-18 16:19:54 +08:00
vis2k
3a78a2fca5 comment 2022-01-18 16:17:07 +08:00
vis2k
262c7f8898 RemoteCalls GetCommandInfo + CommandInfo struct replaced with a simple CommandRequiresAuthority bool 2022-01-18 16:04:35 +08:00
vis2k
10f7d4c34a syntax 2022-01-18 15:57:51 +08:00
vis2k
0aa70d8e61 syntax 2022-01-18 15:55:16 +08:00
vis2k
308e995ad5 syntax 2022-01-18 15:52:49 +08:00
vis2k
a4e6163f9f syntax & comments 2022-01-18 15:51:16 +08:00
vis2k
6989f21817 syntax 2022-01-18 15:46:52 +08:00
vis2k
effad42399 syntax 2022-01-18 15:45:52 +08:00
vis2k
94c319746b RemoteCalls: GetInvokerForHash simplified 2022-01-18 15:45:22 +08:00
vis2k
c4828251e6 comment 2022-01-18 15:44:03 +08:00