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

【Unity+VSCode】NuGet包导入

之前写过一篇用vs手动导入的https://blog.csdn.net/m0_73117967/article/details/132510315?spm=1001.2014.3001.5501

但是最近博主换vscode了,vscode本身没有nuget包管理器,而且也不是每一个nuget包导进来都找得到lib文件夹,折腾了一下发现还是别人的插件好用哈,直接git导插件就行了

https://github.com/GlitchEnzo/NuGetForUnity#


再补点概念 

nuget包: 可以理解成针对.NET/C#的工具类库,写程序时,经常需要别人写好的库。这些库就会打包成一个 NuGet 包,里面包含了代码、依赖信息和版本号。

.NET: 总概念 / 平台规范,提供了一套运行环境和工具库,C# 代码需要在 .NET 的环境里运行,.NET 会帮你编译、执行、管理内存、处理跨平台兼容.

.NET框架: .NET 在 Windows 上的一个具体实现

例子对比

  • .NET = 汽车设计图 + 制造规范

  • .NET 框架 = 只在美国市场生产的某款车型

  • .NET Core/Mono/IL2CPP = 其他国家或平台的改装版本

.NET框架构建流程

[C# 源码]│ (编译器 Roslyn)▼
[IL (中间语言) + 元数据]   ← DLL/EXE│ (CLR JIT 编译)▼
[机器码] → CPU 执行
  • 编译器只负责把源码变成 IL。

  • CLR(Common Language Runtime) 在运行时(Just-In-Time, JIT)把 IL 转成机器码并执行。

unity为了跨平台,并没有用CLR,只是使用了.net的语法和工具库

IL2CPP 构建模式

[C# 源码]│ (编译器 Roslyn)▼
[IL (中间语言)]│ (IL2CPP 转换)▼
[C++ 源码]│ (平台原生 C++ 编译器, 如 clang/msvc)▼
[机器码] → CPU 执行
  • Unity 不依赖 CLR 的 JIT。

  • 它把 IL 提前(AOT,Ahead-Of-Time)转成 C++,再编译成机器码。

  • 好处是更快、更安全、跨平台更强。

NuGet 包里一般就是一些 C# 源码编译后的 DLL(IL 中间语言),因此,有概率出现一些用了反射动态类型的依赖JIT动态编译的nuget包无法在IL2CPP构建下运行,这时候可以换Mono构建

Mono构建模式

[C# 源码]│ (C# 编译器 Roslyn)▼
[IL (中间语言) + 元数据]   ← DLL/Assembly│ (Mono 运行时)▼
[JIT 编译器(Just-In-Time)]▼
[机器码] → CPU 执行
  • Unity 编辑器play时使用 Mono 运行时(Mono CLR) 来执行 C# 脚本

  • 完整支持反射和动态生成代码

  • IL2CPP 只在 正式构建(Build)发布版本 时使用

总结

C# 源码 → 编译器 → IL(中间语言) → CLR(JIT/AOT) → 机器码 → CPU

其实就是IL编译成机器码时的方法不一样,导致了一些坑

http://www.dtcms.com/a/394306.html

相关文章:

  • QEMU虚拟机设置网卡模式为桥接,用xshell远程连接
  • Week 17: 深度学习补遗:Boosting和量子逻辑门
  • 【论文速递】2025年第13周(Mar-23-29)(Robotics/Embodied AI/LLM)
  • Webpack进阶配置
  • 【LeetCode 每日一题】3227. 字符串元音游戏
  • 【图像算法 - 26】使用 YOLOv12 实现路面坑洞智能识别:构建更安全的智慧交通系统
  • 009 Rust函数
  • IT疑难杂症诊疗室
  • 视频播放器下载推荐,PotPlayer‌,KMPlayer,MPC-HC,GOM Player‌VLC media player,MPV,
  • Day04 分治 递归 | 50. Pow(x, n)、22. 括号生成
  • (博主大回归)洛谷题目:P1986 元旦晚会 题解 (本题简)
  • Windows Docker 环境下 VLLM 大模型存储最优解:Docker-Desktop 实例目录与多容器协同挂载方案
  • Elasticsearch面试精讲 Day 20:集群监控与性能评估
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘pydantic’ 问题
  • 设置永不待机 系统语言
  • PWA(渐进式Web应用)
  • gdb文档_第二章
  • 基础IO
  • Linux开发工具
  • DIDCTF-2023陇剑杯
  • 软件设计师软考备战:第四篇 计算机网络技术
  • 基于 GEE 利用 Sentinel-1 SAR 数据计算标准化双极化水体指数(SDWI)实现水体智能识别
  • 120-armv8_a_power_management:高级架构电源管理指南
  • 【MySQL初阶】02-库的操作
  • Kafka面试精讲 Day 20:集群监控与性能评估
  • 【C语言】数字模式求和算法的巧妙实现:深入解析循环与累加的艺术
  • 关系型数据库对比
  • 手机可视化方案(针对浓度识别)
  • LLM在应用计量经济学和因果推断中作用的思考
  • Redis 事务机制详解:从原理到实战