import { _decorator, Component } from 'cc'; import { BundleLoader } from '../Core/BundleLoader'; const { ccclass, property } = _decorator; /** * 武器配置测试组件 * 用于验证装饰器加载weapons.json的功能 */ @ccclass('WeaponsConfigTest') export class WeaponsConfigTest extends Component { // @property({ // type: JsonAsset, // tooltip: '拖拽weapons.json文件到这里进行测试' // }) // public weaponsConfig: JsonAsset = null; // 武器配置数据,通过 BundleLoader 异步加载 private weaponsConfigData: any = null; async start() { await this.loadWeaponsConfig(); this.testWeaponsConfig(); } /** * 异步加载武器配置 */ private async loadWeaponsConfig() { try { const bundleLoader = BundleLoader.getInstance(); const weaponsConfigAsset = await bundleLoader.loadDataJson('weapons'); this.weaponsConfigData = weaponsConfigAsset.json; console.log('[WeaponsConfigTest] 武器配置加载成功'); } catch (error) { console.error('[WeaponsConfigTest] 武器配置加载失败:', error); this.weaponsConfigData = null; } } private testWeaponsConfig() { console.log('=== 武器配置测试开始 ==='); // 检查 BundleLoader 加载的配置 if (this.weaponsConfigData) { console.log('✅ 武器配置通过 BundleLoader 加载成功'); const data = this.weaponsConfigData; // 检查weapons数组 if (data.weapons && Array.isArray(data.weapons)) { console.log(`✅ weapons数组存在,包含 ${data.weapons.length} 个武器`); } else { console.error('❌ weapons数组不存在或格式错误'); } // 检查blockSizes数组 if (data.blockSizes && Array.isArray(data.blockSizes)) { console.log(`✅ blockSizes数组存在,包含 ${data.blockSizes.length} 个形状`); // 打印所有形状ID const shapeIds = data.blockSizes.map((shape: any) => shape.id); console.log('可用形状ID:', shapeIds); } else { console.error('❌ blockSizes数组不存在或格式错误'); } console.log('武器配置数据结构:', { hasWeapons: !!data.weapons, weaponsCount: data.weapons?.length || 0, hasBlockSizes: !!data.blockSizes, blockSizesCount: data.blockSizes?.length || 0 }); } else { console.error('❌ 武器配置加载失败'); console.log('请检查 weapons.json 文件是否存在于 data 目录中'); } console.log('=== 武器配置测试结束 ==='); } /** * 手动测试方法,可以在Inspector中调用 */ public async manualTest() { await this.loadWeaponsConfig(); this.testWeaponsConfig(); } }