Fixed NetworkCollider bug to allow for comparisons between current tick and last tick stored sets#1041
Open
strakerak wants to merge 2 commits into
Open
Fixed NetworkCollider bug to allow for comparisons between current tick and last tick stored sets#1041strakerak wants to merge 2 commits into
strakerak wants to merge 2 commits into
Conversation
Changed localTick to lastTick for removal after collider comparisons are run. If removing localTick, lastTick cannot be found or accessed, hence removing any ability to run comparisons.
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.
From the 4.7.2 update, the IL2CPP code was added while checking if lastTick was not unsetLastTick (max value). If this condition passed, localTick would be removed from the _enteredColliders HashSet. However, this is ran after adding everything to localtick, so it would render that entire entry useless.
Whenever it would check for LastEnteredColliders in either method, it would resolve to Null as there is no entry in the HashSet from the lastTick, ONLY the current localTick can be accessed within that code snippet.
So anytime that code snippet is ran, it would always resolve to OnEnters, but no OnStays or OnExits.
Changing it from localTick back to lastTick (as it was changed to localTick in the recent update) fixed this, and now both OnStays and OnExits are called.
Found when entering a platform on my game, and it kept me as a parent even though I ran far away from it, nothing in OnExit would be called, and I thought it wasn't subscribing at first. Turns out it was just an access issue for comparisons.
Long description because reading through the entire code allows me to understand more about how it works on the Networking Side, it's a lot of fun!