unity2018之后使用了全新的package 管理工具。下图是全新package和以前的package的不同点(摘自https://blogs.unity3d.com/2018/05/09/unity-packages-life-cycle/)。

  Asset Store Package New Package
File .unitypackage Git repo or .tgz
Location Imported to Asset Folder Referenced (or embedded) via Packages folder
Dependencies Manual Explicit and calculable
Removal Manual / Difficult Remove Reference or delete embedded directory
Updatable Error prone / Difficult Easy
Forkable Manual Easy, source available (when feasible)
Full Projects Difficult to install Templates from New Project dialog

接下来介绍一下新版package中如何去管理自己的一些package。

Packages里面都可以包含些什么呢?

  • C# 脚本
  • Assemblies(dll)
  • Native plugins(so,jar,aar...)
  • 模型、贴图、动画文件...

每个包里面需要包含package manifest文件,这个文件里面包含了package的基本信息。下面是一个样例:

{"name": "com.unity.example","version": "1.2.3","displayName": "Package Example","description": "This is an example package","unity": "2019.1","unityRelease": "0b5","dependencies": {"com.unity.some-package": "1.0.0","com.unity.other-package": "2.0.0"},"keywords": ["keyword1","keyword2","keyword3"],"author": {"name": "Unity","email": "unity@example.com","url": "https://www.unity3d.com"}
}

而每个包里面的目录结构也是固定的:

<root>├── package.json├── README.md├── CHANGELOG.md├── LICENSE.md├── Editor│   ├── Unity.[YourPackageName].Editor.asmdef│   └── EditorExample.cs├── Runtime│   ├── Unity.[YourPackageName].asmdef│   └── RuntimeExample.cs├── Tests│   ├── Editor│   │   ├── Unity.[YourPackageName].Editor.Tests.asmdef│   │   └── EditorExampleTest.cs│   └── Runtime│        ├── Unity.[YourPackageName].Tests.asmdef│        └── RuntimeExampleTest.cs└── Documentation~└── [YourPackageName].md

package如何被使用

我们引用自定义的package有两种方式,一种是嵌入式的,一种是local的。

嵌入式

所谓嵌入式的就是直接将package放入到工程目录中的packages目录。

local

我们重点说一个local package。unity工程目录中packages目录里面有一个manifest.json文件,这个文件是用来管理package依赖的有点像maven或者是npm。具体的格式请参见https://docs.unity3d.com/Manual/upm-manifestPrj.html

{"scopedRegistries": [{"name": "Main","url": "http://localhost:8081/repository/unity/","scopes": ["com.xxx.unity"]}],"dependencies": {"com.unity.ads": "2.3.1","com.xxx.unity.tools": "1.0.0"}
}

里面的scopedRegistries是用来注册我们自己的package的,unity自己有一个官方的registry。上面的例子中我是使用的npm管理工具去管理的自己的package(后面我再详细介绍npm包管理工具)。通过上面的步骤我们就可以管理和下载自己的package啦。

总结一下:

  1. 创建unity package。我们只要按照上面说的目录结构创建自己的目录就可以的,需要注意的就是如果里面包含了c#代码,我们一定要使用unity中的asmdef去管理我们的代码,否则代码是不被编译的。
  2. 上传到npm
  3. 配置manifest文件

unity3d package 管理相关推荐

  1. Spark集群,多个版本Python/Python Package管理

    文章转载自:http://blog.csdn.net/gongbi917/article/details/52369025 仅用于个人学习备忘收藏,转载请注明原文地址 进年来,越来越多的数据科学家.分 ...

  2. Redhat之package管理--学点 YUM和RPM

    RPM(RPM Package Manager),是一个package管理系统.名称RPM有两种含义,一个是software 以RPM格式进行打包:另外一个指的是RPM package manager ...

  3. 如何将Git用于Unity3D源代码管理?

    本文翻译自:How to use Git for Unity3D source control? What are best practices for using Git source contro ...

  4. Unity3D 内存管理

    此行出处信息:http://www.onevcat.com/2012/11/memory-in-unity3d/ Unity3D在内存占用上一直被人诟病,特别是对于面向移动设备的游戏开发,动辄内存占用 ...

  5. Unity3D内存管理

    原文地址:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太 ...

  6. unity工程包怎么上传git_如何将Git用于Unity3D源代码管理?

    以下是我个人博客的摘录. 在3D游戏中使用Git 2015年10月更新: GitHub已为Git发布了一个名为Git LFS的插件,可直接解决以下问题.您现在可以轻松高效地对大型二进制文件进行版本控制 ...

  7. Unity3d声音管理器AudioManager

    播放背景音乐.播放提示音.播放音效.成组播放.声音源复用.音量控制.音效播放位置等等. 写差不多了,发现不是自己想要的风格.没完善呢就过时的感觉.先放着吧... #if UNITY_EDITOR // ...

  8. Unity3D内存管理之资源池Object Pool(适合初学者)

    引言:坚持更新,坚持更新,坚持更新.今日分享的是对象池的简单应用,从而有效优化内存.这里主要根据坦克大战的案例,讲解资源池的基本用法.项目使用的源文件在文末提供.本人也只是一名即将毕业的大学生,讲解如 ...

  9. solaris上的pkg管理

    原文写于2010-05-18 19:43:40 网易博客,已删.     在solaris上安装程序,很多时候多离不开package管理.上的编译好的软件都是已package的形式压缩好然后提供给大家 ...

最新文章

  1. c语言程序设计迷宫,C语言程序设计课程设计-迷宫.doc
  2. C语言 NULL与0 对应的地址
  3. Spring HttpMessageNotReadableException异常
  4. SpringBoot整合阿里云OSS上传文件
  5. 3dmax高版本转低版本插件_3dmax高版本和低版本中视口配置如何去阴影
  6. 程序员如何快速迁移 10 亿级数据?
  7. 集合的交并差 -python
  8. 老段51CTO会员卡 限时半价
  9. 经典——也许这就是方向
  10. HDU3501——欧拉函数裸题
  11. 一个循环递归遍历问题
  12. meethigher-腾讯课堂自动签到
  13. Tensorflow学习笔记 (用 tf.data 加载图片)
  14. excel 隐藏和取消隐藏
  15. 【odoo】odoo使用阿里邮箱配置邮件系统
  16. 2020届恒生电子秋季招聘试卷
  17. Mac/Linux查看内网ip与访问公网的ip地址
  18. 5分钟就能做一个Excel动态图表,你确定不学学?(纯gif教学)
  19. cf英文名字格式好看的_CF英文名字大全 穿越火线英文名字设计
  20. This system is not registered with an entitlement server.

热门文章

  1. Eclipse插件推荐
  2. word: 插入或修改文字时后面的字消失 解决办法
  3. EASY spa后端文档
  4. 长三角是指哪几个城市
  5. 报错:show databases;FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: ja
  6. 还记得当年的c-free和Borland c++5.5编译器吗?
  7. Java 计算接口调用时间
  8. Linux环境—JPEG/JPG/PNG图片转换WEBP格式(二)
  9. ips版面与tn的区别
  10. Elasticsearch suggest