提交 095f04f9 编写于 作者: 魔术师Dix's avatar 魔术师Dix

【UI】添加安装窗口;

上级 7cd126f6
/*
*Copyright(C) 2023 by Cocklebur All rights reserved.
*Unity版本:2022.2.1f1c1
*作者:Chief
*创建日期: 2023-01-11
*模块说明:安装包面板
*版本: 1.0
*/
using Sirenix.OdinInspector;
using System;
using System.Collections.Generic;
using System.Security.Cryptography;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace UpmGitTool.UI
{
/// <summary>
/// 安装窗口
/// </summary>
public class InstallWindow : UIWindow
{
public override E_WindowType WindowType => E_WindowType.InstallWindow;
private UpmPackageVersion selectedVersion => AppState.SelectedPackageVersion;
[LabelText("依赖项区域")]
public ListViewContent DepencyContent;
[LabelText("安装")]
public Button BtnInstall;
[LabelText("关闭")]
public Button BtnClose;
[LabelText("标题")]
public TextMeshProUGUI LabelTitle;
[LabelText("需要安装包数量")]
public TextMeshProUGUI LabelDepencyCount;
[LabelText("未知的包数量")]
public TextMeshProUGUI LabelUnkownCount;
private void Start()
{
BtnInstall.onClick.AddListener(RealInstall);
BtnClose.onClick.AddListener(Close);
}
protected override void OnOpen()
{
if (selectedVersion == null)
{
Close();
return;
}
LabelTitle.SetText($"{selectedVersion.Name} : {selectedVersion.VersionString}");
//查找所需引用;
var L = selectedVersion.Dependencies;
List<IListViewData> listData = new List<IListViewData>();
int unkownCount = 0;
int depencyInstallCount = 0;
foreach (var dep in L)
{
if (!dep.IsExistPackage())
unkownCount++;//未知包
else if (!dep.IsInstalledNewer())
depencyInstallCount++;//需要安装的包
listData.Add(dep);
}
DepencyContent.UpdateList(listData);
LabelDepencyCount.SetText(depencyInstallCount.ToString());
LabelUnkownCount.SetText(unkownCount.ToString());
LabelUnkownCount.color = unkownCount == 0 ? Color.white : Color.red;
}
protected override void OnClose() { }
private void RealInstall()
{
//把所有的依赖都安装一下
var L = selectedVersion.Dependencies;
foreach (var dep in L)
{
if (dep.IsInstalledNewer())
continue;
if (!dep.IsExistPackage())
continue;
//安装某个版本;
dep.InstallVersion();
}
//安装自身
selectedVersion.InstallVersion();
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: f4ed2506dd34c8f408fffcbcaa1a9274
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册