public override IEnumerator Load() { SuitAsset Suit = mInstance.mCurrentLoading as SuitAsset; Exosuit suitToLoad = GameData.getExosuit(Suit.mSuitID); myWWW = new WWW(GameData.BUNDLE_PATH + Suit.myFilename); Logger.trace("LoadSuitAsset " + myWWW.url); yield return(myWWW); if (myWWW.error == null) { yield return(myWWW); if (myWWW == null) { Logger.trace("www is null"); yield break; } if (myWWW.assetBundle != null) { AssetBundle assetBundle = myWWW.assetBundle; string fileName = suitToLoad.mSuitFileName; AssetBundleRequest abr4 = assetBundle.LoadAssetAsync(fileName + "_" + Suit.mModelType + "_pre", typeof(GameObject)); yield return(abr4); GameObject suitModel = abr4.asset as GameObject; if (Suit.mModelType == SuitType.low) { string textureName = fileName + "_sheet_1"; abr4 = assetBundle.LoadAssetAsync(textureName, typeof(Material)); yield return(abr4); GameData.setLowPolySuitIsLoaded(texture: abr4.asset as Material, suitId: Suit.mSuitID, model: suitModel); } else { object[] arry = assetBundle.LoadAllAssets(); object[] array = arry; foreach (object obj in array) { if (obj is Texture2D) { } abr4 = assetBundle.LoadAssetAsync(fileName + "_mask_1", typeof(Material)); yield return(abr4); Material MaskMat = abr4.asset as Material; abr4 = assetBundle.LoadAssetAsync(fileName + "_armor_1", typeof(Material)); yield return(abr4); GameData.setHighPolySuitIsLoaded(armor: abr4.asset as Material, suitId: Suit.mSuitID, model: suitModel, mask: MaskMat); } } assetBundle.Unload(unloadAllLoadedObjects: false); } } mInstance.mCurrentLoading = null; }
public static void AddSuitToLoad(int suitId, SuitAsset.SuitType model_type, int Priority) { if (mInstance == null) { Debug.Log("<< mInstance is null "); } foreach (SuitAsset item in mInstance.mAssetQueue) { if (item == null) { Debug.Log("<< Suit is null " + mInstance.mAssetQueue.Count); } if (item.mSuitID == suitId && item.mModelType == model_type) { if (item.mPriority != Priority) { item.mPriority = Priority; mInstance.mAssetQueue.Sort(ComparePriority); } return; } } Exosuit exosuit = GameData.getExosuit(suitId); if (exosuit != null) { string mSuitFileName = exosuit.mSuitFileName; string str = mSuitFileName + "_" + model_type + ".unity3d"; SuitAsset suitAsset2 = new SuitAsset(); suitAsset2.mSuitID = suitId; suitAsset2.mPriority = Priority; suitAsset2.myFilename = "suits/" + str; suitAsset2.mModelType = model_type; mInstance.mAssetQueue.Add(suitAsset2); mInstance.mAssetQueue.Sort(ComparePriority); } }