/// <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();
        }
示例#2
0
        /// <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);
                }
            }
        }
示例#3
0
        /// <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);
            }
        }