Ver código fonte

解决子弹大小问题

181404010226 4 meses atrás
pai
commit
933de86d0c
1 arquivos alterados com 15 adições e 14 exclusões
  1. 15 14
      assets/scripts/CombatSystem/WeaponBullet.ts

+ 15 - 14
assets/scripts/CombatSystem/WeaponBullet.ts

@@ -577,20 +577,21 @@ export class WeaponBullet extends Component {
                 spriteFrame && spriteFrame.isValid) {
                 sprite.spriteFrame = spriteFrame;
 
-                // // === 子弹大小1比1 ===
-                // const uiTransform = sprite.node.getComponent(UITransform);
-                // if (uiTransform) {
-                //     const originalSize = spriteFrame.originalSize || null;
-                //     if (originalSize) {
-                //         uiTransform.setContentSize(originalSize.width * 0.5, originalSize.height * 0.5);
-                //     } else {
-                //         // 若无法获取原尺寸,退化为缩放节点
-                //         sprite.node.setScale(sprite.node.scale.x * 0.5, sprite.node.scale.y * 0.5, sprite.node.scale.z);
-                //     }
-                // } else {
-                //     // 没有 UITransform,直接缩放节点
-                //     sprite.node.setScale(sprite.node.scale.x * 0.5, sprite.node.scale.y * 0.5, sprite.node.scale.z);
-                // }
+                // === 子弹大小控制:保持prefab预设的大小 ===
+                const uiTransform = sprite.node.getComponent(UITransform);
+                if (uiTransform) {
+                    const originalSize = spriteFrame.originalSize || null;
+                    if (originalSize) {
+                        // 设置为原图大小的0.5倍,确保子弹不会过大
+                        uiTransform.setContentSize(originalSize.width * 0.45, originalSize.height * 0.45);
+                    } else {
+                        // 若无法获取原尺寸,退化为缩放节点
+                        sprite.node.setScale(sprite.node.scale.x * 0.45, sprite.node.scale.y * 0.45, sprite.node.scale.z);
+                    }
+                } else {
+                    // 没有 UITransform,直接缩放节点
+                    sprite.node.setScale(sprite.node.scale.x * 0.45, sprite.node.scale.y * 0.45, sprite.node.scale.z);
+                }
             }
         }
     );