ITADN
MaikKlein/unreal-rust
MaikKlein/unreal-rust · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

🦀 unreal-rust

对 Unreal Engine 的有主见的 Rust 集成

Build Status LICENSE LICENSE Discord

☣️ 警告

unreal-rust 尚未准备好用于实际项目。unreal-rust 目前处于非常早期的阶段,充其量只是一个概念验证。API 将会频繁变动。可能会出现崩溃,或者无法按预期工作。用户体验不会很好。

我在 github 上发布 unreal-rust 是为了公开开发它。

🎯 特性

  • 简单且带有主见的绑定:轻松访问核心 API,例如播放声音、生成 Actor、寻路、物理等。
  • 对开发者友好:在编辑器和实时游戏中通过热重载实现快速迭代。Panic 会被捕获,不会导致编辑器崩溃
  • 编辑器集成:在编辑器中为 Actor 添加 Rust 组件,或从 Blueprint 访问 Rust 组件以驱动动画。
  • 实体组件系统:unreal-rust 构建在 ECS 之上。
  • 基于 AActor 构建:大多数游戏功能,如 GameModeCharactersGameStateGAS,在 unreal-rust 中无法直接访问。相反,unreal-rust 将提供可选的替代方案。但你仍然可以与引擎的大部分部分交互,因为 Rust 组件可以在 Blueprint 中访问。
  • 无需修改引擎:unreal-rust 只是一个 Plugin,只需将其放入你的项目中即可。有关更多信息,请参阅 Supported versions
  • 示例:unreal-rust 的开发在很大程度上由示例驱动。
  • 免费:双重许可,遵循 MIT/APACHE

🖥️ 支持的平台

  • 🐧 Linux
  • 🪟 Windows

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

控制台不受支持。我根本无法提供控制台支持,因为它是一个封闭的生态系统。我自己也没有任何开发者套件的访问权限。

💌 博客文章 / 媒体

🚩 已知问题

  • 这只是一个我在正常工作时间之外进行的业余项目。我可能回复 issue、问题、功能请求或 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 最新版本
  • 所有依赖项的最新版本

🤝 替代方案

🥰 致谢