void Start() { Debug.Log($"<color=green>[THH_PlayerManager]</color> THH_PlayerManager v2.2 initialized"); handlers = GetComponentsInChildren <THH_PlayerObjectHandler>(); foreach (THH_PlayerObjectHandler handler in handlers) { handler.Initialize(); } handlerCount = handlers.Length; LateJoiners = new VRCPlayerApi[handlerCount]; if (Networking.IsMaster) { assignedHandler = handlers[0]; masterHandler = assignedHandler; handlerAssigned = true; CheckAllHandlerStatus(); Debug.Log($"<color=green>[THH_PlayerManager]</color> Assigned handler {assignedHandler.name} as master"); } else { Debug.Log($"<color=green>[THH_PlayerManager]</color> Requesting master handler..."); SendCustomNetworkEvent(VRC.Udon.Common.Interfaces.NetworkEventTarget.Owner, "RequestMasterHandler"); } }
void FindUnassignedHandler() { foreach (THH_PlayerObjectHandler handler in handlers) { if (Networking.GetOwner(handler.gameObject).isMaster&& handler != masterHandler) { Debug.Log($"<color=green>[THH_PlayerManager]</color> Assigning handler {handler.name}"); handler.TakeOwnership(); assignedHandler = handler; handlerAssigned = true; assignmentDelayed = false; return; } } // Could not find a handler assignmentDelayed = false; Debug.LogError($"<color=green>[THH_PlayerManager]</color> No unassigned handler could be found, cannot assign one!"); }