/// <summary> /// Loads An Asset Bundle For Using Data Such As Sprites /// </summary> /// <param name="resource">The Path To The Embedded Resource File - Example: VRCAntiCrash.Resources.plaguelogo.asset</param> /// <returns>True If Successful</returns> internal bool LoadBundle(string resource) { if (HasLoadedABundle) { return(true); } try { if (string.IsNullOrEmpty(resource)) { error = "Null Or Empty Resource String!"; return(false); } var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource); if (stream != null && stream.Length > 0) { var memStream = new MemoryStream((int)stream.Length); stream.CopyTo(memStream); if (memStream != null && memStream.Length > 0) { var assetBundle = AssetBundle.LoadFromMemory(memStream.ToArray()); if (assetBundle != null) { assetBundle.hideFlags |= HideFlags.DontUnloadUnusedAsset; bundle = assetBundle; HasLoadedABundle = true; return(true); } assetBundle = AssetBundle.GetAllLoadedAssetBundles_Native().First(o => o.GetAllAssetNames().Any(p => p.ToLower().Contains("plague"))); assetBundle.hideFlags |= HideFlags.DontUnloadUnusedAsset; bundle = assetBundle; HasLoadedABundle = true; return(true); } error = "Null memStream!"; } else { error = "Null Stream!"; } return(false); } catch (Exception ex) { error = ex.ToString(); return(false); } }