// MonoBehaviour's interface

    void Update()
    {
        if (!m_Initialized)
        {
            return;
        }

        for (int moduleIndex = 0; moduleIndex < m_Modules.Count; ++moduleIndex)
        {
            GameServicesModule module = m_Modules[moduleIndex];
            if (module != null)
            {
                module.Update();
            }
        }
    }
    public T GetModule <T>() where T : GameServicesModule
    {
        if (!m_Initialized)
        {
            return(null);
        }

        for (int modulesIndex = 0; modulesIndex < m_Modules.Count; ++modulesIndex)
        {
            GameServicesModule module = m_Modules[modulesIndex];
            if (module != null)
            {
                if (module is T)
                {
                    return((T)module);
                }
            }
        }

        return(null);
    }