UnrealSharp: 一个可以让你在UnrealEngine5中采用C# 12和.NET 8.0开发的插件
写着玩的,就当学习Unreal练手的玩意儿了。
主要特性:
- 支持Unreal在非播放状态下的C#热重载
- 支持.NET 6.0~.NET 8.0[默认为.NET 8.0],支持C#12
- 支持在 C# 中创建新的 Unreal 类、Unreal 结构、Unreal 枚举等
- 支持为 C# 类创建新的 Unreal 属性、Unreal 函数和 Unreal 多播委托。
- 支持C#类继承Unreal C++类,这意味着您可以在C#中实现自己的UObject、UActorComponent和AActor子类
- 支持在 C# 类中重写 C++ 事件函数
- 支持从虚幻蓝图访问所有 C# 类、结构、枚举、方法、委托等
- 支持虚幻蓝图类继承 C# 类并覆盖蓝图中的 C# 事件
- 支持通过Visual Studio或Rider调试C#代码,支持C++和C#同时调试
- 当你编写的C#代码不符合Unreal Sharp的规范时,你会在编译阶段得到编译错误。同时UnrealSharp会告诉你错误代码的错误类型、代码文件和行号。双击可以直接跳转。这与正常的 C# 编译错误没有什么不同。
- 支持为Unreal C++或Unreal Blueprint自动生成相应的C#绑定代码[可选]。只要是Unreal的类、结构体、枚举、函数等可以在蓝图中访问的,几乎都可以在C#中访问。
- 大多数 C++ API 都会自动生成为基于 C# 函数指针的版本,以提高调用速度。
- 这个基于C#函数指针的交互式函数框架是公开的。如有必要,您可以向框架注册新的 C++ API。
- 自动调整 Unreal 和 C# 内存管理和对象生命周期,因此您几乎不需要自己处理任何事情。
- C#绑定代码的风格与Unreal C++保持一致,调用这些C++接口和在C++中几乎没有区别。
- AOT友好,从最初的设计就考虑到了对AOT的支持。
- 纯插件设计,无需修改任何引擎源码
- 除了框架预留的三个特殊项目外,您还可以添加任意数量的C#项目,并且它还支持在这些项目中实现相应的Unreal类型。
代码丢Github了,有兴趣的可以去拉下来耍耍:https://github.com/bodong1987/UnrealSharp
主页说明中有集成手册、使用教程和注意事项,还有一系列的上手视频。
另外也有一些遗留问题和挑战,有兴趣的朋友不妨去看看:
https://github.com/bodong1987/UnrealSharp/blob/main/Docs/TodoList.md
我给待解决的一些问题简单个人主观的评了一些星级,欢迎来挑战。