Exemple #1
0
    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");
        }
    }
Exemple #2
0
    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!");
    }