Unity3D的项目和包管理器
upkit的Python项目详细描述
Upkit-Unity3D项目/包工具包
upkit是一个命令行工具包,可帮助创建/组织Unity3D项目。使用一个简单的配置文件,upkit会自动解析项目依赖项,符号链接它们,并为您生成一个随时可用的unity项目。
对于那些匆忙的人,请前往Getting Started查看upkit正在运行。
你为什么要用它?
我们的用例
如果您和我们一样,在开发Unity项目时需要这些:
- 将第三方资产、插件、依赖项与您的资产/代码完全分离,以减少项目规模。
- 快速的包交换为原型和生产。
- 简单的依赖解析,从nuget或git存储库,或其他地方。
- 配置简单。
乍一看,upkit与projeny有一些相似之处,projeny是我们团队中经常使用的一个很好的工具。然而,由于projeny模型强加了一个扁平的、独占的包层次结构,现成的包通常不能很好地协同工作。例如,具有相同本机库文件夹Plugins/Android
的两个包将发生冲突。即使没有名称冲突,unity兼容的nuget包有时也不容易链接。
Unity 2018正式配备了一个易于使用的内置包管理器。但是,在撰写本文时,除了来自unity technologies的包外,大多数资产存储包在包管理器中仍然不可用。当前包管理器的另一个缺点是,我们不能将其用于内部跨项目包。这意味着,大多数时候,我们必须回到传统的方法。
upkit解决了这些问题,并添加了更多技巧
upkit最初是作为我们解决上述限制的解决方案而设计的,它是一个位于nuget(依赖项解决步骤)和projeny(项目链接步骤)之间的工具。随着项目的发展,我们决定通过将这两个步骤组合成upkit来简化整个过程,通过添加以下功能使其更易于使用:
- 单(yaml)文件配置,用于相关性解析、链接等。
- 使用linkspec链接任何内容—确定如何将文件夹、文件链接到Unity项目。
- 创建可分发包(使用linkspec)。
- 对nuget和git依赖项的开箱即用支持。
开始
这些说明将使用upkit
创建一个简单的Unity3D项目,该项目依赖于NuGet Gallery上的newtonsoft.json。
此项目的源代码也可以在^{
先决条件
- python 2.7或更高版本,带有
pip
。 - (可选)
nuget
用于解析nuget依赖项。 - (可选)
git
用于解析git依赖项。
安装
$ pip install upkit
步骤1:创建upkit项目
创建新的upkit项目非常简单:
$ upkit create-package simple-app
步骤2:编辑upkit配置文件upkit.yaml
upkit将创建一个名为simple-app
的新文件夹,您可以在其中找到upkit.yaml
。此文件包含upkit创建unity项目所需的所有信息。现在,修改它让upkit知道项目将依赖于NewtonSoft.Json
:
# upkit.yamlparams:project:'{{__dir__}}/project'links:-target:'{{__assets__}}'source:'{{__dir__}}/assets'content:['*']-target:'{{__plugins__}}'source:'{{__dir__}}/plugins'content:['*']-target:'{{__project__}}/ProjectSettings'source:'{{__dir__}}/settings'-target:'{{__project__}}/Packages'source:'{{__dir__}}/packages'# Add project dependencies here: -source:'nuget:Newtonsoft.Json@11.0.2#lib/net35'target:'{{__plugins__}}/Newtonsoft.Json'
注意最后第二行,我们指示upkit使用nuget:
方案解析nuget库。是的,就这么简单!
步骤3:链接创建Unity项目
最后一步是通过调用:
$ cd simple-app
$ upkit link
upkit需要几秒钟的时间来解析项目的依赖关系,并在simple-app/project
下生成一个unity项目。在unity中作为一个项目打开文件夹,就可以开始了。
文档
作者
- vu le-initial work-FindersEyes
许可证
这个项目是在麻省理工学院的许可下授权的-详细信息请参见LICENSE.md文件
致谢
- 此工具在引擎盖下使用
xmltodict
、pyyaml
、yamlordereddictloader
和jinja2
。感谢尊敬的作者的辛勤工作。