首页 > 编程语言 >UnrealSharp: 一个可以让你在UnrealEngine5中采用C# 12和.NET 8.0开发的插件

UnrealSharp: 一个可以让你在UnrealEngine5中采用C# 12和.NET 8.0开发的插件

时间:2024-03-09 22:44:53浏览次数:15  
标签:8.0 插件 12 C# UnrealSharp C++ Unreal 支持 NET

写着玩的,就当学习Unreal练手的玩意儿了。

主要特性:

  • 支持.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# 事件
  • 支持为Unreal C++或Unreal Blueprint自动生成相应的C#绑定代码[可选]。只要是Unreal的类、结构体、枚举、函数等可以在蓝图中访问的,几乎都可以在C#中访问。
  • 支持通过Visual Studio或Rider调试C#代码,支持C++和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

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

 

标签:8.0,插件,12,C#,UnrealSharp,C++,Unreal,支持,NET
From: https://www.cnblogs.com/bodong/p/18063520

相关文章

  • 程序是怎么跑起来的第12章
    读《程序是怎么跑起来的》第十二章有感在计算机中,有硬件和软件之分。在学习,我知道主要的硬件有CPU、控制器、运算器、输入设备和输出设备等,在这里,讲到了输入指令和输出指令,它们的英文名为INPUT和OUTPUT,但是计算机可以连接很多外围设备,我们应该了解它们是怎样工作的。首先,我们先看......
  • CF1264D2 Beautiful Bracket Sequence (hard version) 题解
    括号深度的本质,其实就是删除若干个字符以后使得左边一半全是(,右边一半全是),最终(的个数的最大值。那么就一定存在一个位置使得在这个位置以及之前的字符中(的个数等于这个字符后)的个数。考虑枚举这个位置,记它左边的(的个数为\(a\)、?的个数为\(x\),右边的)的个数......
  • AWR1243+DCA1000——硬件触发(Hardware Trigger)
    1引言对于二维滑轨的雷达扫描系统来说,当滑轨系统运动运动速度较慢时,可以忽略其启动和停止时的加速度,而假定导轨在整个导程中是匀速运行的,这时设定雷达信号的帧发射周期即可实现在整个二维扫描平面的均匀采样,此时雷达板发射雷达信号是软件触发的。但值得注意的是,这仍然是一个开......
  • 一本通 1270 混合背包 题解
    是在hydro上做的,墙裂推荐hydro的一本通题库!链接是:https://hydro.ac/d/ybttk/p/T1270。分析一下,可以分类讨论,处理的时候,零一背包(\(p_i=1\))一个,完全背包(\(p_i=0\))一个,多重背包(\(p_i>1\))一个,状态转移方程不用列的,直接去抄模板就可以啦~代码是这样的捏:#include<bits/st......
  • 面向工业和物联网应用,SDINBDA6-32G-I1、SDINBDA6-64G-I1、SDINBDA6-256G-I1、SDINBDA6
    WesternDigital推出了面向工业和物联网应用的嵌入式eMMC存储设备,它就是iNANDIXEM132驱动器。其基于该公司的64层BiCS33DTLCNAND闪存打造,读速高达310MB/s,辅以专为嵌入式、商业、工业等用途而设计的各项功能,提升了整体的可靠性和耐用性。iNANDIXEM132嵌入式闪......
  • Living-Dream 系列笔记 第12期
    本期主要讲解一维前缀和技巧。知识点我们令\(a_i\)表示原数组的第\(i\)个元素,则\(sum_i\)表示\(a_i\)前\(i\)个元素之和,即:\[sum_i=\sum^{i}_{j=1}a_j\]我们知道,\(a\)数组前\(i\)个元素的和\(=\)前\(i-1\)个元素的和\(+a_i\)。于是便可得到\(sum\)数组的......
  • Java蓝桥杯题目——1264排个序
    题目 思路:1、输入数据2、用冒泡排序将数组(下标为pj的)部分升序,3、判断是否有前一个元素大于后一个元素(降序),有则返回false注意:(1)数组p元素的取值不能大于数组a的长度,因为p元素是a的下标(2)数组下标越界问题,使用i<a.length判断(3)并非所有元素都要降序才返回false,只要有前一个元......
  • CF1218A
    虚高*2800。放模拟赛T2人均切了。先想树的情况怎么做。枚举每个起点,剩下的贡献就是定值。求这个值可以钦定\(1\)为根求出所有的\(siz\),然后枚举\(i\)为起点,以\(i\)为起点的答案就是\(\sumsiz_i\)加上\(i\)到\(1\)路径上,不含\(1\)的所有点的\(\sum_jn-2\time......
  • arc127A 分巧克力
    题面:有一块大小为H*W的巧克力,要分给n个人,第i个人要分边长为2^a[i]的正方形,问是否够分?范围:H,W<=1E9;n<=1000;a[i]<=25思路:贪心,关键是先处理大请求,并且要用大块来处理大请求。将请求按从大到小依次处理,优先处理大请求,如果处理不了,则无解。用大根堆维护剩余的巧克力大小,按短边......
  • MYSQL学习笔记12: DCL数据控制语言(用户操作)
    DCL数据控制语言查询用户#用户信息保存在数据库mysql的user表中usemysql;select*fromuser;创建用户createuser'用户名'@'主机名'identifiedby'密码';在主机localhost创建一个新用户createuser'hikari39'@'localhost'identifiedby'123456......