fix: destroy object spam#651
Merged
mattwalsh-unity merged 2 commits intodevelopfrom Mar 23, 2021
Merged
Conversation
This fixes an issue where the destroy method can get called twice on the client side after receiving a destroy object command.
| private void OnDestroy() | ||
| { | ||
| if (NetworkManager.Singleton != null) | ||
| if (NetworkManager.Singleton != null && NetworkSpawnManager.SpawnedObjects.Count > 0 && NetworkSpawnManager.SpawnedObjects.ContainsKey(NetworkObjectId)) |
Contributor
There was a problem hiding this comment.
count > 0 check shouldn't be necessary as it is always true if ContainsKey returns true right?
Member
Author
There was a problem hiding this comment.
Checking an Int value first is faster than checking a hashed set, so it is just an early out optimization. Not required.
Of course, if it is > then you have the int compare plus the hashed set check... :/
50/50 on this.. :)
Contributor
There was a problem hiding this comment.
Oh yeah I see I guess yours is much faster. I hoped dictionary would make an empty check with contains key but apparently after checking the source it doesn't.
Decided this isn't worth the optimization.
LukeStampfli
approved these changes
Mar 23, 2021
mattwalsh-unity
approved these changes
Mar 23, 2021
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This fixes an issue where the destroy method can get called twice on the client side after receiving a destroy object command.
This fix is pertaining to MTT-556
This is a temporary fix until the spawning and de-spawning process has been fully vetted.
This fix prevents the MonoBehavior.OnDestroy method from invoking the NetworkSpawnManager.OnDestroyObject method if it does not exist in the NetworkSpawnManager.SpawnedObjects list.