Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
zwt069074237
UPM解决方案:苍耳
提交
7cd126f6
UPM解决方案:苍耳
项目概览
zwt069074237
/
UPM解决方案:苍耳
与 Fork 源项目一致
Fork自
魔术师Dix / UPM解决方案:苍耳
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
UPM解决方案:苍耳
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7cd126f6
编写于
1月 11, 2023
作者:
魔术师Dix
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
【UpmGitTool】新增安装包的方法;
上级
9307e307
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
155 addition
and
27 deletion
+155
-27
UpmGitTool/Assets/Scritps/Core/AppState.cs
UpmGitTool/Assets/Scritps/Core/AppState.cs
+9
-0
UpmGitTool/Assets/Scritps/Core/CoreFunction.cs
UpmGitTool/Assets/Scritps/Core/CoreFunction.cs
+109
-7
UpmGitTool/Assets/Scritps/Core/Manifest/E_PackageState.cs
UpmGitTool/Assets/Scritps/Core/Manifest/E_PackageState.cs
+4
-1
UpmGitTool/Assets/Scritps/Core/Manifest/UnityManifest.cs
UpmGitTool/Assets/Scritps/Core/Manifest/UnityManifest.cs
+16
-0
UpmGitTool/Assets/Scritps/UI/Controller/UICtrl_DepencyContent.cs
...ool/Assets/Scritps/UI/Controller/UICtrl_DepencyContent.cs
+2
-0
UpmGitTool/Assets/Scritps/UI/Controller/UICtrl_DescripeContent.cs
...ol/Assets/Scritps/UI/Controller/UICtrl_DescripeContent.cs
+2
-9
UpmGitTool/Assets/Scritps/UI/E_WindowType.cs
UpmGitTool/Assets/Scritps/UI/E_WindowType.cs
+2
-1
UpmGitTool/Assets/Scritps/UI/MainWindow.cs
UpmGitTool/Assets/Scritps/UI/MainWindow.cs
+4
-1
UpmGitTool/Assets/Scritps/UI/UIManager.cs
UpmGitTool/Assets/Scritps/UI/UIManager.cs
+5
-6
UpmGitTool/Assets/Scritps/Utils/Lib.cs
UpmGitTool/Assets/Scritps/Utils/Lib.cs
+2
-2
未找到文件。
UpmGitTool/Assets/Scritps/Core/AppState.cs
浏览文件 @
7cd126f6
...
...
@@ -149,5 +149,14 @@ namespace UpmGitTool
#
endregion
#
region
临时变量
/// <summary>
/// 当前选择的版本包;
/// </summary>
public
static
UpmPackageVersion
SelectedPackageVersion
;
#
endregion
}
}
\ No newline at end of file
UpmGitTool/Assets/Scritps/Core/CoreFunction.cs
浏览文件 @
7cd126f6
using
System.Collections.Generic
;
using
System.IO
;
using
UnityEngine
;
using
UnityEngine.TextCore.Text
;
using
System.Security.Cryptography
;
namespace
UpmGitTool
{
...
...
@@ -10,24 +9,127 @@ namespace UpmGitTool
/// </summary>
public
static
class
CoreFunction
{
#
region
包操作
public
static
void
Init
()
/// <summary>
/// 安装或者升级包
/// </summary>
public
static
void
InstallVersion
(
this
UpmPackageVersion
version
)
{
var
name
=
version
.
Name
;
var
gitPath
=
version
.
GitUrl
;
AppState
.
unityManifes
?.
InstallVersion
(
name
,
gitPath
);
}
public
static
void
InstallVersion
(
this
DependencyInfo
depency
)
{
string
key
=
depency
.
name
;
SemVersion
depVer
=
SemVersion
.
Parse
(
depency
.
version
);
var
pkg
=
AppState
.
FindPackage
(
key
);
var
pkgVersion
=
pkg
.
Versions
;
for
(
int
i
=
0
;
i
<
pkgVersion
.
Count
;
i
++)
{
var
tVersion
=
pkgVersion
[
i
];
if
(
tVersion
.
Version
>=
depVer
)
{
InstallVersion
(
tVersion
);
return
;
}
}
//没有目标版本,只有安装最新版本;
InstallVersion
(
pkgVersion
[
0
]);
}
#
region
/// <summary>
/// 查找某个版本所需要的依赖包;
/// </summary>
/// <param name="version"></param>
public
static
List
<
DependencyInfo
>
FindDepencis
(
this
UpmPackageVersion
version
)
{
List
<
DependencyInfo
>
L
=
new
List
<
DependencyInfo
>();
var
depency
=
version
.
Dependencies
;
foreach
(
var
dep
in
depency
)
{
//判定已安装版本是否有满足要求的;
string
key
=
dep
.
name
;
var
pkg
=
AppState
.
FindPackage
(
key
);
if
(
pkg
!=
null
)
{
if
(
pkg
.
IsInstalled
)
{
var
installVer
=
pkg
.
InstallVersionString
;
var
depVer
=
dep
.
version
;
if
(
IsCurrentVersionNewer
(
installVer
,
depVer
))
//已安装了更新的版本;
continue
;
}
}
//此时添加此版本;
L
.
Add
(
dep
);
}
return
L
;
}
private
static
void
InitMainWindowMsg
()
/// <summary>
/// 当前是否已经安装了更新版本;
/// </summary>
/// <param name="dep"></param>
public
static
bool
IsInstalledNewer
(
this
DependencyInfo
dep
)
{
GYEventsCenter
.
RegisterEventMsg
(
Lib
.
KEY_MENUITEM_OPEN_POJECT
,
OnClickOpenProject
);
//判定已安装版本是否有满足要求的包;
if
(!
dep
.
IsExistPackage
())
return
false
;
//未知包
string
key
=
dep
.
name
;
var
pkg
=
AppState
.
FindPackage
(
key
);
if
(!
pkg
.
IsInstalled
)
return
false
;
//未安装
var
installVer
=
pkg
.
InstallVersionString
;
var
depVer
=
dep
.
version
;
if
(
IsCurrentVersionNewer
(
installVer
,
depVer
))
//已安装了更新的版本;
return
true
;
return
false
;
}
/// <summary>
/// 是否是已知包;
/// </summary>
/// <param name="dep"></param>
/// <returns></returns>
public
static
bool
IsExistPackage
(
this
DependencyInfo
dep
)
{
string
key
=
dep
.
name
;
var
pkg
=
AppState
.
FindPackage
(
key
);
return
pkg
!=
null
;
}
/// <summary>
/// 判定当前的版本是不是更新的版本
/// </summary>
/// <param name="curVer">当前版本</param>
/// <param name="targetVer">目标版本</param>
public
static
bool
IsCurrentVersionNewer
(
string
curVer
,
string
targetVer
)
{
var
cV
=
SemVersion
.
Parse
(
curVer
);
var
tV
=
SemVersion
.
Parse
(
targetVer
);
return
cV
>=
tV
;
}
private
static
void
OnClickOpenProject
(
string
msgId
,
object
data
)
/// <summary>
/// 卸载包
/// </summary>
public
static
void
UnInstallVersion
(
UpmPackageVersion
version
)
{
var
name
=
version
.
Name
;
AppState
.
unityManifes
.
UninstallVersion
(
name
);
}
public
static
UpmPackageVersion
GetDefaultShowVersion
(
this
UPackage
pkg
)
{
if
(
pkg
.
InstallVersion
!=
null
)
return
pkg
.
InstallVersion
;
if
(
pkg
.
Versions
.
Count
==
0
)
return
null
;
return
pkg
.
Versions
[
0
];
}
#
endregion
...
...
UpmGitTool/Assets/Scritps/Core/Manifest/E_PackageState.cs
浏览文件 @
7cd126f6
...
...
@@ -22,7 +22,7 @@ namespace UpmGitTool
[
LabelText
(
"Unity内置包"
)]
UnityBuildIn
,
[
LabelText
(
"未知包"
)]
[
LabelText
(
"未知包"
)]
//这个是连Git地址都不知道的包;
Unknown
,
[
LabelText
(
"拉取中"
)]
...
...
@@ -37,5 +37,8 @@ namespace UpmGitTool
[
LabelText
(
"已最新"
)]
//已安装
Checked
,
[
LabelText
(
"未拉取"
)]
//知道Git地址,但没有拉取
UnFitched
,
}
}
\ No newline at end of file
UpmGitTool/Assets/Scritps/Core/Manifest/UnityManifest.cs
浏览文件 @
7cd126f6
...
...
@@ -39,5 +39,21 @@ namespace UpmGitTool
}
}
public
void
InstallVersion
(
string
name
,
string
version
)
{
if
(
dependencies
==
null
)
return
;
dependencies
[
name
]
=
version
;
OnSerialized
();
Logger
.
Log
(
$"安装版本:
{
name
}
:
{
version
}
"
);
}
public
void
UninstallVersion
(
string
name
)
{
dependencies
?.
Remove
(
name
);
OnSerialized
();
}
}
}
\ No newline at end of file
UpmGitTool/Assets/Scritps/UI/Controller/UICtrl_DepencyContent.cs
浏览文件 @
7cd126f6
...
...
@@ -44,6 +44,8 @@ namespace UpmGitTool.UI
public
void
InitData
(
UpmPackageVersion
version
)
{
AppState
.
SelectedPackageVersion
=
version
;
if
(
version
==
null
)
{
UsingObj
.
SetActive
(
false
);
...
...
UpmGitTool/Assets/Scritps/UI/Controller/UICtrl_DescripeContent.cs
浏览文件 @
7cd126f6
...
...
@@ -93,18 +93,11 @@ namespace UpmGitTool.UI
L
.
Add
(
version
);
VersionContent
.
UpdateList
(
L
);
//找到默认显示的版本;
var
defVersion
=
GetDefaultShowVersion
(
Package
);
var
defVersion
=
Package
.
GetDefaultShowVersion
(
);
VersionContent
.
SetSelectData
(
defVersion
);
InitVersion
(
defVersion
);
}
private
UpmPackageVersion
GetDefaultShowVersion
(
UPackage
pkg
)
{
if
(
pkg
.
InstallVersion
!=
null
)
return
pkg
.
InstallVersion
;
if
(
pkg
.
Versions
.
Count
==
0
)
return
null
;
return
pkg
.
Versions
[
0
];
}
public
void
InitVersion
(
UpmPackageVersion
v
)
{
CurrentVersion
=
v
;
...
...
@@ -138,7 +131,7 @@ namespace UpmGitTool.UI
private
void
InstallVersion
()
{
UIManager
.
Instance
?.
OpenWindow
(
E_WindowType
.
InstallWindow
);
}
private
void
UnInstallVersion
()
...
...
UpmGitTool/Assets/Scritps/UI/E_WindowType.cs
浏览文件 @
7cd126f6
...
...
@@ -22,6 +22,7 @@ namespace UpmGitTool.UI
[
LabelText
(
"主窗口"
)]
MainWindow
,
[
LabelText
(
"安装面板"
)]
InstallWindow
,
}
}
\ No newline at end of file
UpmGitTool/Assets/Scritps/UI/MainWindow.cs
浏览文件 @
7cd126f6
...
...
@@ -110,8 +110,11 @@ namespace UpmGitTool.UI
GitFetchView
.
gameObject
.
SetActive
(
false
);
DetailViewObj
.
SetActive
(
true
);
var
defVersion
=
package
.
GetDefaultShowVersion
();
AppState
.
SelectedPackageVersion
=
defVersion
;
descripeContent
.
InitData
(
package
);
depencyContent
.
InitData
(
package
.
Install
Version
);
depencyContent
.
InitData
(
def
Version
);
}
#
region
左侧的浏览进度条
...
...
UpmGitTool/Assets/Scritps/UI/UIManager.cs
浏览文件 @
7cd126f6
...
...
@@ -18,15 +18,14 @@ namespace UpmGitTool.UI
public
class
UIManager
:
SerializedMonoBehaviour
{
[
LabelText
(
"所有UI面板(非预制)"
)]
public
Dictionary
<
E_WindowType
,
UIWindow
>
DictAllWindow
=
new
Dictionary
<
E_WindowType
,
UIWindow
>();
public
static
UIManager
Instance
{
get
;
private
set
;
}
private
void
Awake
()
{
Instance
=
this
;
}
private
void
Start
()
{
OpenWindow
(
E_WindowType
.
MainWindow
);
}
[
LabelText
(
"所有UI面板(非预制)"
)]
public
Dictionary
<
E_WindowType
,
UIWindow
>
DictAllWindow
=
new
Dictionary
<
E_WindowType
,
UIWindow
>();
private
void
Start
()
{
OpenWindow
(
E_WindowType
.
MainWindow
);
}
public
void
OpenWindow
(
E_WindowType
type
)
{
...
...
UpmGitTool/Assets/Scritps/Utils/Lib.cs
浏览文件 @
7cd126f6
...
...
@@ -97,7 +97,7 @@
if
(
pkg
==
null
)
return
E_PackageState
.
None
;
if
(!
pkg
.
IsGit
)
return
E_PackageState
.
UnityBuildIn
;
if
(
pkg
.
IsFetching
)
return
E_PackageState
.
Fetching
;
if
(!
pkg
.
IsFetched
())
return
E_PackageState
.
Un
known
;
if
(!
pkg
.
IsFetched
())
return
E_PackageState
.
Un
Fitched
;
if
(!
pkg
.
IsInstalled
)
return
E_PackageState
.
UnInstall
;
if
(
pkg
.
IsUpgradable
)
return
E_PackageState
.
Upgrade
;
return
E_PackageState
.
Checked
;
...
...
@@ -120,7 +120,7 @@
if
(
pkg
==
null
)
return
E_PackageState
.
Unknown
;
if
(!
pkg
.
IsGit
)
return
E_PackageState
.
UnityBuildIn
;
if
(
pkg
.
IsFetching
)
return
E_PackageState
.
Fetching
;
if
(!
pkg
.
IsFetched
())
return
E_PackageState
.
Un
known
;
if
(!
pkg
.
IsFetched
())
return
E_PackageState
.
Un
Fitched
;
if
(!
pkg
.
IsInstalled
)
return
E_PackageState
.
UnInstall
;
if
(
pkg
.
InstallVersion
.
Version
.
ToString
()
==
depency
.
version
)
return
E_PackageState
.
Checked
;
return
E_PackageState
.
UnInstall
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录