Files
BlueArchiveToolkit/examples/unity_adapter_demo.rs
T

50 lines
1.7 KiB
Rust

use bat_adapters::unity::{Unity2021_3Adapter, UnityAdapterRegistry};
use bat_adapters::unity::RawAssetBundle;
use std::sync::Arc;
fn main() {
println!("🎮 BlueArchiveToolkit - Unity 适配器演示");
println!("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
// 创建 Unity Adapter
let adapter = Unity2021_3Adapter::new();
println!("✅ Unity Adapter: {}", adapter.name());
println!(" 支持版本: 2021.3.0 - 2021.3.99");
// 模拟 UnityFS 文件头
println!("\n📦 测试 Unity 版本检测...");
let mut bundle_data = Vec::new();
bundle_data.extend_from_slice(b"UnityFS\0");
bundle_data.extend_from_slice(&[0, 0, 0, 8]);
bundle_data.extend_from_slice(b"5.x.x\02021.3.56f2\0");
let bundle = RawAssetBundle {
data: bundle_data,
path: Some("test.bundle".to_string()),
};
if adapter.can_handle(&bundle) {
println!(" ✅ 可以处理 Unity 2021.3.56f2");
} else {
println!(" ❌ 不支持此版本");
}
// 测试 Registry
println!("\n🔄 测试 Adapter Registry...");
let mut registry = UnityAdapterRegistry::new();
registry.register(Arc::new(Unity2021_3Adapter::new()));
println!(" 注册的适配器数量: {}", registry.count());
match registry.select_adapter(&bundle) {
Ok(selected) => {
println!(" ✅ 自动选择的适配器: {}", selected.name());
}
Err(e) => {
println!(" ❌ 选择失败: {}", e);
}
}
println!("\n✅ 演示完成!");
println!("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
}