If you name your GameObject
PlayerManager
, then execution of SendCustomNetworkEvent is blocked. This behavior newly started from build 944 or 946 without any notice.
---
I use identical Udon program for two GameObjects. You'll see logs for the failure case (named
PlayerManager
) like this ("naqtn" is my user name):
[Network Processing] RPC called PlayerManager:UdonSyncRunProgramAsRPC:All and 10 bytes
[VRC_EventDispatcherRFC] SendRPC/AlwaysUnbuffered on PlayerManager blocked for naqtn (local master owner)
---
On the other hand, the log success case (named
Foo
) is like this:
[Network Processing] RPC called Foo:UdonSyncRunProgramAsRPC:All and 10 bytes
[VRC_EventDispatcherRFC] Will execute SendRPC/AlwaysUnbuffered on Foo (UnityEngine.GameObject) for naqtn: S: "UdonSyncRunProgramAsRPC" I: 0 F: 0 B: Unused (local master owner)
[Network Processing] RPC invoked UdonSyncRunProgramAsRPC on Foo for naqtn
[UdonSync] Foo executing echo at the behest of naqtn
---
I guess "real" PlayerManager exists somewhere (perhaps in hidden player object) and the system wants to block malicious incoming messages. It might reach with adjusted network id. But I think blocking by the name is not reliable and is not good way to do that. Because VRC_EventDispatcherRFC must be able to get the object reference of real PlayerManager internally.
I'm not sure this is a bug or intended feature. If this is a feature, please describe in the document and announce to Udon creators.