WeaponsConfigTest.ts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { _decorator, Component, JsonAsset } from 'cc';
  2. const { ccclass, property } = _decorator;
  3. /**
  4. * 武器配置测试组件
  5. * 用于验证装饰器加载weapons.json的功能
  6. */
  7. @ccclass('WeaponsConfigTest')
  8. export class WeaponsConfigTest extends Component {
  9. @property({
  10. type: JsonAsset,
  11. tooltip: '拖拽weapons.json文件到这里进行测试'
  12. })
  13. public weaponsConfig: JsonAsset = null;
  14. start() {
  15. this.testWeaponsConfig();
  16. }
  17. private testWeaponsConfig() {
  18. console.log('=== 武器配置测试开始 ===');
  19. // 检查装饰器配置
  20. if (this.weaponsConfig) {
  21. console.log('✅ weaponsConfig装饰器属性已配置');
  22. if (this.weaponsConfig.json) {
  23. console.log('✅ weaponsConfig.json数据存在');
  24. const data = this.weaponsConfig.json;
  25. // 检查weapons数组
  26. if (data.weapons && Array.isArray(data.weapons)) {
  27. console.log(`✅ weapons数组存在,包含 ${data.weapons.length} 个武器`);
  28. } else {
  29. console.error('❌ weapons数组不存在或格式错误');
  30. }
  31. // 检查blockSizes数组
  32. if (data.blockSizes && Array.isArray(data.blockSizes)) {
  33. console.log(`✅ blockSizes数组存在,包含 ${data.blockSizes.length} 个形状`);
  34. // 打印所有形状ID
  35. const shapeIds = data.blockSizes.map((shape: any) => shape.id);
  36. console.log('可用形状ID:', shapeIds);
  37. } else {
  38. console.error('❌ blockSizes数组不存在或格式错误');
  39. }
  40. console.log('武器配置数据结构:', {
  41. hasWeapons: !!data.weapons,
  42. weaponsCount: data.weapons?.length || 0,
  43. hasBlockSizes: !!data.blockSizes,
  44. blockSizesCount: data.blockSizes?.length || 0
  45. });
  46. } else {
  47. console.error('❌ weaponsConfig.json为空');
  48. }
  49. } else {
  50. console.error('❌ weaponsConfig装饰器属性未配置');
  51. console.log('请在Inspector中将weapons.json文件拖拽到weaponsConfig属性');
  52. }
  53. console.log('=== 武器配置测试结束 ===');
  54. }
  55. /**
  56. * 手动测试方法,可以在Inspector中调用
  57. */
  58. public manualTest() {
  59. this.testWeaponsConfig();
  60. }
  61. }