文件大小:22.5 MB
版本:2.3.0
原始Unity 版本:6000.0.43
Roslyn C# 是一个功能齐全的编译器和运行时 API,用于编译、加载和执行外部 C# 源代码和托管程序集 (.dll),并将其集成到您的游戏中。该资源旨在通过提供简单而强大的 API 来简化代码的编译和加载过程,这些 API 可以从源字符串、文件、语法树、C# 项目和文件夹进行编译。此外,所有编译 API 都提供了异步版本,以便您的游戏可以在后台编译的同时继续运行。
代码安全
加载外部代码(例如在进行游戏修改时)的主要问题之一是,如果代码来自不可信的来源,则可能存在潜在危害。Roslyn C# 的代码安全功能可以有效解决这个问题。
所有通过 Roslyn C# 加载的代码都会经过我们专有的代码安全系统,该系统会对 IL 字节码进行静态分析,以查找潜在的有害功能。通过创建自定义代码验证规则,您可以检测并阻止加载包含非法程序集、命名空间、类型引用或使用不安全上下文或平台调用的程序集。系统会报告所有被判定为非法的引用,并输出详细报告,以帮助用户修复可能出现的安全问题。
执行安全
该资产2.0版本新增功能!
运行外部或用户输入的源代码的另一个问题是,游戏无法控制此类代码的执行,这意味着如果恶意或误写出无限循环,代码可能会导致主机游戏崩溃。通常的解决方案是在后台线程中运行用户代码,但如果用户代码需要访问 Unity API(只能在主线程中访问),则这种方法会失效。
在 2.0 版本中,我们通过在编译后的代码中注入运行时安全检查来解决此问题。如果循环执行的时间或迭代次数达到 X 次,则会抛出异常。这意味着即使游戏进入无限循环,也能优雅地恢复,只会短暂卡顿几秒钟,然后继续运行,而不会导致应用程序崩溃。
特征
- 在运行时编译和加载 C# 脚本
- 使用最新的 C# 语言特性
- 快速执行——编译完成后,外部代码的运行速度将与游戏代码一样快。
- 简单易用的 API,用于程序集、类型和实例反射
- 支持使用脚本代理进行非实体通信
- 使用正确的方法(AddComponent、CreateInstance、new)自动构建类型
- 代码安全验证是指能够识别并丢弃不安全的代码。
- 代码安全机制会在发生故障时生成一份详细报告,其中包含有关非法类型及其在外部代码中每次使用情况的信息。
- 执行安全性确保已加载的代码不会因长时间或无限循环而导致主机游戏崩溃。
- 包含完整的带注释的 C# 源代码
- 提供全面的 API 文档,方便快速查阅。


评论(0)