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. Programming Computer Vision with Python (学习笔记二)
  2. Android studio实现底部导航,Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果...
  3. Applications Manager Docker监控
  4. IDC报告:中国公有云服务市场同比增长49.7%,领跑全球
  5. zabbix3.0.4监控mysql主从同步
  6. multisim模拟电子钟课设带视频报告下载
  7. 软考中级软件设计师--13.数据结构与算法
  8. 白杨SEO:如何用百度好看视频排名优化来做视频营销?
  9. 【5万字】详解 Plotly Express 可视化
  10. autocad2014 第二次打开闪退_cad2014闪退怎么解决win10_win10系统打开cad2014闪退的解决步骤...
  11. IPCamera WiFi配置方案
  12. 百度地图api周边搜索功能
  13. 寄存器(1)寄存器概念,x86寄存器种类说明及汇编代码详解
  14. 二进制转十进制(C++)
  15. 第二章 UT单元测试——GTest框架实例
  16. 本地搭建Spring源码环境
  17. selenium+Java鼠标悬浮操作
  18. “hellow world”哥 (2011-8-12 14:55)
  19. 西洋跳棋程序的最终设计
  20. C++ 左值与右值 左值引用与右值引用

热门文章

  1. VsQt无法打开pdb文件的问题
  2. 河师大计算机技术专硕复试考什么,2021河南师范大学教育学硕士复试考什么-复试时间 - 希赛网...
  3. php模版网页底部修改,修改WORDPRESS模版底部信息
  4. 4 道路、轨道和公交——TransCAD多模式多用户交通分配模型
  5. (附源码)计算机毕业设计ssm-茶叶产品质量安全可追溯系统
  6. java 好和不好的形容词 英语怎么说_形容人的性格不好的英语形容词
  7. 虚拟局域网VLAN的划分
  8. 分享淘宝时间服务器同步时间接口api和苏宁时间服务器接口api
  9. 毕业设计-基于SpringBoot餐饮管理系统
  10. 我读之《拉伸——最好的运动》