VRChat Udon Sync break Compatibility (due to NetworkChange?)
needs more information
エンジンかずみ_kazumi
- Until now, OnDeserialization() flowed at the timing of synchronization variable changes, even in Continuous
- With this append, OnDeserialization() is always running, regardless of synchronization variable changes, etc.
- So even in Contiunous, explicitly Therefore, even with Contiunous, compatibility breakdown occurred in code that explicitly wrote RequestSerialization() and OnDeserialization().
・In my case, I had set Contiunous to almost Manual in terms of functionality, and it still worked fine, but with this appde It worked fine. In my case, I had it set to Contiuous, which is almost functionally Manual, and it still worked fine. I had set it to "Contiuous" and it still worked fine.
・In my personal opinion, I think the behavior after this update is correct in terms of the name "Contiuous". However, I thought it would be a good idea to inform users of the compatibility breakdown that has occurred.
Log In
|KitKat|
This might be a bit of a reach, but I have a feeling that OP is experiencing the behavior Continuous sync has when attached to a
Rigidbody
that goes to sleep. Something else in the project probably changed and the RigidBody
is not sleeping as much anymore. This would then lead to OP noticing OnDeserialization
happening way more frequently than they're used to seeing. This is all guesswork though.Fax
needs more information
_
_tau_
Do you have an example Udon graph or UdonSharp script that shows this issue?
Noise Sample
_tau_
This code was working fine before, but since this update I'm having issues. How do I pass this code?
_
_tau_
Noise Sample: You can post code samples on gist.github.com or pastebin and link them here
Noise Sample
_tau_
procedure
Assets/tesy.unity open or
Assets/dbg/Prefab/VRCDebug.prefab please in hierarchy
Start two clients.
Press the [参加] button on both clients.
Press the [開始] button.
The game will start from the perspective of the person who pressed the start button.
However, because the processing order of OnDeserialization has been changed, the fact that the game has not yet started is now synchronized from the other client.
Previously, the start of the game was synchronized to the other client's viewpoint.
Sorry if my English is weird, ask me if you don't understand.
_
_tau_
Noise Sample: I see these lines in your example project, i.e. RequestSerialization followed by sending a network event. Do you mean that the issue is that "OnGameStart" is received before the RequestSerialization arrives? If so, this was never supported. There is no timing guarantees between serialization and network events, and if you were relying on that previously, you already had a chance that this could occur due to bad network speeds of players for example.