OnPlayerDataUpdated is called twice for remote clients.
Kyrowo
OnPlayerDataUpdated is called twice for remote clients. I assume it's expected to only be called once.
We wait until OnPlayerRestored() has been called for every player before we press 'L' or do anything inside of OnPlayerDataUpdated.
World SDK 3.7.5
Local User "A":
PlayerData.SetBool("MY_TEST_KEY", false);
-> OnPlayerDataUpdated(A, MY_TEST_KEY)
Remote User "B":
-> OnPlayerDataUpdated(A, MY_TEST_KEY)
-> OnPlayerDataUpdated(A, MY_TEST_KEY)
Here's my code:
public override void OnPlayerDataUpdated(VRCPlayerApi player, PlayerData.Info[] infos)
{
Debug.Log("OnPlayerDataUpdated for playerID: " + player.playerId);
foreach (PlayerData.Info info in infos)
{
switch (info.State)
{
case PlayerData.State.Unchanged:
Debug.Log("key: " + info.Key + " Unchanged - " + player.playerId);
break;
case PlayerData.State.Added:
Debug.Log("key: " + info.Key + " Added - " + player.playerId);
break;
case PlayerData.State.Removed:
Debug.Log("key: " + info.Key + " Removed - " + player.playerId);
break;
case PlayerData.State.Changed:
Debug.Log("key: " + info.Key + " Changed - " + player.playerId);
break;
case PlayerData.State.Restored:
Debug.Log("key: " + info.Key + " RESTORED - Key will be skipped - " + player.playerId);
break;
}
}
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.L) && Networking.LocalPlayer.isLocal)
{
PlayerData.SetBool("MY_TEST_KEY", false);
}
}
Photo Viewer
View photos in a modal
Log In