Commit Graph

5330 Commits

Author SHA1 Message Date
MrGadget1024
2f2a6907de Extenstions - Added comment to GetStableHashCode 2023-02-16 09:04:43 -05:00
MrGadget1024
adafd484d7 Fixed log msg 2023-02-16 08:27:11 -05:00
MrGadget1024
e4281fe5bf fix: fixed warning in test 2023-02-16 08:20:01 -05:00
MrGadget1024
9e0c59526c fix: Extensions - Remove static StableHashes dictionary
- Now that all callers to GetStableHashCode are either one-timers or design-time (weaver) the dictionary is no longer needed.
2023-02-16 08:19:48 -05:00
Robin Rolf
5d6022ff19
Remove outdated comment (#3385) 2023-02-16 13:21:01 +01:00
Robin Rolf
8b7bc6858f
perf: Weave in pre-computed function hash for RPCs (#3384)
* perf: Weave in pre-computed function hash for RPCs

Instead of computing it at runtime for every call
See #3381, #3377 and #3375

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

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

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

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-16 13:01:03 +01:00
Robin Rolf
b933dcbe1a
feat: InterestManagementBase (#3379)
* feat: InterestManagementBase

A interest management base class that allows more advanced interest management by bypassing the built-in HashSet checks via Rebuild overriding

* Update Assets/Mirror/Core/InterestManagementBase.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-16 12:57:31 +01:00
Robin Rolf
c2d834315c
cleanup: move observer HashSet rebuild logic to IM (#3383)
This cleanup step prepares for InterestManagement classes being able to customize the rebuild logic, but for that we should move it out of the NetworkServer class
2023-02-16 12:11:54 +01:00
JesusLuvsYooh
e0e262678b
feature: NetworkTransform interpolation can be disabled (#3378)
* Interpolation off bools for NetworkTransform.

Gives a snap-like effect to position, rotation and scaling.

* Update Assets/Mirror/Components/NetworkTransformBase.cs

* Update NetworkTransformBase.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-16 04:19:02 +01:00
Robin Rolf
569938c8c7
perf: Use static generic class to cache message id (#3381)
* perf: Use static generic class to cache message id

we can (ab)use c# generics to cache the message id in a static field
this is significantly faster than doing a runtime Dictionary lookup in my testing (16% thread cpu-> ~0.22% for 121 moving nts)
generic classes have separate static fields per type specification, so we can store things per-type there, exactly what we need!

* Obsolete NetworkMessages.GetId

* Update Assets/Mirror/Core/NetworkMessages.cs

* Copy comment from GetId up to the Id field

* wording

---------

Co-authored-by: MrGadget <9826063+MrGadget1024@users.noreply.github.com>
2023-02-15 16:39:25 +01:00
MrGadget
59dc88c981
perf: Cache Stable Hashes (#3377)
* perf: Cache Stable Hashes
- Static dictionary of message hashes
- ResetStatics

* Added debug log for future debugging.

* Update Extensions.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-14 02:45:36 +01:00
JesusLuvsYooh
adc28267f7 Updated function name in code summary. 2023-02-12 16:19:43 +00:00
MrGadget1024
80211ba827 fix: NetworkRoomManager.ReadyStatusChange is now a virtual method
- Script Template updated accordingly.

Fixes #1889
2023-02-09 11:21:06 -05:00
MrGadget
e260d1eb2a
fix: NetworkWriter - Change MaxStringLength to ushort.MaxValue (#3374)
* fix: NetworkWriter - Change MaxStringLength to ushort.MaxValue
- local `realsize` in NetworkReaderExtensions.ReadString changed to ushort with proper casting
- Comments added to NetworkWriterExtensions
- Comments added to NetworkReaderExtensions
- Log output updated in both for consistency

* Added comment

* Changes per request
2023-02-09 09:24:03 -05:00
MrGadget
9f7ed98ccc
feat: Read / Write DateTime (#3373)
* feat: Read / Write DateTime
- no UTC conversion...users can do that on their own if they want / need to.

DateTime is a public struct but has no public fields (all properties) so no error is thrown if users try to use it in SyncVar / Cmd / Rpc / NetMsg, but no value is put on the wire and SyncVar hooks don't fire because the client determines no actual value change.

* Added nullable DateTime support

* Removed mysterious using
2023-02-09 09:25:57 +01:00
MrGadget1024
efeab67331 NetworkRoomManager - refactor CheckReadyToBegin 2023-02-08 10:05:01 -05:00
MrGadget1024
324c41e1c7 NetworkRoomManager - refactor CheckReadyToBegin 2023-02-08 10:04:30 -05:00
MrGadget1024
bbcf4b38c0 breaking: MIRROR_73_OR_NEWER 2023-02-08 03:04:41 -05:00
MrGadget1024
3ef5e06431 Revert "breaking: MIRROR_73_OR_NEWER"
This reverts commit 8596f1d827.
2023-02-08 03:02:30 -05:00
MrGadget1024
8596f1d827 breaking: MIRROR_73_OR_NEWER 2023-02-08 02:57:27 -05:00
MrGadget
229a1a6509
perf: Distance Interest Management caches custom ranges to avoid runtime TryGetComponent overhead (#3372)
* fix: Distance Interest Mgmt static dictionary

* Clear on Reset

* Allow for changing range at runtime

* Use OnSpawned / OnDestroyed

* reverted default visRange

* Update DistanceInterestManagement.cs

* Update DistanceInterestManagement.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-02-08 05:02:55 +01:00
MrGadget1024
340a4b907a DistanceInterestManagementCustomRange - larger default visRange 2023-02-07 10:13:41 -05:00
MrGadget1024
f86010b192 DistanceInterestManagement - larger default visRange 2023-02-07 10:12:45 -05:00
MrGadget1024
cbcfeede16 fix: Removed buggy canvas from example player prefabs 2023-02-07 10:09:24 -05:00
Robin Rolf
2a021f73f5
fix: Weaver doesn't NRE on generic array (#3371)
* Failing generics weaver test for T[]

* fix: weaver doesn't handle generic array field

T[] would cause a NRE:

(0,0): error ----------------------------------------------
(0,0): error Exception :System.NullReferenceException: Object reference not set to an instance of an object.
(0,0): error    at Mirror.Weaver.Extensions.IsDerivedFrom(TypeReference tr, Type baseClass) in Mirror\Editor\Weaver\Extensions.cs:line 21
(0,0): error    at Mirror.Weaver.Extensions.IsDerivedFrom[T](TypeReference tr) in Mirror\Editor\Weaver\Extensions.cs:line 17
(0,0): error    at Mirror.Weaver.SyncObjectProcessor.FindSyncObjectsFields(Writers writers, Readers readers, Logger Log, TypeDefinition td, Boolean& WeavingFailed) in Mirror\Editor\Weaver\Processors\SyncObjectProcessor.cs:line 25
(0,0): error    at Mirror.Weaver.NetworkBehaviourProcessor.Process(Boolean& WeavingFailed) in Mirror\Editor\Weaver\Processors\NetworkBehaviourProcessor.cs:line 76
(0,0): error    at Mirror.Weaver.Weaver.WeaveNetworkBehavior(TypeDefinition td) in Mirror\Editor\Weaver\Weaver.cs:line 109
(0,0): error    at Mirror.Weaver.Weaver.WeaveModule(ModuleDefinition moduleDefinition) in Mirror\Editor\Weaver\Weaver.cs:line 125
(0,0): error    at Mirror.Weaver.Weaver.Weave(AssemblyDefinition assembly, IAssemblyResolver resolver, Boolean& modified) in Mirror\Editor\Weaver\Weaver.cs:line 208
(0,0): error ----------------------------------------------
2023-02-07 14:10:15 +01:00
MrGadget1024
63235f2f73 fix: Added missing EventSystem to example scenes 2023-02-07 02:42:09 -05:00
MrGadget1024
a3dbc9dbb6 fix: Improved Player Controller in examples 2023-02-06 11:27:29 -05:00
MrGadget1024
a8a6b403fe fix: Updated Multiple Matches example
- MatchController needed longer delay in ServerEndMatch
- Syntax and formatting
2023-02-05 23:53:24 -05:00
MrGadget1024
1399a930ac Extended wait to .5 seconds for RpcExitGame to process 2023-02-05 22:55:23 -05:00
MrGadget1024
10553cab84 Removed Debug logs 2023-02-05 22:54:32 -05:00
MrGadget1024
4920f5ff6b Merged master 2023-02-05 20:35:40 -05:00
MrGadget1024
42d4723f4e fix: Network Manager - don't call OnClientConnect from FinishLoadScene 2023-02-05 19:37:56 -05:00
MrGadget1024
40e4a57be2 fix: Network Manager now calls OnClientConnect as soon as authenticated
- No longer waits for scene change first so users can override on successful connect.
- clientLoadedScene flag is set before calling OnClientConnect.
2023-02-05 19:32:36 -05:00
MrGadget1024
70cee43a71 fix: Examples code review and updates
- ServerCallback / ClientCallback attributes applied
- Commented out Debug.Logs removed
- Syntax cleanup
- Reset Player prefabs to Default layer
- Simplified TryGetComponent usage
- All Prefabs updated to Unity 2021.3.17
2023-02-05 18:04:54 -05:00
MrGadget1024
5a161a07ce Simplified TryGetComponent usage 2023-02-05 14:14:21 -05:00
MrGadget1024
f451087d81 WIP 2023-02-05 12:16:09 -05:00
MrGadget1024
467aa70e3d CanvasController - use attributes 2023-02-05 08:28:07 -05:00
MrGadget1024
35f72c198e MatchNetworkManager - removed comments 2023-02-05 07:08:37 -05:00
MrGadget1024
dca22bd5d3 MatchController - syntax 2023-02-05 07:08:19 -05:00
MrGadget1024
d3038478cf fix: Updated examples to handle StopClient for Host 2023-02-04 21:19:29 -05:00
MrGadget1024
3d9e95e52c fix: NetworkManager - keep in DDOL if ServerOnly
- like when StopClient called for Host
2023-02-04 21:19:08 -05:00
MrGadget1024
a83379fe17 fix: NetworkManager - handle StopClient in Host mode 2023-02-04 20:13:17 -05:00
JesusLuvsYooh
5e0b450f87
LatencySimulator - User friendly changes. (ready for approval) (#3316)
* syntax

* SyncDirection example: increase spacing

* LatencySimulator - User friendly changes.

Changed "ping" to milliseconds, from seconds.
Changed % from 0-1, to 0-100  (previously 1 on slider, meant 100%)
Tooltip adjusted to show a good default value to use, and a worst case scenario value.

* Delete Scene.unity

* Revert "Delete Scene.unity"

This reverts commit 305235f6f4.

* Revert "SyncDirection example: increase spacing"

This reverts commit c2176876cb.

* Revert "syntax"

This reverts commit a668c78f68.

* Tooltip adjustments, also now has default values.

* Update LatencySimulation.cs

---------

Co-authored-by: vis2k <info@noobtuts.com>
2023-02-03 07:08:31 -05:00
MrGadget1024
dc8f0b3165 Unity updated Player prefab 2023-02-02 19:17:50 -05:00
MrGadget1024
2554372913 Updated Interest Management Script Template 2023-01-29 06:44:20 -05:00
vis2k
c4e9071700 unused import 2023-01-29 19:08:19 +09:00
vis2k
deddbe6ee9 fix: #3367 NetworkTransformReliable now checks for changes at the end of UpdateServer, not at the beginning [imer] 2023-01-29 13:11:33 +09:00
vis2k
3815fe94a8 fix: #3259 NetworkClient.ApplySpawnPayload now initializes NetworkIdentity flags before DeserializeClient invokes SyncVar hooks 2023-01-29 12:54:44 +09:00
vis2k
db83e2dd42 naming 2023-01-29 12:46:29 +09:00
vis2k
8d8bde72f4 fix: NetworkClient now sets NetworkIdentity.connectionToServer before OnStartAuthority/OnStartClient callbacks.
previously this was only available in OnStartLocalPlayer
2023-01-29 12:40:03 +09:00