提交 116d2052 编写于 作者: 魔术师Dix's avatar 魔术师Dix

【UpmGitTool】更新调试显示代码;

上级 7e4f8d92
......@@ -7,6 +7,7 @@
*版本: 1.0
*/
using Sirenix.OdinInspector;
using System;
using UnityEngine;
......@@ -16,12 +17,14 @@ namespace UpmGitTool
/// 包依赖
/// </summary>
[Serializable]
public struct DependencyInfo
public struct DependencyInfo
{
[HideLabel, DisplayAsString, VerticalGroup("包名")]
[SerializeField]
private string m_Name;
[HideLabel, DisplayAsString, VerticalGroup("版本")]
[SerializeField]
private string m_Version;
......
......@@ -7,6 +7,8 @@
*版本: 1.0
*/
using Sirenix.OdinInspector;
using System;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
......@@ -19,12 +21,62 @@ namespace UpmGitTool
/// </summary>
public class UPackage : IListViewData
{
#region 包信息
private const float LabelWidth = 100;
[LabelWidth(LabelWidth)]
[ShowInInspector, DisplayAsString, LabelText("包名")]
public string PackageName { get; private set; }
[LabelWidth(LabelWidth)]
[ShowInInspector, DisplayAsString, LabelText("Git工程名")]
public string GitLastName { get; private set; }
[LabelWidth(LabelWidth)]
[ShowInInspector, DisplayAsString, LabelText("是否是Git包")]
public bool IsGit { get; private set; }
/// <summary>
/// 包路径;
/// </summary>
[LabelWidth(LabelWidth)]
[ShowInInspector, DisplayAsString, LabelText("包路径")]
public string PackageUrl { get; private set; }
/// <summary>
/// 当前工程是否有已经安装的包;
/// </summary>
[LabelWidth(LabelWidth)]
[ShowInInspector, DisplayAsString, LabelText("已安装")]
public bool IsInstalled { get; private set; }
/// <summary>
/// 已安装的包版本号;
/// </summary>
[LabelWidth(LabelWidth)]
[ShowInInspector, DisplayAsString, LabelText("已安装版本")]
public string InstalledVersionString { get; private set; }
/// <summary>
/// 已安装包的ID;
/// </summary>
[LabelWidth(LabelWidth)]
[ShowInInspector, DisplayAsString, LabelText("已安装包ID")]
public string InstallPackageId { get; private set; }
/// <summary>
/// 是否可以升级
/// </summary>
[LabelWidth(LabelWidth)]
[ShowInInspector, DisplayAsString, LabelText("是否可升级")]
public bool IsUpgradable { get; private set; }
[LabelText("所有版本")]
public List<UpmPackageVersion> Versions = new List<UpmPackageVersion>();
#endregion
public UPackage(PackageItem item)
{
PackageName = item.Name;
......@@ -69,6 +121,7 @@ namespace UpmGitTool
if (i >= length)
Versions.Add(version);
//排序
Versions.Sort((a, b) => { return a.Version > b.Version ? -1 : 1; });
//查找当前安装的版本;
RefreshInstalledVersion();
......@@ -77,19 +130,33 @@ namespace UpmGitTool
/// <summary>
/// 刷新已安装的版本
/// </summary>
[Button("刷新已安装信息")]
private void RefreshInstalledVersion()
{
InstallVersion = null;
if (!IsInstalled) return;
if (string.IsNullOrEmpty(InstallPackageId)) return;
if (Versions == null) return;
foreach (var ver in Versions)
{
if (ver.PackageId == InstallPackageId)
{
InstallVersion = ver;
InstalledVersionString = ver.VersionString;
return;
break;
}
}
if (InstallVersion == null) return;
var installVer = InstallVersion.Version;
IsUpgradable = false;
foreach (var ver in Versions)
{
if (ver.Version > installVer)
{
IsUpgradable = true;
break;
}
}
}
......@@ -99,28 +166,6 @@ namespace UpmGitTool
/// </summary>
public UpmPackageVersion InstallVersion { get; private set; }
/// <summary>
/// 当前工程是否有已经安装的包;
/// </summary>
public bool IsInstalled { get; private set; }
/// <summary>
/// 已安装的包版本号;
/// </summary>
public string InstalledVersionString { get; private set; }
/// <summary>
/// 包路径;
/// </summary>
public string PackageUrl { get; private set; }
/// <summary>
/// 已安装包的ID;
/// </summary>
public string InstallPackageId { get; private set; }
public List<UpmPackageVersion> Versions = new List<UpmPackageVersion>();
public bool IsFilter(E_PackageFliterType type)
{
switch (type)
......@@ -170,6 +215,7 @@ namespace UpmGitTool
/// <summary>
/// Git信息拉取请求
/// </summary>
[NonSerialized]
public GitFetchReq FetchReq;
public bool IsFetching
......
......@@ -7,6 +7,7 @@
*版本: 1.0
*/
using Sirenix.OdinInspector;
using System;
using UnityEngine;
using UpmGitTool.UI;
......@@ -20,19 +21,60 @@ namespace UpmGitTool
[Serializable]
public class UpmPackageVersion : IListViewData
{
private const float LabelWidth = 100;
[LabelWidth(LabelWidth)]
[DisplayAsString, LabelText("Tag名")]
[SerializeField] private string refName;
[LabelWidth(LabelWidth)]
[DisplayAsString, LabelText("Hash")]
[SerializeField] private string hash;
[LabelWidth(LabelWidth)]
[DisplayAsString, LabelText("Unity版本")]
[SerializeField] private string m_MinimumUnityVersion;
[LabelWidth(LabelWidth)]
[DisplayAsString, LabelText("显示名")]
[SerializeField] private string m_DisplayName;
[HideInInspector]
[SerializeField] private string m_Description;
[LabelWidth(LabelWidth)]
[DisplayAsString, LabelText("包名")]
[SerializeField] private string m_Name;
[LabelWidth(LabelWidth)]
[DisplayAsString, LabelText("包ID")]
[SerializeField] private string m_PackageId;
[LabelWidth(LabelWidth)]
[DisplayAsString, LabelText("作者")]
[SerializeField] private string m_Author;
[LabelWidth(LabelWidth)]
[DisplayAsString, LabelText("版本号")]
[SerializeField] private string m_VersionString;
[LabelText("依赖项目"), ListDrawerSettings(HideAddButton = true), TableList]
[SerializeField] private DependencyInfo[] m_Dependencies;
[LabelWidth(LabelWidth)]
[DisplayAsString, LabelText("文档链接")]
[SerializeField] private string m_DocumentationUrl;
[LabelWidth(LabelWidth)]
[DisplayAsString, LabelText("更新日志")]
[SerializeField] private string m_ChangelogUrl;
[LabelWidth(LabelWidth)]
[DisplayAsString, LabelText("仓库地址")]
[SerializeField] private string m_RepositoryUrl;//仓库地址
[LabelWidth(LabelWidth)]
[DisplayAsString, LabelText("拉取地址")]
[SerializeField] private string m_Url;//拉取地址,可以直接在Unity工程中拉取
public string RefName => refName;
......
......@@ -31,6 +31,9 @@ namespace UpmGitTool.UI
[LabelText("状态图片")]
public Image StateMark;
[Title("包信息"), HideLabel, HideReferenceObjectPicker]
[PropertyOrder(99)]
[ShowInInspector, HideInEditorMode]
private UPackage Package;
public void SetData(IListViewData data)
......@@ -97,9 +100,17 @@ namespace UpmGitTool.UI
return;
}
//可更新
StateMark.sprite = StateSp_Upgrade;
StateMark.color = Color.white;
if (Package.IsUpgradable)
{
//可更新
StateMark.sprite = StateSp_Upgrade;
StateMark.color = Color.white;
}
else
{
StateMark.sprite = StateSp_Checked;
StateMark.color = Color.green;
}
}
private void OnPackageDataRefresh(string msgId, object data)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册