UE5 尝试接入 C# 脚本方案

最近团结替代 Unity6 的事官宣了,只能唏嘘不已,顺带的也就研究了一下在 UE5 中接入 C# 的方案,也算是提前帮广大 Unity 开发者蹚一下转 UE 的路~

当前我发现的,维护比较勤快的 UE C# 方案有2个,UnrealCSharp 和 UnrealSharp ,你没看错,它2就差个C,带C是国人写的,不带的好像是老外写的。

Git 仓库

https://github.com/crazytuzi/UnrealCSharp

https://github.com/UnrealSharp/UnrealSharp

不带C的这个一直没出 Releases 包,也有 bug,导致我没接入成功,但看着潜力挺高的。

所以今天我们先说说带 C 的怎么接入,讲真的其实比 Puerts 要简单,但是在真正的开发过程中有什么样的坑,还暂时不好说。

1,首先还是创建一个 C++ 项目

2,在项目中创建 Plugins 目录,下载3个包

首先是最新的 v0.7.0 的插件包

https://github.com/crazytuzi/Mono

下载作者提供的 Mono,这里我下的最新版本的。

https://github.com/crazytuzi/SourceCodeGenerator

然后下载 C++ 代码生成器,这里就有说法了,分支上的版本号,对应的 UE 版本,可不是它自己的版本号,因为我用的 5.4,所以我下载 5.3,发现也能用。

在 Plugins 下把插件包改名为 UnrealCSharp。

用我们下载的包填充 SourceCodeGenerator 目录

用我们下载的包填充 Mono 目录

重新生成 .sln 文件

打开它,重新编译项目。

进去以后先点1次 Generator Code 。

在创建的 Script 目录下,创建的就是 C# 的类库工程了。

新建一个蓝图并打开。

点击 Override Blueprint 按钮产生 C# 类。

打开项目,打印一条日志,并编译类库,UE 编辑器不用关闭,插件会自动热重载新的 dll 上来

cs 复制代码
UKismetSystemLibrary.PrintString(this, "HelloWorld TestBP_C");

运行游戏,发现我们覆盖的 C++ 方法生效了。

后续尝试时看文档说,5.5 开始就不能支持直接覆盖 C++ 的方法了,倒是不影响我们的使用,我们可以先创建 C++,再通过 C++ 创建蓝图,再覆盖蓝图方法的方式来实现同样的效果。

但感觉中间有蓝图中转这一步,性能可能会被打折扣。

相关推荐
csdn_aspnet8 小时前
C# 检查某个点是否存在于圆扇区内(Check whether a point exists in circle sector or not)
算法·c#
时光追逐者9 小时前
一款基于 .NET 开源的多功能的 B 站视频下载工具
c#·.net·音视频
大飞pkz9 小时前
【Unity】使用XLua实现C#访问Lua文件
unity·c#·lua·c#访问lua
o0向阳而生0o10 小时前
36、C#中的⽅法声明参数关键字params,ref,out的意义及⽤法
开发语言·c#·.net
钢铁男儿10 小时前
C# 方法(局部函数和参数)
java·数据库·c#
冰茶_13 小时前
WPF之ProgressBar控件详解
学习·microsoft·微软·c#·wpf·控件演示·示例程序
笑鸿的学习笔记14 小时前
虚幻引擎5-Unreal Engine笔记之显卡环境设置使开发流畅
笔记·ue5·虚幻
步、步、为营15 小时前
C# 14 field keyword:属性简化新利器
数据库·c#
北冥没有鱼啊17 小时前
UE 像素和线框盒子 材质
c++·ue5·游戏开发·虚幻·材质
码观天工17 小时前
.NET 原生驾驭 AI 新基建实战系列(六):Pinecone ── 托管向量数据库的向量数据库的云原生先锋
ai·c#·.net·pinecone·向量数据库