13 个版本
0.0.13 | 2024 年 7 月 18 日 |
---|---|
0.0.12 | 2024 年 3 月 19 日 |
0.0.6 | 2024 年 1 月 22 日 |
0.0.3 | 2023 年 11 月 17 日 |
#17 in #gltf
238 每月下载量
用于 bevy_vrm
365KB
10K SLoC
bevy_gltf_kun
Bevy gltf_kun 插件。
功能
用法
将 [GltfKunPlugin] 添加到您的应用程序
use bevy::prelude::*;
use bevy_gltf_kun::GltfKunPlugin;
App::new().add_plugins((DefaultPlugins, GltfKunPlugin::default()));
导出
使用 GltfExportEvent 将场景导出到 glTF。
生成的 GltfExportResult 将包含一个灵活的 GltfDocument,可以导出到各种文件类型。有关如何操作的更多信息,请参阅 [gltf_kun]。
use bevy::prelude::*;
use bevy_gltf_kun::{
extensions::DefaultExtensions,
export::gltf::{GltfExportEvent, GltfExportResult}
};
use gltf_kun::io::format::glb::GlbExport;
fn export_scene(
scenes: Query<&Handle<Scene>>,
mut export: EventWriter<GltfExportEvent<DefaultExtensions>>,
mut results: ResMut<Events<GltfExportResult>>,
mut did_export: Local<bool>,
) {
// Send an export event once.
if !*did_export {
if let Some(handle) = scenes.iter().next() {
export.send(GltfExportEvent::new(handle.clone()));
*did_export = true;
}
}
// Listen for the result.
for mut event in results.drain() {
let doc = event.result.unwrap();
let bytes = GlbExport::<DefaultExtensions>::export(&mut event.graph, &doc);
}
}
App::new().add_systems(Update, export_scene);
导入
使用 GltfKun 资产导入 glTF。
use bevy::prelude::*;
use bevy_gltf_kun::import::gltf::{GltfKun, scene::GltfScene};
fn import_gltf(
asset_server: Res<AssetServer>,
gltf_kun_assets: Res<Assets<GltfKun>>,
gltf_scene_assets: Res<Assets<GltfScene>>,
mut commands: Commands,
mut handle: Local<Option<Handle<GltfKun>>>,
mut did_import: Local<bool>,
) {
if *did_import {
return;
}
// Load the asset.
if handle.is_none() {
*handle = Some(asset_server.load::<GltfKun>("model.gltf"));
}
let handle = handle.as_ref().unwrap();
let gltf = match gltf_kun_assets.get(handle) {
Some(a) => a,
None => return,
};
// Spawn the first scene.
let gltf_scene = gltf_scene_assets.get(&gltf.scenes[0]).unwrap();
commands.spawn(SceneBundle { scene: gltf_scene.scene.clone(), ..default() });
*did_import = true;
}
App::new().add_systems(Update, import_gltf);
依赖项
~38–76MB
~1.5M SLoC