一起成为偷库大盗吧,Unity Packages的使用略谈

版权申明:

  • 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明
  • 更多学习资源请加QQ:1517069595获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)

前言
相信很多Unity用户,老早发现Unity的不少官方插件从AssetStore迁移到Packages了。而且大部分新功能都是在Package Manager启用即可,相当方便(不过有网络问题的话,那就相当烦人)。虽然我原本是想丢一个文档超连接,就可以完事了,但是会错过欢乐的吹水时间。由于现在Unity中国正在肝文档翻译,应该在不久的将来会见到对应的官方中文文档。官方英文文档连接如下:
https://docs.unity3d.com/Manual/Packages.html

Packages支持的存放类型

1.Packages文件夹
$(UnityProject)\Packages\中,除了存放Packages的清单设置文件manifestjson,也可以存放Package。用法也很简单,直接把Package(包)拷贝到此目录, Unity会自动加载。

其实manifest.json已经保存了Packages所有引用关系,只不过官方觉得文本编辑对小白不 友好,所以整了个Ul界面,也就是Package Manager。关于manifest.json的编辑, 还是乖乖查阅文档,这里就不做过多阐述。

2.官方Package
Unity的Package Manager界面,是先从官方服务器获取列表,然后再加载Package(包)信 息。所以当你网络不好时候,会出现死亡转圈。大部分小白到了这一步, 就会喊Unity辣鸡。但是相信Unity中国在不久的将来会改善这些网络问题。
一起成为偷库大盗吧,Unity Packages的使用略谈_第1张图片

(那小圈转啊转,新功能盼不到头)

对于Package Manager的使用,还是多看看官方文档吧。

而Packages在网络引|用的Package(包),都是缓存在
$(UnityProject)\ Library\ PackageCache\ 这个文件夹下的。这个文件夹作用和$(UnityProject)Packages差不多,但是放在Library文件夹的都是存放缓存文件,所以你会发 现这里的Package默认是只读的。就算是你修改了这些文件,下次打开Unity项目, Unity会热情地帮你更新到服务器的版本。

下次再遇到Package Manager的死亡转圈的时候,请自己手动修改manifest.json文件, 或者把其他项目的PackageCache下的Package(包)拷贝到本项目的Packages.不要再喊Unity辣鸡了,是你用Unity像蔡徐坤。

3.本地文件
在死亡转圈旁边,你会发现有个加号,点下去会出现一个”从磁盘添加Package"。接着选择-个Package(包)的文件夹,完事。
一起成为偷库大盗吧,Unity Packages的使用略谈_第2张图片
4.第三方Git库
这个功能除了文本编辑manifest.json,还可以借助第三方插件实现。请访问这个Github库 (需要Unity 2018.3和以上的版本)
https://github.com/mob-sakai/UpmGitExtension
安装也很简单,按照下面文本修改manifest.json:

{

“依赖关系”: {

	"com.coffee.upm-git extension" : " https://github.com/mob-sakai/UpmGitExtension.git#0.8.1",
	...
	},

}

然后Package Manager成了满血版,从此可以到处偷库。在这里插入图片描述(原本的加号多了“从UPRL添加Package(包)”)在这里插入图片描述(然后你可以添加Github等的库超链接)

怎样建立自己的Package(包)

上面已经了解Packages支持类型,怎么管理Package(包),请按照自己的项目需求决定。其实除了引用强大的第三库外,自己也有功能复用的需求,那么让我们开始创建自己的Package(轮子)。这边为了方便讲解,我把$(UnityProject)\Packages作为测试文件夹。

1.建立Package文件夹
在$(UnityProject)Packages\文件夹下,新建一个文件夹, 名字你自己定。这边我起名为MyPackage。一起成为偷库大盗吧,Unity Packages的使用略谈_第3张图片
打开MyPackage文件夹,新建一个packagejson文件。 你可选择性新建下面文件夹:

●Documentation~:文档
●Editor:编辑器代码和资源
●Runtime:运行时代码和资源
●Tests:单元测试
一起成为偷库大盗吧,Unity Packages的使用略谈_第4张图片
(个人推荐的Package的目录结构)

之后请使用Assembly Definition文件进行管理不同Package(包)的代码依赖关系。

2.编辑package.json文件
这部分,照着文档的说明改就行了。其实就是描述本Package(包)的信息,和库的依赖关 系。这边我瞎填一下信息: .
一起成为偷库大盗吧,Unity Packages的使用略谈_第5张图片
一起成为偷库大盗吧,Unity Packages的使用略谈_第6张图片(哈,什么东西蒙蔽你的双眼)

3.找一个地方托管你的Package(包)
到了这一步,你可以把MyPackage从你的项目挪走。在本地磁盘维护+文件方式添加 Package(包),或是Git托管 +URL方式添加Package(包),还是根据你的项目需求决定。至于Git和Github等使用方法,还是自己去百度或是谷歌搜索。

Packages的优点和缺点

由于快是一个翻不动的咸鱼,所以也懒得去吐槽奇葩的工作遭遇。

优点

●高度制定化你的Unity功能,哪个功(zi)能(shi)随你挑;

●让你的项目目录更加清爽,一堆插件也不用放在Assets文件夹了,也减少第三方库的提交;

●方便项目管理,-打开Unity就帮你加载所有的Package(包),也不怕自己的第三方库和同事有差异了;

缺点

小白认为的缺点:

●网络问题,Package Manager更新不了最新信息,死亡转圈;

我这类吃螃蟹的人认为的缺点:

●Package(包)依赖关系要谨慎处理,比如Unity 2019.2把UGUI挪到Packages,初期一大堆库GG;

●Package(包)版本问题,有时候Unity主版本和Package(包)的API有差异,就只能等下个版本了;

最后

这些技巧熟悉后,你可以到处去偷库了。有错误和遗漏的地方,可以下面评论指出。我,偷库大盗,莫得感情,也莫得Git。

你可能感兴趣的:(Unity使用,Unity教程,源码管理,unity,unity3d)