using UnityEngine; using System.Collections; public class LoadAssets : BaseLoader { public Transform testTrans; // Use this for initialization IEnumerator Start () { yield return StartCoroutine(Initialize() ); yield return StartCoroutine(LoadCharacterPartFromAssetBundle(testTrans,"YoungMale","Hair", 0, 0) ); yield return StartCoroutine(LoadCharacterPartFromAssetBundle(testTrans,"YoungMale","Face", 0, 0) ); } IEnumerator LoadCharacterPartFromAssetBundle(Transform parentTrans, string characterType, string partName, int partType, int materialType){ // Load AssetBindlePath and Name string assetBundleObjectName = "Character/" + characterType + "/Prefabs/Prefab_" + partName + "_" + partType.ToString("00"); string assetBundleMaterialName = "Character/" + characterType+ "/Materials/Mat_" + partName + "_" + partType.ToString("00") + "_" + materialType.ToString("00"); string assetObjectName = "Prefab_" + partName + "_" + partType.ToString("00"); string assetMaterialName = "Mat_" + partName + "_" + partType.ToString("00") + "_" + materialType.ToString("00"); // Cache Load Data GameObject m_LoadGameObject = null; Material m_LoadMaterial = null; // Load AssetBundle yield return StartCoroutine(LoadGameObject ( assetBundleObjectName, assetObjectName, value => m_LoadGameObject = value) ); yield return StartCoroutine(LoadMaterial ( assetBundleMaterialName, assetMaterialName, value => m_LoadMaterial = value) ); // Set Object Info And Instantiate m_LoadGameObject = Instantiate(m_LoadGameObject); m_LoadGameObject.name = assetObjectName; m_LoadGameObject.GetComponentInChildren().material = m_LoadMaterial; // Set Object Transform if (parentTrans != null){ m_LoadGameObject.transform.SetParent(parentTrans, false); m_LoadGameObject.transform.localPosition = Vector3.zero; } // Unload AssetBundle AssetBundleManager.UnloadAssetBundle(assetBundleObjectName); AssetBundleManager.UnloadAssetBundle(assetBundleMaterialName); } }