/// <summary> /// (各パッケージの)お気に入りボタンが押された場合 /// </summary> /// <param name="index">押されたボタンのインデックス</param> private void PressedFavorite(int index) { UnityPackageInfo info = dispList[index]; info.isFavorite = !info.isFavorite; dispList[index] = info; FileAccessor.UpdateFavoriteState(infoPath, dispList[index]); // ownedPackageInfoList更新(本来は該当する項目だけの更新としたほうがよい) FileAccessor.LoadOwnedPackageInfo(ref ownedPackageInfoList, localPath, infoPath); AssetDatabase.Refresh(); }
/// <summary> /// お気に入り情報を更新する /// </summary> /// <param name="infoPath">パッケージ情報を格納しているフォルダのパス</param> /// <param name="info">パッケージ情報</param> public static void UpdateFavoriteState(string infoPath, UnityPackageInfo info) { string favPath = infoPath + "/" + info.name + "/fav"; if (info.isFavorite) { if (!File.Exists(favPath)) { using (File.Create(favPath)) { } } } else { if (File.Exists(favPath)) { File.Delete(favPath); } } }
/// <summary> /// 保持しているunitypackage情報を全て読み込む /// </summary> /// <param name="ownedPackageInfoList">保持しているパッケージ情報リスト</param> /// <param name="packagePath">unitypackageのパス</param> /// <param name="infoPath">パッケージ情報を格納しているフォルダのパス</param> public static void LoadOwnedPackageInfo(ref List <UnityPackageInfo> ownedPackageInfoList, string packagePath, string infoPath) { ownedPackageInfoList.Clear(); List <string> allList = FileAccessor.GetPackageList(packagePath); foreach (var path in allList) { string fileNameNoExt = Path.GetFileNameWithoutExtension(path); UnityPackageInfo info = new UnityPackageInfo(); info.name = fileNameNoExt; string savePath = infoPath + "/" + fileNameNoExt; CreateDirectoryIfNotFound(savePath); if (!File.Exists(savePath + "/icon.png")) { info.thumb = null; } else { Texture2D tex = new Texture2D(1, 1); tex.LoadImage(File.ReadAllBytes(savePath + "/icon.png")); info.thumb = tex; } JsonData json = GetJsonData(path, infoPath); if (json == null) { info.id = null; info.version = null; } else { info.id = json.id; info.version = json.version; } info.size = GetPackageSize(path); info.isFavorite = GetFavoriteState(infoPath, fileNameNoExt); ownedPackageInfoList.Add(info); } }