public override bool Update() { if (m_Request != null) { return(false); } LoadedAssetBundle bundle = AssetBundleLoad.GetLoadedAssetBundle(m_AssetBundleName, out m_DownloadingError); if (bundle != null) { #if UNITY_5_3 || UNITY_5_4 m_Request = SceneManager.LoadSceneAsync(m_LevelName, m_IsAdditive ? LoadSceneMode.Additive : LoadSceneMode.Single); #else if (m_IsAdditive) { m_Request = Application.LoadLevelAdditiveAsync(m_LevelName); } else { m_Request = Application.LoadLevelAsync(m_LevelName); } #endif return(false); } else { return(true); } }
//public static string OverrideBaseDownloadingURLWithPlatform (string bundleName) //{ // return AssetsUtility.GetPlatformName () + "/" + bundleName; //} public static T LoadPrefab <T> (string path) where T : UnityEngine.Object { #if UNITY_EDITOR string strName = "Assets/" + path + ".prefab"; T go = AssetDatabase.LoadAssetAtPath <T> (strName); return(go); #else Console.Instance().Debug(path); path = path.ToLower(); T go = AssetBundleLoad.LoadGameObject(path) as T; return(go); #endif }
// Returns true if more Update calls are required. public override bool Update() { if (m_Request != null) { return(false); } LoadedAssetBundle bundle = AssetBundleLoad.GetLoadedAssetBundle(m_AssetBundleName, out m_DownloadingError); if (bundle != null) { ///@TODO: When asset bundle download fails this throws an exception... m_Request = bundle.m_AssetBundle.LoadAssetAsync(m_AssetName, m_Type); return(false); } else { return(true); } }
public static GameObject LoadMaterialPrefabs(string path) { #if UNITY_EDITOR //string strName = "Assets/Prefabs/" + path + ".prefab"; //T go = AssetDatabase.LoadAssetAtPath<T> (strName); // Debug.Log (path); path = path.ToLower(); GameObject go = AssetBundleLoad.LoadGameObject(path) as GameObject; // string strName = "Assets/" + path + ".prefab"; //T go = AssetDatabase.LoadAssetAtPath<T> (strName); go.GetComponent <Renderer> ().sharedMaterial.shader = Shader.Find(go.GetComponent <Renderer> ().sharedMaterial.shader.name); return(go); #else //string strName = ASSETBUNDLE_PATH + path; //Debug.Log(strName); //GameObject.Find ("Console").GetComponent <Text>().text += "\n" + strName; path = path.ToLower(); GameObject go = AssetBundleLoad.LoadGameObject(path) as GameObject; go.GetComponent <Renderer>().sharedMaterial.shader = Shader.Find(go.GetComponent <Renderer>().sharedMaterial.shader.name); return(go); #endif }
IEnumerator InitializeLevelAsync(string sceneName, UnityEngine.SceneManagement.LoadSceneMode mode) { yield return(null); AssetBundleLoadOperation operation; System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder("scenes/", 3); stringBuilder.Append(sceneName); stringBuilder.Append(".unity3d"); switch (mode) { case UnityEngine.SceneManagement.LoadSceneMode.Single: operation = AssetBundleLoad.LoadLevelAsync(stringBuilder.ToString(), sceneName, false); if (operation == null) { yield break; } yield return(StartCoroutine(operation)); break; case UnityEngine.SceneManagement.LoadSceneMode.Additive: operation = AssetBundleLoad.LoadLevelAsync(stringBuilder.ToString(), sceneName, true); if (operation == null) { yield break; } yield return(StartCoroutine(operation)); break; } //string strName = "Assets/" + sceneName + ".unity"; //AssetBundleCreateRequest bundleLoadRequest = AssetBundle.LoadFromFileAsync (Path.Combine (STREAMING_PATH, sceneName)); //yield return bundleLoadRequest; //AssetBundle myLoadedAssetBundle = bundleLoadRequest.assetBundle; //if (myLoadedAssetBundle == null) { // Debug.Log ("Failed to load AssetBundle!"); // yield break; //} //var assetLoadRequest = myLoadedAssetBundle.LoadAssetAsync<GameObject> ("MyObject"); //yield return assetLoadRequest; //GameObject prefab = assetLoadRequest.asset as GameObject; //Instantiate (prefab); //myLoadedAssetBundle.Unload (false); //asyncOperation.allowSceneActivation = false; //while (!asyncOperation.isDone) { // //Output the current progress // Debug.Log ("Loading progress: " + (asyncOperation.progress * 100) + "%"); // // Check if the load has finished // if (asyncOperation.progress >= 0.9f) { // //Change the Text to show the Scene is ready // Debug.Log ("Press the space bar to continue"); // //Wait to you press the space key to activate the Scene // if (Input.GetKeyDown (KeyCode.Space)) // //Activate the Scene // asyncOperation.allowSceneActivation = true; // } // yield return null; //} ////if current scene is the now loaded scene, set it to variety //UnityEngine.SceneManagement.Scene scene = //UnityEngine.SceneManagement.SceneManager.GetActiveScene (); //if (scene.name == sceneName) { // m_currentScene = scene; //} }