static void Initialize() { _characterList = new List <CharacterData>(); _characters = new Dictionary <uint, CharacterData>(); _scenes = new List <SceneData>(); AssetBundleManager.AddHandler <CharacterData>(AddCharacter); AssetBundleManager.AddHandler <SceneData>(AddScene); Characters = new ReadOnlyCollection <CharacterData>(_characterList); Scenes = new ReadOnlyCollection <SceneData>(_scenes); SceneManager.sceneLoaded += SceneLoad; var bundlePath = BundleUtility.StoragePath; log.Info("Storage Path: {0}", bundlePath); #if UNITY_EDITOR if (AssetBundleManager.SimulateAssetBundleInEditor) { LoadFromEditor <CharacterData>(AddCharacter); LoadFromEditor <SceneData>(AddScene); LoadTask.Resolve(); } else #endif { var dataFilePath = Path.Combine(bundlePath, "data"); if (!File.Exists(dataFilePath)) { log.Info("Cannot find {0} copying StreamingAssets...", dataFilePath, bundlePath); AssetBundleManager.CopyDirectory(Application.streamingAssetsPath, bundlePath); } var file = File.ReadAllText(dataFilePath); var whitelist = new List <string>(); var blacklist = new List <string>(); foreach (var entry in file.Split('\n')) { if (entry.StartsWith("-")) { blacklist.Add(entry.Substring(1).Trim()); log.Info("Registered bundle blacklist: {0}".With(entry.Substring(1).Trim())); } else { whitelist.Add(entry.Trim()); log.Info("Registered bundle whitelist: {0}".With(entry.Trim())); } } var task = AssetBundleManager.LoadLocalBundles(whitelist, blacklist); task.Then(() => LoadTask.Resolve()); task.Done(); } }