protected IEnumerator InitializeCoro()
        {
            if (!m_Instance)
            {
                GameObject go = new GameObject("TTAssetBundleManager");
                m_Instance = go.AddComponent <TTAssetBundleManager> ();
                DontDestroyOnLoad(go);
            }

            if (m_Instance.m_AssetBundleManagerInitialized)
            {
                while (!m_Instance.m_AssetBundleManagerInitializationFinished)
                {
                    yield return(new WaitForEndOfFrame());
                }
                yield break;
            }

            m_Instance.m_AssetBundleManagerInitialized = true;

            // Don't destroy the game object as we base on it to run the loading script.

            m_Instance.InitializeSourceURL();

            // Initialize AssetBundleManifest which loads the AssetBundleManifest object.
            var request = AssetBundleManager.Initialize();

            if (request != null)
            {
                yield return(m_Instance.StartCoroutine(request));
            }

            m_Instance.m_AssetBundleManagerInitializationFinished = true;
        }
        static void Initialize()
        {
            if (!m_Instance)
            {
                GameObject go = new GameObject("TTAssetBundleManager");
                m_Instance = go.AddComponent <TTAssetBundleManager> ();
                DontDestroyOnLoad(go);
            }

            if (!m_Instance.m_AssetBundleManagerInitialized)
            {
                m_Instance.StartCoroutine(m_Instance.InitializeCoro());
            }
        }