7 个版本

0.1.6 2023 年 8 月 27 日
0.1.5 2023 年 8 月 27 日

#1770过程宏


3 个包(2 个直接) 中使用

MIT 许可证

16KB
419 代码行

Crates.io

Unrust - Rust + Bevy + Unity 打造游戏!

Peek 2023-08-27 18-20

您想使用 Rust + Bevy 打造游戏。但是缺少一个与之匹配的好的编辑器吗?

这是一个零级尝试使用 Unity 作为编辑器。您使用 unity 设置场景和预制体。

然后所有其他的事情都在您的 rust 代码库中完成。GG EZ。

(目前只支持 Unity 2022,LINUX 和 windows 及 mac 即将支持)

还需要 entities + entities graphics packages。将 unity 实体映射到 bevy 实体。目前不支持游戏对象。

这是一个非常非常实验性的项目。还需要添加更多组件同步和改进的开发工具。

我将很快添加文档,但如果您不介意深入研究一些未记录的 rust + c# 代码,欢迎您贡献!

文档

待办事项!

安装

从左侧的发行版下载 tarball,并将其放入 Unity 项目中。它将在 Asset 文件夹旁边创建一个名为 game 的文件夹,其中包含一个基本项目。在 Unity 项目菜单中,点击 unrust -> 编译,然后按播放。

需要 rust nightly(为了正确放置输出库路径和进行代码生成)

用法/示例

types.rs 文件中定义一个新的结构体,并使用 unity_authoring 属性,它会在 unity Assets/unrust 文件夹中生成相应的 Authoring 组件。然后您可以将它附加到一个实体上,以便在播放时在 bevy 世界中创建它。

#[unity_authoring]
pub struct SampleComponent {
    pub val: f32,
}
using System.Runtime.InteropServices;
using Unity.Entities;
using UnityEngine;

namespace unrust.userland
{
    [StructLayout(LayoutKind.Sequential)]
    public struct SampleComponent : IComponentData
    {
        public float speed;
    }

    public class SampleComponentAuthoring : MonoBehaviour
    {
        public float speed;

        class Baker : Baker<SampleComponentAuthoring>
        {
            public override void Bake(SampleComponentAuthoring authoring)
            {
                var entity = GetEntity(TransformUsageFlags.Dynamic);
                AddComponent(entity, new SampleComponent
                    {
                        speed = authoring.speed,
                    });
            }
        }
    }
}

待办事项

  • 添加更多平台支持

  • 添加更多内置类型。(目前只同步了变换和父级)

  • 处理输入

  • 处理相机/其他非 ecs 游戏对象。

  • Wasm?!

许可证

MIT

依赖

~310–770KB
~18K SLoC