引子:最近在看梦幻大陆的工程,发现他们的项目是分开的。主工程还引用了本地库,也不是在Package Manger中下载的。还有一个封装好的继承MonoBehaviour的静态库。静态库里面的代码用右键Edit,看不了代码。
如何添加一个本地的程序集引用
-
将本地DLL放置到Plugins文件夹:
- 把你的本地DLL文件放入Unity项目中的
Assets/Plugins
文件夹,如果是针对特定平台的DLL,应放入对应的子目录,如Assets/Plugins/Windows
、Assets/Plugins/Linux
、Assets/Plugins/x86_64
等。
- 把你的本地DLL文件放入Unity项目中的
-
确保兼容性:
- 确认你的DLL与Unity使用的.NET运行时环境兼容,如.NET 4.x、.NET Standard或.NET 5(根据Unity版本不同)。
如果不放置在Plugins文件夹,则工程会报错。
添加一个本地或私有仓库的包作为项目的依赖项
制作可被添加的仓库
创建自定义包
包可以包含以下内容:
- C# 脚本
- 程序集
- Native plug-ins
- 模型、纹理、动画和音频剪辑以及其他资源
- 包清单文件
创建包清单
在要依赖的本地仓库根目录下,新建一个package.json的json文件。编辑它以包含必要的元数据。以下是基本模板:
{
"name": "com.yourcompany.mypackage",
"version": "1.0.0",
"displayName": "My Local Package",
"description": "这是一个示例本地Unity Package,包含一些自定义脚本和资源。",
"unity": "2021.2",
"keywords": ["example", "utility"],
"dependencies": {}
}
程序集定义和包
添加CoreAssembly.asmdef文件,如果不添加.asmdef后缀文件,脚本是无法挂载的。
{
"name": "CoreAssembly",
"references": [],
"optionalUnityReferences": [],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": []
}
添加到Unity项目中。
打开unity项目
-
通过Unity Package Manager添加本地包:
- Window -> Package Manager -> Plus (+)按钮 -> Add Package from Disk...
- 浏览到您刚刚创建的包含
package.json
的文件夹位置,选择该文件以添加整个包。
导入成功后,可以看到前一步制作的json的信息。