当前位置: 首页 > news >正文

Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity

Unity 项目虽然可使用 C# 项目作为脚本,却并没有提供一种类似 NuGet 的第一方包管理器。不过,还是有第三方包管理器可以用,为 C# 脚本应用现有的库提供方便。


本文内容

    • NuGetForUnity
    • 安装 NuGetForUnity
    • 使用 NuGetForUnity
      • 安装 NuGet 包
      • 还原 NuGet 包
    • 还有没有其他包管理方案?

NuGetForUnity

第三方适用于 Unity 的 NuGet 包管理器推荐:

  • GlitchEnzo/NuGetForUnity: A NuGet Package Manager for Unity

去它的 Release 页面,可以下载到 NuGetForUnity.2.0.0.unitypackage 的 Unity 包文件。

安装 NuGetForUnity

NuGetForUnity 是按项目安装的,所以你需要先打开一个项目(否则双击安装只会进到项目选择界面)。

打开了一个 Unity 的项目后,双击下载下来的 NuGetForUnity.2.0.0.unitypackage 文件,你会看到包导入界面:

导入包

点击 Import 按钮即可将 NuGetForUnity 安装到你刚刚打开的项目中。

使用 NuGetForUnity

安装完 NuGetForUnity 后,你能在 Unity 编辑器的主菜单上面看到 NuGet 入口了。这很像是 Visual Studio 中自带的 NuGet 包管理器,不过这是适用于 Unity 的第三方 NuGet 包管理器。

NuGetForUnity 的界面

安装 NuGet 包

就从上面所述的菜单那里打开,你可以进入 NuGet 包的搜索与安装界面。输入并找到你想安装的 NuGet 包,然后点击 Install 即可。

搜索与安装 NuGet 包

还原 NuGet 包

正常情况下,你打开别人上传到版本管理中的仓库后,仅仅启动 Unity 编辑器就可以完成 NuGet 包的还原。因为 NuGetForUnity 是安装到项目当中的,Unity 编辑器启动的时候也会运行 NuGetForUnity,这时就会自动还原项目当中所安装过的 NuGet 包了。

还有没有其他包管理方案?

在微软的 <docs.microsoft.com> 文档中,描述 NuGet 包安装的方法是手工的,对于普通的没有依赖的 NuGet 包来说问题不大,不过如果 NuGet 包包含依赖的话,那手工处理的工作量就有点大了,尤其是依赖有嵌套,出现层层嵌套的依赖的时候,几乎可以不用考虑手工安装 NuGet 包的方式了。

关于手工安装 NuGet 包的方式,我在另一篇入门文档当中也有说到过:

  • Unity3D 入门:为 Unity 的 C# 项目添加 dll 引用或安装 NuGet 包 - walterlv

参考资料

  • GlitchEnzo/NuGetForUnity: A NuGet Package Manager for Unity

我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • Unity3D 入门:如何在脚本中找到游戏对象的父子级 祖孙级对象和它们的组件
  • Unity3D 入门:如何制作天空效果?天空盒的使用
  • Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件
  • Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本
  • 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式)
  • 了解 Windows Linux 下命令行 Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了
  • 适合 .NET 开发者用的 GitHub Actions(时不时更新)
  • 在 CMD 里根据进程名杀掉进程
  • 在 PowerShell 里根据进程名杀掉进程
  • 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting TargetFrameworks)
  • 专业团队:推荐一个网站,生成巨幅文字注释
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率
  • 使用 SetWindowCompositionAttribute 来控制程序的窗口边框和背景(可以做 Acrylic 亚克力效果、模糊效果、主题色效果等)
  • input 不能为空 js_我用JS刷LeetCode | Day 9 | Implement strStr()
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • AngularJS指令开发(1)——参数详解
  • CODING 缺陷管理功能正式开始公测
  • ECMAScript6(0):ES6简明参考手册
  • es6
  • es6要点
  • happypack两次报错的问题
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • Laravel Telescope:优雅的应用调试工具
  • Vim 折腾记
  • 规范化安全开发 KOA 手脚架
  • 使用parted解决大于2T的磁盘分区
  • 我这样减少了26.5M Java内存!
  • 小试R空间处理新库sf
  • 新书推荐|Windows黑客编程技术详解
  • Java总结 - String - 这篇请使劲喷我
  • #pragma预处理命令
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二)hibernate配置管理
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)3D模板阴影原理
  • .net 程序发生了一个不可捕获的异常
  • .NET 分布式技术比较
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .netcore如何运行环境安装到Linux服务器
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • [BZOJ 3680]吊打XXX(模拟退火)
  • [c]统计数字