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

Nuget For Unity插件介绍

NuGet for Unity:提升 Unity 开发效率的利器

        NuGet 是 .NET 开发生态中不可或缺的包管理工具,你可以将其理解为Unity的Assets Store或者UPM,里面有很多库可以帮助我们提高开发效率。当你想使用一个库,恰好这个库没什么依赖(比如newtonjson),那么下载包并找到Dll直接放到Plugins下就可以使用了,但如果你想使用的这个库有很多依赖(如Epplus),并且依赖还有依赖,这个时候你就麻了,这可咋整?这时候 NuGet for Unity,一个能让 Unity 项目轻松引入和管理第三方库的插件便闪亮登场了!!!

        在本文中,我将从 是什么为什么需要它 和 如何使用 这三个方面,带你快速了解和上手 NuGet for Unity。


1. 什么是 NuGet?

NuGet 是 .NET 开发中的包管理工具,类似于 Unity 中的 Package Manager,但适用于整个 .NET 生态。通过 NuGet,开发者可以轻松获取第三方库及其依赖,而无需手动下载和管理 DLL 文件。但这是对于.net环境而言的,Unity没办法直接集成.


2. 什么是 NuGet for Unity?

NuGet for Unity 是一个开源的 Unity 插件,允许开发者在 Unity 项目中使用 NuGet 包。它能够帮助开发者:

  • 快速引入 .NET 第三方库,例如 JSON.NET、NPOI 等。
  • 自动管理包的依赖和版本,无需手动下载和配置 DLL 文件。
  • 与 Unity 项目无缝集成,简化了外部库的使用流程。

换句话说,它是 Unity 世界中的一个“桥梁”,连接了 .NET 的 NuGet 生态。


3. 为什么需要 NuGet for Unity?

在 Unity 项目中管理外部依赖是一项繁琐且容易出错的工作。传统方式需要你:

  1. 手动下载第三方库的 DLL 文件。
  2. 确保所有依赖项都完整且版本一致。
  3. 在 Unity 中手动导入并配置。

这不仅耗时,而且随着项目规模的扩大,管理起来会越来越复杂。

而通过 NuGet for Unity,开发者可以轻松实现:

  • 自动化依赖管理:它会根据配置文件自动下载并安装所有依赖。
  • 节省时间:只需简单操作即可引入复杂的第三方库。
  • 保持版本一致:团队协作时,只需提交依赖配置文件,同事的环境会自动同步。

适用场景

  • 引入常见的 .NET 库,如 JSON 解析器、日志工具等。
  • 使用复杂的第三方库(如 Excel 读写库 Epplus),避免处理繁琐的依赖。
  • 在多人协作中确保所有成员使用相同的库版本。


4. 如何使用 NuGet for Unity?

接下来,我们将通过实际操作,快速上手 NuGet for Unity。

4.1 安装 NuGet for Unity

GitHub - GlitchEnzo/NuGetForUnity: A NuGet Package Manager for Unity

导入项目即可


4.2 基本使用方法

注意这里展示的是Nuget官网服务器中的包,也就是说插件默认使用官网服务中的数据源.在偏好中可以修改数据源,在偏好界面的Package Sources中添加你的私有服务器地址.

在Online界面,需要什么包就搜什么包,比如我想使用Epplus.

第一个就是我需要的,点击Install,版本是7.5.0.

然后就下载下来了:

        默认是放在Packages下,为什么有这么多包被下载下来?其实这些包可以分成两类:显示包和隐式包.我刚才下载的Epplus就是我需要的,即为显示包,但是这个包依赖其他包,这些其他包就是隐式包.注意:最下面两个文件:Nuget和packages不要删除,这是两个配置文件.

Nuget是你对本插件的配置.

打开Preference,

我们可以在这里操作本插件的一些基本配置.

packages是你下载的包的配置.

        目前感觉有点丑陋,首先在Assets中有了很多包,这导致我们的Assets有些乱,并且git还要配置对该目录的忽略项.所以我们这样

将Placement配置为:InPackages Folder.

这样就跑到了Packages下,一下子就清爽多了,但是目前还有一个问题,git应该忽略该目录.

git没必要管理这些,只需要管理packages配置文件就好了.所以

加上

/[Pp]ackages/nuget-packages/InstalledPackages
/[Pp]ackages/nuget-packages/InstalledPackages.meta

忽略就好了.

理论上别人拉取的时候会自动下载这些包

但是如果没有拿到

使用Restore Packages强制加载.或者你不小心误删了,也可以使用该选项重新根据配置加载包.

其实此操作是将其作为了一个嵌入包

选择第三个选项可以查看依赖树:即你的显式包依赖那些隐式包.

安装界面下可以查看你已经安装的包,同时可以点击卸载.


5. 注意事项

虽然 NuGet for Unity 提供了很多便利,但在使用时仍需注意以下几点:

  • Unity 的运行时限制

    • Unity 使用的是 Mono 运行时,与标准 .NET 运行时有一些差异。
    • 某些依赖包可能无法直接使用,需要手动调整。
  • 依赖冲突

    • 如果多个 NuGet 包依赖于不同版本的同一库,可能会导致冲突。
    • 可以在 Unity 的 Player Settings → Other Settings 中禁用 Assembly Version Validation 来绕过此问题

        最后还有一些高级内容不做说明:比如创建自己的包服务器,创建自己的包等,感兴趣在官网自行查看详细信息.

END


http://www.kler.cn/a/398766.html

相关文章:

  • 如何使用 XML Schema
  • 微服务即时通讯系统的实现(客户端)----(3)
  • gitlab和jenkins连接
  • 从零开始学习 sg200x 多核开发之 eth0 MAC 地址修改
  • 鸿蒙中如何实现图片拉伸效果
  • w039基于Web足球青训俱乐部管理后台系统开发
  • Hadoop的汽车销量数据分析系统
  • Linux 实现TCP并发服务器
  • 大模型呼叫中心,如何建设呼入机器人系统?
  • Ceph后端两种存储引擎介绍
  • FreeRTOS学习13——任务相关API函数
  • 《Django 5 By Example》阅读笔记:p76-p104
  • 20.useMediaQuery
  • HTTP 请求方式
  • 从零入门激光SLAM(二十三)——direct_visual_lidar_calibration全型号激光雷达-相机标定包
  • 永磁同步电机负载估计算法--直接计算法
  • 【C#】C#编程基础:探索控制台应用与数据操作
  • 网络安全技术概论知识点
  • Go语言的创始人, 核心特性和学习资源
  • 【设计模式】结合Tomcat源码,分析外观模式/门面模式的特性和应用场景
  • AI大模型如何重塑软件开发流程:智能化与自动化的新时代
  • git相关知识
  • 在Chrome DevTools中,怎样查看调用堆栈?
  • Django 搭建数据管理web——商品管理
  • Oracle手工创建数据库和多环境变量下如何连接指定的数据库
  • YouQu使用手册【元素定位】