#unreal-engine #integration #api

maikklein/unreal-api-derive

Rust对Unreal Engine 5的集成

1 个不稳定版本

0.1.0 2022年8月3日

#866 in 过程宏

2,056 星 & 44 关注者

MIT/Apache

10KB
223

🦀 unreal-rust

针对Unreal Engine的具有观点的Rust集成

Build Status LICENSE LICENSE Discord

☣️ 警告

unreal-rust尚未准备好在实际项目中使用。 unreal-rust处于非常早期的状态,目前仅是一个概念证明。API将频繁更改。可能会崩溃或无法按预期工作。用户体验不会很好。

我在GitHub上发布unreal-rust以公开开发。

🎯 特点

  • 简单的具有观点的绑定:轻松访问核心API,如播放声音、生成actor、路径查找、物理等。
  • 面向开发者:具有编辑器中的热重载和实时游戏中的快速迭代时间。捕获恐慌,不会崩溃编辑器
  • 编辑器集成:在编辑器中将Rust组件添加到actor,或从蓝图访问Rust组件以驱动动画。
  • 实体组件系统:unreal-rust建立在ECS之上。
  • 基于AActor构建:大多数游戏功能(如GameModeCharactersGameStateGAS)在unreal-rust中无法直接访问。相反,unreal-rust将提供可选的替代方案。但是,您仍然可以通过蓝图中的Rust组件与引擎的大部分功能交互。
  • 无需修改引擎:unreal-rust仅是一个Plugin,只需将其放入您的项目中。有关更多信息,请参阅支持的版本
  • 示例:unreal-rust的开发主要受到示例的驱动。
  • 免费:双许可MIT/APACHE

🖥️ 支持的平台

  • 🐧 Linux
  • 🪟 Windows

潜在的未来平台:iOS、macOS、Android、html5/browser(可能)

控制台不受支持。我无法提供控制台支持,因为这是一个封闭的生态系统。我自己也无法访问任何开发者工具。

💌 博客文章/媒体

🚩 已知问题

  • 这只是我在正常工作时间之外的一个爱好项目。我可能对问题、问题、功能请求或PR审查的响应速度较慢。

🦮 开始使用

运行示例

我知道这些步骤有很多。很抱歉,我将在将来简化这些步骤。

  • 先决条件
    • 获取 git lfs,并运行 git lfs install
    • ue4cli,您可以使用 pip3 install ue4cli 获取它。这一步是可选的,但我在本指南中将会使用 ue4cli

我们首先克隆这个仓库

git clone https://github.com/MaikKlein/unreal-rust

接下来克隆子模块。这将下载带有所有资源的实际示例。

cd unreal-rust
git submodule update --init

接下来,我们需要设置示例

    • Linux sh setup.sh
    • Windows setup.bat

这将创建 RustPlugin 到 Unreal example/RustExample/Plugin 文件夹的符号链接。

现在我们需要构建实际的Rust代码

只需运行

cargo build --release

这将构建整个项目。这还将生成我们要加载到Unreal中的dll文件。

将dll/so文件复制到项目中

  • Linux: cp target/release/libunreal_rust_example.so example/RustExample/Binaries/rustplugin.so
  • Windows: copy .\target\release\unreal_rust_example.dll .\example\RustExample\Binaries\rustplugin.dll

现在我们需要构建Unreal示例

cd example/RustExample
ue4 build Development Editor

现在您可以使用 ue4 run 运行示例

🚀 支持的版本

  • 5.0

此项目将始终尝试支持最新版本。

  • 最新版本的Unreal
  • 最新版本的Rust
  • 所有依赖项的最新版本

🤝 替代方案

🥰 感谢

依赖项

~2.5MB
~52K SLoC