Skip to content

fix: NetworkShow client synchronization duplicate players and NetworkShow with ChangeOwnership fixes [Backport] #3493

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

NoelStephensUnity
Copy link
Collaborator

The PR resolves the issue discovered when investigating the Forum-1651980 issue. The initial client synchronization pre-serialization preparation was not excluding any spawned NetworkObject instances that had a pending visibility update for the client being synchronized. This fix adds this check to that process.
MTTB-1372

This addresses the Forum-Support-1646996 issue where it was determined if you invoke NetworkObject.NetworkShow and then immediately invoke NetworkObject.ChangeOwnership (or somewhere within the same callstack for that frame) the target client will get an error regarding an unnecessary ChangeOwnershipMessage.
MTTB-1337

Changelog

  • Fixed: Issue where the initial client synchronization pre-serialization process was not excluding spawned NetworkObjects that already had pending visibility for the client being synchronized.
  • Fixed: Issue where invoking NetworkObject.NetworkShow and NetworkObject.ChangeOwnership consecutively within the same call stack location could result in an unnecessary change in ownership error message generated on the target client side.

Testing and Documentation

  • Includes integration tests.
  • No Documentation changes were required.

Backport

This is a back port of #3488.
This is a partial back port of #3468.

Adding the back to back network  show and change ownership message fix.
Adding the client synchronization network show fix.
Adding tests to validate both of these fixes.
Adding changelog entries
Adding API documentation due to PVP error.
@NoelStephensUnity NoelStephensUnity marked this pull request as ready for review June 9, 2025 20:44
@NoelStephensUnity NoelStephensUnity requested a review from a team as a code owner June 9, 2025 20:44
@NoelStephensUnity NoelStephensUnity changed the title fix: NetworkShow client synchronization duplicate players and NetworkShow with ChangeOwnership fixes backport fix: NetworkShow client synchronization duplicate players and NetworkShow with ChangeOwnership fixes [Backport] Jun 9, 2025
@NoelStephensUnity NoelStephensUnity enabled auto-merge (squash) June 9, 2025 21:59
NoelStephensUnity added a commit that referenced this pull request Jun 10, 2025
The PR resolves the issue discovered when investigating the
[Forum-1651980
issue](https://discussions.unity.com/t/netcode-for-gameobjects-2-4-0-released/1651980/2).
The initial client synchronization pre-serialization preparation was not
excluding any spawned `NetworkObject` instances that had a pending
visibility update for the client being synchronized. This fix adds this
check to that process.

[MTTB-1372](https://jira.unity3d.com/browse/MTTB-1372)

## Changelog

- Fixed: Issue where the initial client synchronization
pre-serialization process was not excluding spawned `NetworkObjects`
that already had pending visibility for the client being synchronized.

## Testing and Documentation

- Includes the `PlayerSpawnObjectVisibilityTests`.
- No documentation changes or additions were necessary.

<!-- Uncomment and mark items off with a * if this PR deprecates any
API:
### Deprecated API
- [ ] An `[Obsolete]` attribute was added along with a `(RemovedAfter
yyyy-mm-dd)` entry.
- [ ] An [api updater] was added.
- [ ] Deprecation of the API is explained in the CHANGELOG.
- [ ] The users can understand why this API was removed and what they
should use instead.
-->

## Backport

This requires a backport to v1.0 (#3493)
@NoelStephensUnity NoelStephensUnity merged commit 0466b85 into develop Jun 10, 2025
43 checks passed
@NoelStephensUnity NoelStephensUnity deleted the fix/networkshow-client-synchronization-duplicate-players-backport branch June 10, 2025 18:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants