0

我正在尝试将此 ron 文件部分重写为 rust 代码:

 data: (
    graphics: (
        mesh: Shape((shape: Sphere(32, 32))),
            material: (
                albedo: Generate(Srgba(0.0, 0.0, 1.0, 1.0)),
        ),
    ),
    transform: (),
)

这是 amethyst git repo ( https://github.com/amethyst/amethyst/blob/v0.15.3/examples/sphere/assets/prefab/sphere.ron ) 中的一个示例文件我写了这个 rust 函数:

fn initialize_sphere(world: &mut World) {
    let mesh = world.exec(|loader: AssetLoaderSystemData<'_, Mesh>| {
        loader.load_from_data(
            Shape::Sphere(32, 32)
                .generate::<(Vec<Position>, Vec<Normal>, Vec<Tangent>, Vec<TexCoord>)>(None)
                .into(),
            (),
        )
    });

    let material_defaults = world.read_resource::<MaterialDefaults>().0.clone();
    let material = world.exec(|(material_loader, texture_loader): (AssetLoaderSystemData<'_, Material>, AssetLoaderSystemData<'_, Texture>)| {
        let albedo = texture_loader.load_from_data(
            load_from_srgba(Srgba::new(0.0, 0.0, 1.0, 1.0)).into(),
            (),
        );
        material_loader.load_from_data(
            Material {
                albedo,
                ..material_defaults
            },
            (),
        )
    });

    world.create_entity()
        .with(mesh)
        .with(material)
        .build();
}

但是当我从on_start回调中调用它时,它什么也不做!我用调试线(https://github.com/amethyst/amethyst/tree/v0.15.3/examples/debug_lines)运行它以排除位置错误,但球体仍然没有出现在任何地方。我花了6个多小时试图解决这个问题,但仍然没有解决方案。请告诉我我错过了什么

4

0 回答 0