import { _decorator, Component, log } from 'cc'; import { ResourcePreloader } from '../Core/ResourcePreloader'; import { ConfigManager } from '../Core/ConfigManager'; const { ccclass, property } = _decorator; /** * 资源预加载器测试组件 * 用于验证敌人动画预加载功能 */ @ccclass('ResourcePreloaderTest') export class ResourcePreloaderTest extends Component { async start() { // 等待一段时间确保ConfigManager初始化完成 setTimeout(() => { this.testResourcePreloader(); }, 5000); } private async testResourcePreloader() { console.log('=== 资源预加载器测试开始 ==='); const configManager = ConfigManager.getInstance(); const resourcePreloader = ResourcePreloader.getInstance(); // 检查配置是否已加载 if (!configManager.isConfigLoaded()) { console.error('❌ ConfigManager配置尚未加载完成'); return; } // 获取所有敌人配置 const enemies = configManager.getAllEnemies(); if (!enemies || enemies.length === 0) { console.error('❌ 敌人配置为空'); return; } console.log(`✅ 敌人配置已加载,共 ${enemies.length} 个敌人`); // 测试预加载特定敌人动画 const testEnemyIds = ['normal_zombie', 'roadblock_zombie', 'mage_zombie', 'boss1_gatekeeper']; for (const enemyId of testEnemyIds) { try { console.log(`开始预加载敌人动画: ${enemyId}`); // 直接调用私有方法进行测试(通过反射) const preloader = resourcePreloader as any; if (preloader.preloadEnemyAnimation) { await preloader.preloadEnemyAnimation(enemyId); console.log(`✅ 敌人动画预加载成功: ${enemyId}`); } else { console.error(`❌ preloadEnemyAnimation方法不存在`); } } catch (error) { console.error(`❌ 敌人动画预加载失败: ${enemyId}`, error); } } console.log('=== 资源预加载器测试结束 ==='); } /** * 手动测试方法,可以在Inspector中调用 */ public async manualTest() { await this.testResourcePreloader(); } }