/// <summary>
        /// 初期化処理を行う
        /// </summary>
        private void OnEnable()
        {
            dispList  = new List <UnityPackageInfo>();
            localPath = FileAccessor.GetLocalPackagePath();
            infoPath  = FileAccessor.GetSavePath();
            if (infoPath.Equals(""))
            {
                Debug.LogError("ERROR");
                return;
            }
            // ※tmpPathのフォルダは削除されるので変更する場合は注意してください
            tmpPath   = infoPath + "/tmp";
            noImage   = (Texture)AssetDatabase.LoadAssetAtPath("Assets/LocalPackageImporter/Editor/Images/noImage.png", typeof(Texture2D));
            heart_on  = (Texture)AssetDatabase.LoadAssetAtPath("Assets/LocalPackageImporter/Editor/Images/heart_on.png", typeof(Texture2D));
            heart_off = (Texture)AssetDatabase.LoadAssetAtPath("Assets/LocalPackageImporter/Editor/Images/heart_off.png", typeof(Texture2D));

            // unitypackageファイルのリストを取得する
            packagePathList = FileAccessor.GetPackageList(localPath);
            if (packagePathList == null)
            {
                // 不正なディレクトリの場合は終了
                DestroyImmediate(this);
            }
            // ローカルに持つ全unitypackage数
            allPackageNum = packagePathList.Count;

            // infoPathフォルダに保持しているunitypackage情報を事前に読み込んでおく
            ownedPackageInfoList = new List <UnityPackageInfo>();
            FileAccessor.LoadOwnedPackageInfo(ref ownedPackageInfoList, localPath, infoPath);
            SetDisplayPackageInfo();
            AssetDatabase.Refresh();
        }
        /// <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>
        /// unitypackageのメタデータを取得・アップデートします
        /// </summary>
        private void UpdateMetadata()
        {
            // 実行時間計測
            // System.Diagnostics.Stopwatch watch = System.Diagnostics.Stopwatch.StartNew();

            FileAccessor.ExtractUnityPackageInfo(localPath, infoPath);
            FileAccessor.ExtractThumbnailsFromPackage(localPath, infoPath, tmpPath);
            FileAccessor.LoadOwnedPackageInfo(ref ownedPackageInfoList, localPath, infoPath);
            SetDisplayPackageInfo();
            AssetDatabase.Refresh();

            // watch.Stop();
            // float ms = watch.ElapsedMilliseconds;
            // Debug.LogFormat("{0} ms", ms);
        }