提示:文章有错误的地方,还望诸位大神不吝指教!
文章目录
前言
主要是遇到 unity报错:current selected scripting backend (IL2CPP) is not installed

顺便就多了解一点:
Unity 是一款广泛使用的游戏开发引擎,而 IL2CPP(Intermediate Language To C++)和 Mono 则是 Unity 中用于脚本编译和运行的两种不同技术。
Mono 是 Unity 早期默认使用的脚本运行时。它是一个开源的.NET 实现,允许开发者使用 C# 等语言编写脚本。Mono 的优点是相对成熟和易于使用,对于小型和简单的项目来说,它的性能通常能够满足需求。
IL2CPP 则是后来引入的一种技术。它将.NET 的中间语言(IL)转换为 C++代码,然后再进行编译。IL2CPP 的主要优势包括更好的性能,尤其是在移动平台上;增强的安全性,因为 C++代码更难被反编译;以及对一些平台和架构的更好支持。
然而,IL2CPP 也有一些挑战,例如编译时间可能较长,并且在处理某些复杂的.NET 特性时可能会有一些限制。
总的来说,选择使用 IL2CPP 还是 Mono 取决于项目的具体需求和特点。对于性能要求较高、需要更好的安全性或者目标平台有限制的项目,IL2CPP 可能是更好的选择;而对于一些简单的项目或者对开发效率有较高要求的情况,Mono 可能更合适。
一、IL2CPP是什么?
Unity的IL2CPP(Intermediate Language to C++)是一个编译技术,它将C#代码转换为C++代码,然后再编译成平台相关的二进制代码。IL2CPP提供了几个优点,特别是在性能和跨平台部署方面。以下是IL2CPP的一些主要优点:
1.性能提升:IL2CPP通常能提供比传统的Mono运行时更好的性能,因为它可以利用本地编译器的优化。
2.跨平台支持:由于IL2CPP生成的是C++代码,这使得它更容易被跨平台的编译器支持,因此你可以将游戏编译到多个平台,包括iOS、Android、Windows、Mac、Linux和游戏主机。
3.安全性增强:IL2CPP提供了比Mono更高级别的安全性,因为它不需要运行一个易于逆向工程的中间语言虚拟机。C++代码更难被反编译,这使得逆向工程变得更加困难。
4.完全AOT编译(Ahead-of-Time):IL2CPP完全支持AOT编译,这意味着所有的代码都在部署之前编译好了,有利于实现更快的启动时间和更稳定的运行时性能,这在iOS等不允许JIT编译的平台上尤其重要。
5.内存管理改进:IL2CPP使用了更现代的垃圾回收技术,可以更高效地管理内存,减少内存泄露和碎片化问题。
6.64位支持:IL2CPP支持64位计算,这是许多现代设备和操作系统的要求。
7.与现代C++编译器的兼容性:由于生成的是C++代码,IL2CPP可以利用现代C++编译器(如Clang和GCC)进行进一步的优化。
8.可预测的性能:由于所有的代码都在编译时就已经确定了,运行时的性能比JIT(Just-In-Time)编译更加可预测,因为它不会在用户使用应用程序时进行编译。
9.通用基础设施:IL2CPP为Unity带来了一个通用的代码基础设施,用于支持不断增长的平台数量,简化了Unity的维护和新平台支持的工作。
10.现代语言特性支持:IL2CPP更好地支持C#的新特性,因为它能够使用新的C#编译器,而旧的Mono运行时可能不支持这些新特性。
尽管IL2CPP提供了许多优点,但它也有其限制,比如编译时间往往比Mono更长,且生成的二进制文件大小可能会更大。然而,对于寻求性能和兼容性的开发者来说,IL2CPP提供了一个强有力的解决方案。
二、解决:报错 current selected scripting backend (IL2CPP) is not installed
方法一
选择Mono即可

方法二
打开UnityHub ,选择添加模块,勾选IL2CPP并安装 即可


总结
好记性不如烂笔头
431

被折叠的 条评论
为什么被折叠?



