예제 #1
0
    private void Initialize()
    {
        if (mixerDialog == null)
        {
            mixerDialog = FindObjectOfType <MixerInteractiveDialog>();
        }
        if (queuedEvents == null)
        {
            queuedEvents = new List <InteractiveEventArgs>();
        }
        // Listen for interactive events
        bool interactivityManagerAlreadyInitialized = false;

        if (interactivityManager == null)
        {
            interactivityManager = InteractivityManager.SingletonInstance;

            interactivityManager.OnError -= HandleError;
            interactivityManager.OnInteractivityStateChanged       -= HandleInteractivityStateChanged;
            interactivityManager.OnParticipantStateChanged         -= HandleParticipantStateChanged;
            interactivityManager.OnInteractiveButtonEvent          -= HandleInteractiveButtonEvent;
            interactivityManager.OnInteractiveJoystickControlEvent -= HandleInteractiveJoystickControlEvent;
            interactivityManager.OnInteractiveMessageEvent         -= HandleInteractiveMessageEvent;

            interactivityManager.OnError += HandleError;
            interactivityManager.OnInteractivityStateChanged       += HandleInteractivityStateChanged;
            interactivityManager.OnParticipantStateChanged         += HandleParticipantStateChanged;
            interactivityManager.OnInteractiveButtonEvent          += HandleInteractiveButtonEvent;
            interactivityManager.OnInteractiveJoystickControlEvent += HandleInteractiveJoystickControlEvent;
            interactivityManager.OnInteractiveMessageEvent         += HandleInteractiveMessageEvent;
        }
        else
        {
            interactivityManagerAlreadyInitialized = true;
        }
        MixerInteractiveHelper helper = MixerInteractiveHelper.SingletonInstance;

        helper.runInBackgroundIfInteractive = runInBackground;
        helper.defaultSceneID = defaultSceneID;
        for (int i = 0; i < groupIDs.Count; i++)
        {
            string groupID = groupIDs[i];
            if (groupID != string.Empty &&
                !helper.groupSceneMapping.ContainsKey(groupID))
            {
                helper.groupSceneMapping.Add(groupID, sceneIDs[i]);
            }
        }

        if (outstandingCreateGroupsRequests == null)
        {
            outstandingCreateGroupsRequests = new List <string>();
        }
        outstandingSetDefaultSceneRequest   = string.Empty;
        processedSerializedProperties       = false;
        outstandingRequestsCompleted        = false;
        shouldCheckForOutstandingRequests   = false;
        lastCheckForOutstandingRequestsTime = -1;
#if !UNITY_WSA
        backgroundWorker = new BackgroundWorker();
#endif
        if (interactivityManagerAlreadyInitialized &&
            InteractivityManager.SingletonInstance.InteractivityState == InteractivityState.InteractivityEnabled)
        {
            ProcessSerializedProperties();
        }
    }