Unity包的layout约定,需要按照这个规范进行布局。具体的每个字段的含义可以查询官方文档。
1、创建一个工程,取名叫ar_client_unity
2、右键点击PackagesàShow in Explorer,打开Packages所在的目录
3、在Packages目录下,创建你的包目录,目录名称建议遵循规范, com.<company-name>.xx, 比如Unity官方的包命名: “com.unity.timeline”。
4、在com.huawei.arengine中添加package.json,各个字段的具体含义可以查看官方文档。格式为:
{
"name": "com.huawei.arengine",
"displayName": "AREngine XR Plugin",
"version": "1.0.0",
"unity": "2019.4",
"description": "Provides native Huawei AREngine integration for use with Unity's multi-platform XR API.\nSupports the following features:\n-Efficient Background Rendering\n-Horizontal Planes\n-Depth Data\n-Anchors\n-Hit Testing\n-Occlusion",
"keywords": [
"arengine",
"ar",
"augmented",
"xr",
"reality",
"core"
],
"dependencies": {
"com.unity.xr.arsubsystems": "4.1.1",
"com.unity.xr.management": "3.2.16",
"com.unity.modules.androidjni": "1.0.0"
}
}
建议可以在其他的包中拷贝过来,然后进行修改,需要增加CHANGELOG.md、LICENSE.md、README.md等文件,返回的Unity界面。会自动的加载依赖包。
- 右键—>Create->Folder, 创建Runtime与Editor目录,在这2个目录下增加C#代码文件。
- 需要创建关联脚本,创建asmdef文件,此文件相当于.NET生态系统中的C#项目,必须在程序集定义文件中设置对其他程序集的显式引用(无论是在同一包中还是在外部包中)。在asmdef文件中可以配置一些跟平台相关的配置,如下图所示:
创建文件有约定的命名规范:
Store Editor-specific code under a root editor assembly definition file:
Editor/MyCompany.MyFeature.Editor.asmdef
Store runtime-specific code under a root runtime assembly definition file:
Runtime/MyCompany.MyFeature.Runtime.asmdef
Configure related test assemblies for your editor and runtime scripts:
Tests/Editor/MyCompany.MyFeature.Editor.Tests.asmdef
Tests/Runtime/MyCompany.MyFeature.Runtime.Tests.asmdef
创建文件方法:右键—>Create->Assembly Definition
这儿一定要注意,如果你的包依赖于一些其他的包,需要在asmdef中进行配置,我在开发的过程中发现一个问题,当我在vs中打开打开代码,引用了ARSubsystems了,但是表示引用不了,如下图所示:
解决办法为需要在asmdef文件中修改增加你依赖的包,最后点击apply,重新打开vs就可以引用了。
好了,包的文件基本都创建好了,就需要打包了,众所周知,Unity Package Manager加载包有3种方法,
1、加载本地包的方法,选择Add Package from disk, 然后选择我们刚才创建的那个包目录中的package.json文件就行了。
2、我们把刚才创建的包上传到github上,然后选择Add Package from git URL,输入你github的url地址就自动的加载进来了。
3、就是打成UPM包,上传到UPM的仓库上去,我在这就不谈了,当我使用到这个方法的时候我在专门写一篇博客。
参考文献:
https://docs.unity3d.com/Manual/CustomPackages.html