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

我给待解决的一些问题简单个人主观的评了一些星级,欢迎来挑战。

 

posted @ 2024-03-09 22:35  bodong  阅读(1580)  评论(2编辑  收藏  举报