/// <summary>
    /// 生成预览图
    /// </summary>
    private void InitThumbnailImages()
    {
        Sprite[] sprites = LibraryManager.GetInstance().GetProductPreviewTextures(info.ProductName);
        if (sprites != null && sprites.Length > 0)
        {
            mainPreviewImg.SetSprite(sprites[0]);

            for (int i = 0; i < sprites.Length; i++)
            {
                ImageButton imgBtn = UIManager.GetInstance().LoadUI <ImageButton>(IPResDictionary.ThumbnailImage);
                imgBtn.image.sprite = sprites[i];
                imgBtn.transform.SetParent(thumbnailsRoot);
                imgBtn.AddListener(() =>
                {
                    mainPreviewImg.sprite = imgBtn.image.sprite;
                });
            }
        }
    }
    public override void InitPanel(object param = null)
    {
        base.InitPanel();
        if (param != null)
        {
            ProductInfo info = param as ProductInfo;
            if (info != null)
            {
                this.info = info;
            }
            else
            {
                Debug.Log("Info is null");
                return;
            }
        }

        productNameText.SetText(info.ProductName);
        companyNameText.SetText(info.CompanyName);
        classifyText.SetText(info.ClassifiesToString());
        descText.SetText(info.Description);

        previewInfoPart.Init(info);
        FindRelatedProducts();

        playBtn.AddListener(OnPlayBtnClicked);
        downloadBtn.AddListener(OnDownloadBtnClicked);
        backBtn.AddListener(OnBackBtnClicked);

        if (string.IsNullOrEmpty(info.FilePath))
        {
            downloadBtn.gameObject.SetActive(true);

            return;
        }
        downloadBtn.gameObject.SetActive(!info.FilePath.EndsWith(".exe"));
    }