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的形式压缩好然后提供给大家 ...
最新文章
- Programming Computer Vision with Python (学习笔记二)
- Android studio实现底部导航,Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果...
- Applications Manager Docker监控
- IDC报告:中国公有云服务市场同比增长49.7%,领跑全球
- zabbix3.0.4监控mysql主从同步
- multisim模拟电子钟课设带视频报告下载
- 软考中级软件设计师--13.数据结构与算法
- 白杨SEO:如何用百度好看视频排名优化来做视频营销?
- 【5万字】详解 Plotly Express 可视化
- autocad2014 第二次打开闪退_cad2014闪退怎么解决win10_win10系统打开cad2014闪退的解决步骤...
- IPCamera WiFi配置方案
- 百度地图api周边搜索功能
- 寄存器(1)寄存器概念,x86寄存器种类说明及汇编代码详解
- 二进制转十进制(C++)
- 第二章 UT单元测试——GTest框架实例
- 本地搭建Spring源码环境
- selenium+Java鼠标悬浮操作
- “hellow world”哥 (2011-8-12 14:55)
- 西洋跳棋程序的最终设计
- C++ 左值与右值 左值引用与右值引用
热门文章
- VsQt无法打开pdb文件的问题
- 河师大计算机技术专硕复试考什么,2021河南师范大学教育学硕士复试考什么-复试时间 - 希赛网...
- php模版网页底部修改,修改WORDPRESS模版底部信息
- 4 道路、轨道和公交——TransCAD多模式多用户交通分配模型
- (附源码)计算机毕业设计ssm-茶叶产品质量安全可追溯系统
- java 好和不好的形容词 英语怎么说_形容人的性格不好的英语形容词
- 虚拟局域网VLAN的划分
- 分享淘宝时间服务器同步时间接口api和苏宁时间服务器接口api
- 毕业设计-基于SpringBoot餐饮管理系统
- 我读之《拉伸——最好的运动》