如何解决在 Bevy 游戏引擎中将 1000x1000 像素的纹理分配给 SpriteSheetBundle 大约需要 5 秒钟
有没有办法改善这种情况,还是我只是使用了错误的引擎? 我试图通过首先创建和生成质量较低的背景图像来解决这个问题。
fn spawn_background(commands: &mut Commands,texture: Res<Textures>) {
commands
.spawn(SpriteSheetBundle {
texture_atlas: texture.background_low_texture.clone(),transform: Transform::from_scale(Vec3::splat(10.0)),..Default::default()
})
.with(Dummy)
.with(Background);
commands
.spawn(SpriteSheetBundle {
texture_atlas: texture.background_med_texture.clone(),..Default::default()
})
.with(Dummy)
.with(Background);
commands
.spawn(SpriteSheetBundle {
texture_atlas: texture.background_texture.clone(),..Default::default()
})
.with(Background);
}
我正在像这样将纹理加载到“纹理”资源中
fn setup(
commands: &mut Commands,asset_server: Res<AssetServer>,mut texture_atlases: ResMut<Assets<TextureAtlas>>,) {
let background_texture_handle = asset_server.load("textures/background.png");
let background_texture_atlas = TextureAtlas::from_grid(background_texture_handle,Vec2::new(1000.0,1000.0),1,1);
let background_low_texture_handle = asset_server.load("textures/background_low.png");
let background_low_texture_atlas = TextureAtlas::from_grid(background_low_texture_handle,1);
let background_med_texture_handle = asset_server.load("textures/background_med.png");
let background_med_texture_atlas = TextureAtlas::from_grid(background_med_texture_handle,1);
commands.insert_resource(Textures {
background_texture: texture_atlases.add(background_texture_atlas),background_low_texture: texture_atlases.add(background_low_texture_atlas),background_med_texture: texture_atlases.add(background_med_texture_atlas),});
}
解决方法
当使用 --release
命令行选项编译时,它运行得更快,因为发布配置文件启用了优化。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。