unity3d package 管理
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啦。
总结一下:
- 创建unity package。我们只要按照上面说的目录结构创建自己的目录就可以的,需要注意的就是如果里面包含了c#代码,我们一定要使用unity中的asmdef去管理我们的代码,否则代码是不被编译的。
- 上传到npm
- 配置manifest文件
unity3d package 管理相关推荐
- Spark集群,多个版本Python/Python Package管理
文章转载自:http://blog.csdn.net/gongbi917/article/details/52369025 仅用于个人学习备忘收藏,转载请注明原文地址 进年来,越来越多的数据科学家.分 ...
- Redhat之package管理--学点 YUM和RPM
RPM(RPM Package Manager),是一个package管理系统.名称RPM有两种含义,一个是software 以RPM格式进行打包:另外一个指的是RPM package manager ...
- 如何将Git用于Unity3D源代码管理?
本文翻译自:How to use Git for Unity3D source control? What are best practices for using Git source contro ...
- Unity3D 内存管理
此行出处信息:http://www.onevcat.com/2012/11/memory-in-unity3d/ Unity3D在内存占用上一直被人诟病,特别是对于面向移动设备的游戏开发,动辄内存占用 ...
- Unity3D内存管理
原文地址:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太 ...
- unity工程包怎么上传git_如何将Git用于Unity3D源代码管理?
以下是我个人博客的摘录. 在3D游戏中使用Git 2015年10月更新: GitHub已为Git发布了一个名为Git LFS的插件,可直接解决以下问题.您现在可以轻松高效地对大型二进制文件进行版本控制 ...
- Unity3d声音管理器AudioManager
播放背景音乐.播放提示音.播放音效.成组播放.声音源复用.音量控制.音效播放位置等等. 写差不多了,发现不是自己想要的风格.没完善呢就过时的感觉.先放着吧... #if UNITY_EDITOR // ...
- Unity3D内存管理之资源池Object Pool(适合初学者)
引言:坚持更新,坚持更新,坚持更新.今日分享的是对象池的简单应用,从而有效优化内存.这里主要根据坦克大战的案例,讲解资源池的基本用法.项目使用的源文件在文末提供.本人也只是一名即将毕业的大学生,讲解如 ...
- solaris上的pkg管理
原文写于2010-05-18 19:43:40 网易博客,已删. 在solaris上安装程序,很多时候多离不开package管理.上的编译好的软件都是已package的形式压缩好然后提供给大家 ...
最新文章
- c语言程序设计迷宫,C语言程序设计课程设计-迷宫.doc
- C语言 NULL与0 对应的地址
- Spring HttpMessageNotReadableException异常
- SpringBoot整合阿里云OSS上传文件
- 3dmax高版本转低版本插件_3dmax高版本和低版本中视口配置如何去阴影
- 程序员如何快速迁移 10 亿级数据?
- 集合的交并差 -python
- 老段51CTO会员卡 限时半价
- 经典——也许这就是方向
- HDU3501——欧拉函数裸题
- 一个循环递归遍历问题
- meethigher-腾讯课堂自动签到
- Tensorflow学习笔记 (用 tf.data 加载图片)
- excel 隐藏和取消隐藏
- 【odoo】odoo使用阿里邮箱配置邮件系统
- 2020届恒生电子秋季招聘试卷
- Mac/Linux查看内网ip与访问公网的ip地址
- 5分钟就能做一个Excel动态图表,你确定不学学?(纯gif教学)
- cf英文名字格式好看的_CF英文名字大全 穿越火线英文名字设计
- This system is not registered with an entitlement server.
热门文章
- Eclipse插件推荐
- word: 插入或修改文字时后面的字消失 解决办法
- EASY spa后端文档
- 长三角是指哪几个城市
- 报错:show databases;FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: ja
- 还记得当年的c-free和Borland c++5.5编译器吗?
- Java 计算接口调用时间
- Linux环境—JPEG/JPG/PNG图片转换WEBP格式(二)
- ips版面与tn的区别
- Elasticsearch suggest