ResourcePreloaderTest.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { _decorator, Component, log } from 'cc';
  2. import { ResourcePreloader } from '../Core/ResourcePreloader';
  3. import { ConfigManager } from '../Core/ConfigManager';
  4. const { ccclass, property } = _decorator;
  5. /**
  6. * 资源预加载器测试组件
  7. * 用于验证敌人动画预加载功能
  8. */
  9. @ccclass('ResourcePreloaderTest')
  10. export class ResourcePreloaderTest extends Component {
  11. async start() {
  12. // 等待一段时间确保ConfigManager初始化完成
  13. setTimeout(() => {
  14. this.testResourcePreloader();
  15. }, 5000);
  16. }
  17. private async testResourcePreloader() {
  18. console.log('=== 资源预加载器测试开始 ===');
  19. const configManager = ConfigManager.getInstance();
  20. const resourcePreloader = ResourcePreloader.getInstance();
  21. // 检查配置是否已加载
  22. if (!configManager.isConfigLoaded()) {
  23. console.error('❌ ConfigManager配置尚未加载完成');
  24. return;
  25. }
  26. // 获取所有敌人配置
  27. const enemies = configManager.getAllEnemies();
  28. if (!enemies || enemies.length === 0) {
  29. console.error('❌ 敌人配置为空');
  30. return;
  31. }
  32. console.log(`✅ 敌人配置已加载,共 ${enemies.length} 个敌人`);
  33. // 测试预加载特定敌人动画
  34. const testEnemyIds = ['normal_zombie', 'roadblock_zombie', 'mage_zombie', 'boss1_gatekeeper'];
  35. for (const enemyId of testEnemyIds) {
  36. try {
  37. console.log(`开始预加载敌人动画: ${enemyId}`);
  38. // 直接调用私有方法进行测试(通过反射)
  39. const preloader = resourcePreloader as any;
  40. if (preloader.preloadEnemyAnimation) {
  41. await preloader.preloadEnemyAnimation(enemyId);
  42. console.log(`✅ 敌人动画预加载成功: ${enemyId}`);
  43. } else {
  44. console.error(`❌ preloadEnemyAnimation方法不存在`);
  45. }
  46. } catch (error) {
  47. console.error(`❌ 敌人动画预加载失败: ${enemyId}`, error);
  48. }
  49. }
  50. console.log('=== 资源预加载器测试结束 ===');
  51. }
  52. /**
  53. * 手动测试方法,可以在Inspector中调用
  54. */
  55. public async manualTest() {
  56. await this.testResourcePreloader();
  57. }
  58. }