Пример #1
0
    void Start()
    {
        // Extra logging is enabled because, as of build 1159, there is a NEW bug with object ownership transfer
        // that is still causing players to not properly transfer ownership.  Repro: a lot of players join a world an once with this pool
        debug._u_Log("[Slot] " + gameObject.name + " Start");

        pool        = transform.parent.GetComponent <SlotPool>();
        dataObjects = new UdonSharpBehaviour[transform.childCount];
        for (int i = 0; i < dataObjects.Length; i++)
        {
            dataObjects[i] = (UdonSharpBehaviour)(transform.GetChild(i).GetComponent(typeof(UdonSharpBehaviour)));
        }
        startFinished = true;

        // If you're the first person in the instance, dummy serialize once so buffered deserializations can be
        // counted by slots for all late joiners to know when full deserialization is complete.
        if (Networking.IsMaster)
        {
            bufferedDeserializationFinished    = true;
            dataObjectsDeserializationFinished = true;
            pool._u_ReportBufferedDeserialization();
            RequestSerialization();
        }
        else
        {
            _u_TryReportBufferedDeserialization();
        }
    }
Пример #2
0
    void _u_TryReportBufferedDeserialization()
    {
        debug._u_Log("[Slot] " + gameObject.name + " _u_TryReportBufferedDeserialization");

        if (!dataObjectsDeserializationFinished && startFinished && bufferedDeserializationFinished && dataObjectDeserializationCount == dataObjects.Length)
        {
            dataObjectsDeserializationFinished = true;
            //debug._u_Log("[Slot] " + gameObject.name + " reporting buffered deserialization to pool");
            pool._u_ReportBufferedDeserialization();
        }
    }