7个版本
0.1.6 | 2023年8月27日 |
---|---|
0.1.5 | 2023年8月27日 |
#1058 in 游戏开发
每月30次下载
在unrust中使用
28KB
662 行
Unrust - 使用Rust + Bevy + Unity制作游戏!
你想使用Rust + Bevy来制作你的游戏。但是缺少一个好的编辑器吗?
嗯,这是一个使用Unity作为编辑器的零级尝试。你使用Unity设置场景和预制体。
然后其余的一切都在你的Rust代码库中完成。GG EZ。
(目前只在Unity 2022上工作,Linux、Windows和mac很快也会支持)
还需要entities + entities graphics packages。将Unity实体映射到Bevy实体。目前不支持gameobjects。
这是一个非常非常实验性的东西。需要做大量工作以添加更多组件同步和改进的开发体验。
我很快会添加文档,但如果你不介意探索一些未记录的Rust + C#代码,欢迎你贡献!
文档
待办事项!
安装
从左侧的发行版下载tar包,并将其放入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?!
许可证
依赖项
~33–67MB
~1M SLoC