/// <summary>
        /// Cycles through the 3 different ClientRpcDirectTestingModes
        /// </summary>
        private void SelectNextDirectUpdateMethod()
        {
            m_ClientIndices.Clear();
            m_GlobalDirectCounter = 0;
            m_GlobalDirectCurrentClientIdIndex = 0;

            switch (m_ClientRpcDirectTestingMode)
            {
            case ClientRpcDirectTestingModes.Single:
            {
                m_ClientRpcDirectTestingMode = ClientRpcDirectTestingModes.Striped;
                break;
            }

            case ClientRpcDirectTestingModes.Striped:
            {
                //Prepare to send to everyone
                m_ClientIndices.AddRange(m_ClientIds.ToArray());
                m_ClientRpcDirectTestingMode = ClientRpcDirectTestingModes.Unified;
                break;
            }

            case ClientRpcDirectTestingModes.Unified:
            {
                m_ClientRpcDirectTestingMode = ClientRpcDirectTestingModes.Single;
                break;
            }
            }
        }
        /// <summary>
        /// Handles common and NetworkManager mode specifc initializations
        /// </summary>
        private void InitializeNetworkManager()
        {
            m_ClientRpcParams.Send.TargetClientIds = new ulong[] { 0 };
            m_ClientRpcParamsMultiParameter.Send.TargetClientIds = new ulong[] { 0 };
            m_ClientRpcDirectTestingMode = ClientRpcDirectTestingModes.Single;
            m_ConnectionModeButtonParent.SetActive(false);
            m_MultiParameterCanSend = true;

            m_GlobalDirectScale     = 2;
            m_GlobalDirectFrequency = 1.0f / (100.0f / (float)m_GlobalDirectScale);

            if (m_CounterTextObject)
            {
                m_CounterTextObject.gameObject.SetActive(true);
            }

            switch (m_CurrentNetworkManagerMode)
            {
            case NetworkManagerMode.Client:
            {
                if (!m_ConnectionEventOccurred)
                {
                    NetworkManager.Singleton.StartClient();
                }
                m_ServerRpcParams.Send.UpdateStage = NetworkUpdateStage.Update;
                Screen.SetResolution(800, 80, FullScreenMode.Windowed);
                break;
            }

            case NetworkManagerMode.Host:
            {
                if (!m_ConnectionEventOccurred)
                {
                    NetworkManager.Singleton.StartHost();
                }
                m_ClientRpcParams.Send.UpdateStage = NetworkUpdateStage.PreUpdate;
                Screen.SetResolution(800, 480, FullScreenMode.Windowed);
                break;
            }

            case NetworkManagerMode.Server:
            {
                if (!m_ConnectionEventOccurred)
                {
                    NetworkManager.Singleton.StartServer();
                }
                m_ClientProgressBar.enabled        = false;
                m_ClientRpcParams.Send.UpdateStage = NetworkUpdateStage.PostLateUpdate;
                Screen.SetResolution(800, 480, FullScreenMode.Windowed);
                break;
            }
            }

            m_RpcPerSecondTimer = Time.realtimeSinceStartup;
        }