Selaa lähdekoodia

解决通行证报错问题

181404010226 1 viikko sitten
vanhempi
commit
461392a713
2 muutettua tiedostoa jossa 13 lisäystä ja 80 poistoa
  1. 0 36
      assets/scripts/AvatarManager.ts
  2. 13 44
      assets/scripts/PassCardManager.ts

+ 0 - 36
assets/scripts/AvatarManager.ts

@@ -71,40 +71,4 @@ export class AvatarManager extends Component {
         }
         this.currentAvatarId = 0;
     }
-
-    /**
-     * 加载并显示特定表情的头像
-     * @param characterId 角色ID
-     * @param emotion 表情名称(如"normal", "happy", "sad"等)
-     * @param callback 加载完成的回调函数
-     */
-    public loadAvatarWithEmotion(characterId: number, emotion: string, callback?: () => void): void {
-        if (!this.avatarSprite) {
-            console.error('头像Sprite组件未设置');
-            callback && callback();
-            return;
-        }
-
-        this.currentAvatarId = characterId;
-        
-        // 构建头像资源路径,添加表情标识
-        const avatarPath = `avatars/${this.avatarPrefix}${characterId}_${emotion}${this.avatarSuffix}`;
-        
-        // 加载头像资源
-        resources.load(avatarPath, SpriteFrame, (err, spriteFrame) => {
-            if (err) {
-                console.error(`加载表情头像失败: ${avatarPath}`, err);
-                
-                // 尝试加载默认头像
-                this.loadAvatar(characterId, callback);
-                return;
-            }
-            
-            // 设置头像
-            this.avatarSprite.spriteFrame = spriteFrame;
-            
-            // 调用回调函数
-            callback && callback();
-        });
-    }
 } 

+ 13 - 44
assets/scripts/PassCardManager.ts

@@ -183,16 +183,16 @@ export class PassCardManager extends Component {
             return;
         }
 
-        // 我们的目录结构现在是 avatars/1/avatar_1_5.png
-        // 正确的资源路径格式是 avatars/1/avatar_1_5(不需要.png后缀)
-        const avatarPath = `avatars/${characterId}/avatar_${characterId}_5`;
+        // 构建头像资源路径,加上spriteFrame后缀以直接获取SpriteFrame子资源
+        const avatarPath = `avatars/${characterId}/avatar_${characterId}_5/spriteFrame`;
         console.log('尝试加载头像路径:', avatarPath);
         
         // 加载头像资源
         resources.load(avatarPath, SpriteFrame, (err, spriteFrame) => {
             if (err) {
                 console.error(`加载头像失败: ${avatarPath}`, err);
-                this.tryAllPossiblePaths(characterId);
+                // 如果加载失败,尝试其他路径
+                this.loadFallbackAvatar(characterId);
             } else {
                 // 设置头像
                 this.avatarSprite.spriteFrame = spriteFrame;
@@ -202,52 +202,21 @@ export class PassCardManager extends Component {
     }
 
     /**
-     * 尝试所有可能的头像路径格式
+     * 尝试加载备用头像
      * @param characterId 角色ID
      */
-    private tryAllPossiblePaths(characterId: number): void {
-        console.log('尝试所有可能的头像路径格式:', characterId);
+    private loadFallbackAvatar(characterId: number): void {
+        console.log('尝试加载备用头像:', characterId);
         
-        // 基于项目目录结构,尝试所有可能的路径格式
-        const possiblePaths = [
-            // 当前目录格式,不同变体 - 使用新的下划线格式
-            `avatars/${characterId}/avatar_${characterId}_1`,
-            `avatars/${characterId}/avatar_${characterId}_2`,
-            `avatars/${characterId}/avatar_${characterId}_3`,
-            `avatars/${characterId}/avatar_${characterId}_4`,
-            
-            // 其他可能的格式
-            `avatars/${characterId}/${characterId}`,
-            `avatars/${characterId}`,
-            `0${characterId}/${characterId}`,
-            `${characterId}`
-        ];
+        // 尝试加载备用路径
+        const fallbackPath = `avatars/${characterId}/avatar_${characterId}_1/spriteFrame`;
         
-        console.log('尝试路径列表:', possiblePaths);
-        this.tryPathSequentially(possiblePaths, 0);
-    }
-    
-    /**
-     * 按顺序尝试路径
-     */
-    private tryPathSequentially(paths: string[], index: number): void {
-        if (index >= paths.length) {
-            console.error('所有路径都加载失败');
-            return;
-        }
-        
-        const path = paths[index];
-        console.log(`尝试路径 ${index+1}/${paths.length}: ${path}`);
-        
-        resources.load(path, SpriteFrame, (err, spriteFrame) => {
+        resources.load(fallbackPath, SpriteFrame, (err, spriteFrame) => {
             if (err) {
-                console.warn(`路径 ${path} 加载失败, 尝试下一个`);
-                this.tryPathSequentially(paths, index + 1);
+                console.error(`加载备用头像失败: ${fallbackPath}`);
             } else {
-                if (this.avatarSprite) {
-                    this.avatarSprite.spriteFrame = spriteFrame;
-                    console.log(`头像加载成功,使用路径: ${path}`);
-                }
+                this.avatarSprite.spriteFrame = spriteFrame;
+                console.log('备用头像加载成功: ' + fallbackPath);
             }
         });
     }