Commit Graph

4985 Commits

Author SHA1 Message Date
vis2k
78fb0b57ae NetworkReader.ReadBytesSegment: use .Remaining 2022-09-25 13:00:57 +07:00
vis2k
98be66ec13 NetworkReader.ReadBytes: use .Remaining 2022-09-25 13:00:38 +07:00
vis2k
6e042ed2a8 NetworkReader.ReadBlittable: use .Remaining 2022-09-25 13:00:13 +07:00
vis2k
81e666af9e NetworkReader: remove SetBuffer byte[] variant. implicit ArraySegment conversion is enough. 2022-09-25 12:48:09 +07:00
vis2k
0ffa971413 NetworkReader: remove byte[] constructor, implicit ArraySegment constructor is enough 2022-09-25 12:46:47 +07:00
vis2k
c9642dbbb2 NetworkReader.ReadArray: use .Remaining 2022-09-25 12:44:06 +07:00
vis2k
451cd26b47 syntax 2022-09-25 12:43:19 +07:00
vis2k
5fa5269a11 NetworkReader: more readable syntax 2022-09-25 12:43:12 +07:00
vis2k
d3ee9e325e NetworkReader.Length renamed for Capacity (more obvious, similar to List.Capacity) 2022-09-25 12:43:03 +07:00
vis2k
ee6bbaa8ba NetworkReader.Remaining uses buffer.Count directly 2022-09-25 12:40:12 +07:00
vis2k
e3c4bf5eba syntax 2022-09-25 12:38:08 +07:00
vis2k
cf0b884c1f MessagePacking renamed to NetworkMessages (it contains more network message code than just packing) 2022-09-25 12:21:38 +07:00
vis2k
8249508fa7 MessagePacking.Unpack renamed to PackId for consistency 2022-09-25 12:10:29 +07:00
vis2k
1baadc1dbe syntax & comments 2022-09-25 12:08:13 +07:00
vis2k
458eeca0e8 syntax 2022-09-25 12:07:14 +07:00
vis2k
92a766af36 update comment 2022-09-25 12:06:16 +07:00
vis2k
4d5bf360ec MessagePacking.GetId: remove unnecessary AND 2022-09-25 12:05:28 +07:00
vis2k
16c572cfc4 syntax 2022-09-25 12:05:17 +07:00
vis2k
13e6c77bad MessagePacking.HeaderSize renamed to IdSize 2022-09-25 12:03:49 +07:00
vis2k
c97bf5a06a syntax 2022-09-25 12:00:03 +07:00
vis2k
f24acb6372 Transport.activeTransport renamed to .active 2022-09-25 12:00:03 +07:00
vis2k
94345c94bf Tests: Mathd 2022-09-25 11:50:56 +07:00
vis2k
dea63ba59e syntax 2022-09-25 11:49:35 +07:00
vis2k
827a6d310c syntax 2022-09-25 11:49:11 +07:00
vis2k
4ea52a0283 fix: InterestManagement.Awake is now protected virtual (#3214) 2022-09-24 22:13:46 +07:00
vis2k
6ba926bcb1 NetworkManager: serverTickInterval for convenience (prepares for remote statistics) 2022-09-24 22:08:20 +07:00
vis2k
80abe21047 NetworkManager: auto connect client build option for CCU test bots 2022-09-24 22:08:03 +07:00
vis2k
4d5e55511c Utils.KeepInScreen 2022-09-24 22:02:35 +07:00
vis2k
4dd3c6df8c Utils.PrettySeconds 2022-09-24 22:02:30 +07:00
vis2k
72f65a1b66 rename folder 2022-09-24 21:58:23 +07:00
vis2k
c49cc5f422 Examples/_Common folder 2022-09-24 18:17:39 +07:00
vis2k
4430001521 breaking: perf: assetId as uint instead of Guid. saves 12 bytes and much conversion magic (as suggested by james). may need to resave prefabs once in case of spawn issues. 2022-09-24 18:08:12 +07:00
vis2k
9c5e10f71b breaking: NetworkBehaviour.SerializeSyncVars return type changed from bool to void to simplify weaver (and reduce branches) 2022-09-24 17:30:20 +07:00
vis2k
7c7f83362b breaking: perf: NetworkIdentity/NetworkBehaviour OnSerialize return type changed from bool to void to a-void confusion (and branches) 2022-09-23 14:21:48 +07:00
vis2k
92ff55120a weaver comments 2022-09-23 14:21:31 +07:00
vis2k
29fef498eb Weaver NetworkBehaviourProcessor: add explanation 2022-09-23 14:19:25 +07:00
vis2k
e63742523c fix broken tests caused by default transport adding. also fixes tests using kcp unintentionally. 2022-09-23 13:55:54 +07:00
vis2k
99851945e9 NetworkManager.transport field made public so it can be set from tests 2022-09-23 13:55:17 +07:00
vis2k
b82bb86fc7 remove unused import 2022-09-23 13:39:12 +07:00
vis2k
6941df570c NetworkAnimator: remove unnecessary XML comments 2022-09-23 13:37:13 +07:00
vis2k
498c3c568a remove unused imports 2022-09-23 13:32:24 +07:00
vis2k
63e3780ecd Runtime folder renamed to Core. makes it more obvious that Components/, Transports/, Authenticators/ etc. are optional 2022-09-23 13:30:08 +07:00
vis2k
f1e53a09ae remove old Runtime/Transports folder 2022-09-23 13:29:21 +07:00
vis2k
7a8a3c6e1e KCP transport moved to root Transports folder; removed old auto upgrading which would require a circular dependency 2022-09-23 13:27:19 +07:00
vis2k
70d82f844d kcp2k moved to root Transports folder 2022-09-23 13:25:57 +07:00
vis2k
8abf17acae Middleware transport moved to root Transports folder 2022-09-23 13:24:55 +07:00
vis2k
3e4f4d7614 Multiplex transport moved to root Transports folder 2022-09-23 13:23:33 +07:00
vis2k
1507c764cc Telepathy transport moved to root Transports folder 2022-09-23 13:21:56 +07:00
vis2k
1c9101b3d4 LatencySimulation transport moved to root Transports folder 2022-09-23 13:21:21 +07:00
vis2k
78e65c40ec Transports folder next to Components; SimpleWebTransport moved from Runtime to Transports 2022-09-23 13:19:19 +07:00
vis2k
de830650a5 script icons 2022-09-23 13:12:47 +07:00
vis2k
a8c84fe9b8 perf: NetworkIdentity.assetId is now cached to avoid expensive "new GUID" construction 2022-09-17 17:13:56 +08:00
vis2k
a94fe67c23 Utils.IsSceneObject common function for NetworkServer/Client 2022-09-17 17:04:25 +08:00
vis2k
a99bc0ebf5 NetworkClient: ConsiderForSpawning renamed to IsSceneObject because that's what it checks 2022-09-17 16:58:52 +08:00
vis2k
4654a281f3 NetworkServer: ValidateSceneObject renamed to IsSceneObject - that's what it checks 2022-09-17 16:58:13 +08:00
vis2k
0fbf400697 fix: Tanks demo: remove light from projectile as well to fix visual glitches 2022-09-17 16:53:15 +08:00
vis2k
478e1d8c0e perf: NetworkWriter.WriteString now writes directly into the buffer without the intermediate stringBuffer step 2022-09-17 16:51:03 +08:00
vis2k
ed8e5529ad syntax 2022-09-17 16:42:49 +08:00
vis2k
ddb79ab0eb NetworkLoop: remove old Unity 2018 code 2022-09-17 16:36:20 +08:00
vis2k
fc0a40f802 syntax 2022-09-17 16:35:19 +08:00
vis2k
5c04b84108 fix: Tanks demo: remove tank prefab spotlight causing visual glitches 2022-09-17 16:27:30 +08:00
vis2k
18abba3506 NetworkBehaviour.ComponentIndex changed to byte for consistency 2022-09-17 16:19:39 +08:00
vis2k
3e4b5b3660 perf: Grid2D initial capacity to avoid warmup allocations 2022-09-17 16:13:09 +08:00
vis2k
a6f450710c perf: Grid2D as struct to avoid memory indirection 2022-09-17 16:11:38 +08:00
vis2k
34e6e8fbd3 readonly 2022-09-17 16:09:40 +08:00
vis2k
dac82ed1e2 NetworkStatistics: expose statistics to other components 2022-09-15 13:17:38 +08:00
vis2k
bb4f2b99ec MIRROR_2022_9_OR_NEWER 2022-09-15 12:16:40 +08:00
vis2k
ac352c084d NetworkManager.GetStartPosition can now be overwritten 2022-09-14 21:38:57 +08:00
vis2k
4b75d2b53d ConsiderForSpawning & ValidateSceneObject explanations 2022-09-10 21:32:36 +08:00
vis2k
7b08d3afdd NetworkScenePostProcess set inactive explanation 2022-09-07 13:21:09 +08:00
Robin Rolf
17446f3aa3
perf: Application.isPlaying in hot path is slow (#3210)
This showed up during a recent il2cpp profile and is accounting for 1% of total cpu usage while being completely unnecessary outside of the editor
https://share.dl.je/2022/08/2022-08-28_14-44-14_CfEcmlR1L6.png
2022-09-01 19:58:32 +08:00
Yu Long
aac75491ac
Add Check for NetworkServer.Spawn (#3205)
* Added a check for repeatedly calling NetworkServer.Spawn on the same gameObject

* Update NetworkServer.cs

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2022-08-25 11:56:07 +08:00
vis2k
d9394b0dc8 fix: Telepathy Always enqueue Disconnected event (from imer) 2022-08-12 13:01:19 +08:00
Robin Rolf
1891d46b3c
fix: Telepathy ClientDisconnect calls DC event (#3198)
Kcp calls OnDisconnected for manual disconnections too so this is more consistent
2022-08-08 15:07:43 +08:00
hyouuu
8d1061089b
Make NetworkPingDisplay's width & height configurable (#3196) 2022-08-08 10:23:56 +08:00
vis2k
88825e45d5 fix: LatencySimulation error 2022-07-25 23:25:34 +08:00
vis2k
589e1f6258 Benchmark Example: backport FPS counter from Mirror II 2022-07-25 21:24:51 +08:00
eiei114
96b87ae260
fix comment typo (#3194) 2022-07-24 16:47:25 +08:00
vis2k
9846468dcc fix test 2022-07-22 12:40:12 +08:00
vis2k
0b984caced fix test 2022-07-22 12:39:43 +08:00
vis2k
77cac1b03d fix test 2022-07-22 12:38:52 +08:00
vis2k
e8fae820d1 fix test 2022-07-22 12:28:31 +08:00
vis2k
7f680ec775 fix test 2022-07-22 12:26:06 +08:00
vis2k
1320472b10 perf: Read/WriteGuid without allocations 2022-07-22 12:26:06 +08:00
vis2k
5f4a03109d fix: breaking: Spatial hashing interest management resolution formula fixed. this is why spatial hashing visibility range always seemed a bit lower than with distance interest management. 2022-07-11 23:40:37 +08:00
vis2k
97fe2764bc Tests: Grid2D proper setup 2022-07-11 20:43:56 +08:00
vis2k
0cff9d6f5d
feature: Snapshot Interpolation V2 (make sure call base Awake() when inheriting!; note this removes the interpolatePosition/Rotation/Scale options) (#3184)
* yo

* fix bug exposed by tests

* tests and latest changes

* NT
2022-06-26 20:03:42 +08:00
vis2k
880a4eebd6 Snapshot Interpolation Demo: adjust namespaces so we can use 'SnapshotInterpolation.' to actual 2022-06-16 13:26:38 +07:00
vis2k
db50c39b91 fix: Snapshot Interpolation Demo: assign material color to instanced material, fixes material asset changing color permanently 2022-06-13 18:18:59 +07:00
vis2k
f92942bb5f Snapshot Interpolation Demo: vsync notice 2022-06-13 18:17:50 +07:00
vis2k
1b0901e966 fix: Snapshot Interpolation Example: latency was accidentally applied to remoteTime instead of delivery time 2022-06-13 17:48:09 +07:00
vis2k
9915f4c0b3 Snapshot Interpolation Demo: simplify latency jitter for easier testing 2022-06-13 17:46:31 +07:00
vis2k
5063fdd08f LatencySimulation: latencySpike renamed to jitter 2022-06-13 12:18:28 +07:00
vis2k
999cf0fe32 Snap Interp demo GUI width 2022-06-12 00:15:08 +07:00
Justin Nolan
19efa2dd86
Fix compile error (#3179) 2022-06-10 22:53:05 +09:00
Justin Nolan
4b40dea700
switch expressions are not supported in unity 2020 (#3178) 2022-06-10 22:25:38 +09:00
Robin Rolf
d48d59cc08
fix: SWT header lookup needs to be case insensitive (#3176)
* fix: SWT header lookup needs to be case insensitive

See https://github.com/vis2k/Mirror/issues/3175
Closes #3175

* fix: SWT skips headers just ending in the key name

See 3495845b8c
2022-06-09 10:54:23 +08:00
vis2k
7bfa0906b0
Snapshot Interpolation visual example (#3171) 2022-06-09 10:53:49 +08:00
vis2k
e04293f980 breaking: SnapshotInterpolation.Compute(): add 'out catchup' for debugging 2022-06-03 16:40:53 +07:00
MrGadget
6de039cf9d Merge branch 'master' of https://github.com/vis2k/Mirror 2022-05-31 08:29:04 -04:00
MrGadget
77259e1c31 change label text 2022-05-31 08:28:52 -04:00
vis2k
f65b9cadbe Write/ReadBlittable explanation why private 2022-05-27 22:45:12 +07:00
vis2k
bb8412d5e7 NetworkIdentity Serialization: explain write index 2022-05-26 23:32:08 +07:00
MrGadget
adb66b427c
NetworkBehaviour: Improved logging (#3165)
* NetworkBehaviour: Improved logging

* NetworkBehaviour: Improved logging
2022-05-25 14:33:23 -04:00
MrGadget
50e6bb1101 Online scene removed Safety plane 2022-05-14 12:20:30 -04:00
MrGadget
8139c28ff0 Online scene lighting 2022-05-14 12:19:55 -04:00
MrGadget
4c52c13160 Removed CanvasRenderer 2022-05-14 12:10:27 -04:00
MrGadget
e0e098531e fixed NetworkManager Script Tempate
- broken by PR #3158
2022-05-13 10:32:44 -04:00
MrGadget
6ac03a02d6 Improved Chat example 2022-05-13 10:09:49 -04:00
MrGadget
876adb8f42 Improved Chat example 2022-05-13 09:54:12 -04:00
MrGadget
e27a1cd1e7 Improved Chat example 2022-05-13 09:39:22 -04:00
vis2k
096fe38080
breaking: OnError(Exception) changed to OnError(enum, reason) (#3158)
* TransportError

* adjust mirror

* obsoletes

* adjust transports

* Refused
2022-05-13 17:28:47 +08:00
vis2k
a2d35b82b6 Transport syntax: group fields together 2022-05-12 12:36:48 +08:00
vis2k
91e2a0f79b feature: kcp2k V1.19: OnError ErrorCodes 2022-05-12 10:30:59 +08:00
MrGadget
d3fa0c67e5
fix: NetworkClient - Check for duplicate sceneId (#3157)
* fix: NetworkClient - Check for duplicate sceneid

* renamed local var

* Update NetworkClient.cs

Co-authored-by: vis2k <info@noobtuts.com>
2022-05-12 00:06:43 +08:00
MrGadget
a8202e5d0c renamed local var 2022-05-11 10:59:10 -04:00
MrGadget
c35ddd20db fix: NetworkClient - Check for duplicate sceneid 2022-05-11 10:41:10 -04:00
vis2k
1e40bb4f00 NetworkClient/NetworkServer OnTransportError now logs a warning instead of an exception, indicating that it's a transport error and that it's fine. otherwise all kcp info/warnings would now be logged as exceptions 2022-05-08 10:51:22 +08:00
vis2k
ed8911dfef NetworkServer.OnError renamed to OnTransportError for consistency 2022-05-08 10:46:04 +08:00
vis2k
4c758c25dc NetworkClient.OnError renamed to OnTransportError for consistency 2022-05-08 10:45:31 +08:00
vis2k
35f1f225f3 fix: kcp2k V1.18
- feature: OnError to allow higher level to show popups etc.
- feature: KcpServer.GetClientAddress is now GetClientEndPoint in order to
  expose more details
- ResolveHostname: include exception in log for easier debugging
- fix: KcpClientConnection.RawReceive now logs the SocketException even if
  it was expected. makes debugging easier.
- fix: KcpServer.TickIncoming now logs the SocketException even if it was
  expected. makes debugging easier.
- fix: KcpClientConnection.RawReceive now calls Disconnect() if the other end
  has closed the connection. better than just remaining in a state with unusable
  sockets.

=> error handling based on #3155
=> fixes #3143
2022-05-08 10:42:32 +08:00
MrGadget
c65eed8ea8 Merge branch 'master' of https://github.com/vis2k/Mirror 2022-05-06 12:20:34 -04:00
MrGadget
efa2b3d4ca Syntax 2022-05-06 12:20:23 -04:00
MrGadget
876d6d86dc removed private 2022-05-06 12:19:50 -04:00
vis2k
818e0ca9fd NetworkServer.SendToObservers: use explicit NetworkConnectionToClient type 2022-04-29 19:01:26 +08:00
vis2k
298435001a fix: #3144 Reader/Writer Sprite null support & test to guarantee it never happens again 2022-04-29 10:08:33 +08:00
vis2k
f413c91cde Test: Reader/Writer Sprite 2022-04-29 10:05:23 +08:00
vis2k
ae1c7c5fe4 fix: #3144 Reader/Writer Texture2D null support & test to guarantee it never happens again 2022-04-29 09:59:52 +08:00
vis2k
b709453057 fix: NetworkReader/Writer Texture2D now sends dimensions too. fixes "Texture2D.SetPixels32: size of data to be filled was larger than the size of data available in the source array. (Texture '')" 2022-04-29 09:55:19 +08:00
vis2k
d235037954 fix: NetworkReader.ReadTexture2D fixed 'reader not found for Color32[]' error when using it from tests 2022-04-29 09:44:58 +08:00
vis2k
3a742bb7da Tests: NetworkReader/Writer Texture2D tests added 2022-04-29 09:44:54 +08:00
vis2k
728e6e2fdf syntax 2022-04-28 18:53:37 +08:00
vis2k
6c1dc5255e remove unused import 2022-04-20 10:33:53 +08:00
vis2k
1aaa4ce2a4
perf: Cmd/Rpc bandwidth hash size reduced from 4 => 2 bytes (#3148) 2022-04-20 11:33:14 +08:00
vis2k
98d7a9d7d1 NetworkReader/Extensions: inlining ReadBlittable is enough. Don't inline ReadInt etc. too, we don't want ReadBlittable to be copied in place everywhere. 2022-04-20 10:28:30 +08:00
vis2k
4ffb9dfafc NetworkWriter/Extensions: inlining WriteBlittable is enough. Don't inline WriteInt etc. too, we don't want WriteBlittable to be copied in place everywhere. 2022-04-20 10:26:43 +08:00
vis2k
cebfab010f fix: Benchmark movement destinations set around start, not around position. prevents them from stopping to move because of the wander off protection. 2022-04-19 13:29:38 +08:00
MrGadget
99d3a91f17 Fixed Authenticator Comments
- Fixes #3146
2022-04-18 22:58:16 -04:00
MrGadget
2db726df2e fix: TeamInterestManagement OnDestroyed logic 2022-04-18 09:07:15 -04:00
MrGadget
0e9d86f563
breaking: Removed Obsoletes (#3142)
* Removed Experimental NetworkTransform

* NetworkRoomManager: Removed Obsoletes

* NetworkTransformBase: Removed Obsoletes

* NetworkBehaviour: Removed Obsoletes

* NetworkManager: Removed Obsoletes

* NetworkServer: Removed Obsoletes

* SyncObject: Removed Obsoletes

* fixed comment

* fixed XML comment
2022-04-18 08:05:53 +07:00
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