#纹理 #bevy #启动 #处理 #资源 #命令 #丢失纹理

bevy_missing_texture

一个帮助bevy处理丢失纹理的库

3个版本

0.1.2 2023年8月3日
0.1.1 2023年8月3日
0.1.0 2023年8月3日

1798 in 游戏开发

MIT 许可证

6KB
68

Bevy丢失纹理库

use bevy::prelude::*;
use bevy_missing_texture::*;
// Make sure to have `missing_texture.png` in your assets dir
fn main() {
    App::new()
        .add_plugins(MissingTexturePlugin)
        .add_systems(Startup, (will_fail, will_succeed));
}
// This will be replaced by the missing asset
fn will_fail(mut commands: Commands, asset_server: Res<AssetServer>, mut if_missing: ResMut<ReplaceIfMissing>) {
    let handle = asset_server.load("foo.png");
    commands.spawn(SpriteBundle {
        texture: handle.clone(),
        ..Default::default()
    });
    if_missing.push(handle);
}
// This will not be replaced by the missing asset
fn will_succeed(mut commands: Commands, asset_server: Res<AssetServer>, mut if_missing: ResMut<ReplaceIfMissing>) {
    let handle = asset_server.load("bar.png");
    commands.spawn(SpriteBundle {
        texture: handle.clone(),
        ..Default::default()
    });
    if_missing.push(handle);
}

lib.rs:

Bevy丢失纹理库

use bevy::prelude::*;
use bevy_missing_texture::*;

// Make sure to have `missing_texture.png` in your assets dir
fn main() {
    App::new()
        .add_plugins(MissingTexturePlugin)
        .add_systems(Startup, (will_fail, will_succeed));
}
// This will be replaced by the missing asset
fn will_fail(mut commands: Commands, asset_server: Res<AssetServer>, mut if_missing: ResMut<ReplaceIfMissing>) {
    let handle = asset_server.load("foo.png");
    commands.spawn(SpriteBundle {
        texture: handle.clone(),
        ..Default::default()
    });
    if_missing.push(handle);
}
// This will not be replaced by the missing asset
fn will_succeed(mut commands: Commands, asset_server: Res<AssetServer>, mut if_missing: ResMut<ReplaceIfMissing>) {
    let handle = asset_server.load("bar.png");
    commands.spawn(SpriteBundle {
        texture: handle.clone(),
        ..Default::default()
    });
    if_missing.push(handle);
}

依赖关系

~30–65MB
~1M SLoC