Browse Source

bulletPool

0224995 1 month ago
parent
commit
0a9eb1b65d

+ 103 - 147
assets/Script/Game/MyApp/GameScene/Bullet.ts

@@ -1,115 +1,23 @@
-import { _decorator, Animation, AnimationClip, BoxCollider2D, Collider2D, Component, Contact2DType, ICollisionEvent, IPhysics2DContact, Node, PhysicsGroup, PhysicsSystem2D, SpriteFrame, UITransform, Vec2, Vec3 } from 'cc';
-import { Tools } from '../../Tools/Tools';
+import { _decorator, Animation, AnimationClip, Component, Node, Sprite, SpriteFrame, UITransform, Vec3 } from 'cc';
 import { LifeBar } from './LifeBar';
-import { Role, RoleState } from '../Role';
+import { BulletPool } from './BulletPool';
 const { ccclass, property } = _decorator;
-/*
+export enum BulletState {
+    Normal,
+    Explode,
+}
 @ccclass('Bullet')
 export class Bullet extends Component {
-    explodeframes: SpriteFrame[] = [];
-    bulletFrames: SpriteFrame[] = [];
-    explodeAni: Animation = null;
-    bulletAni: Animation = null;
 
-    //是否爆炸 true -> 爆炸
-    isExplode: boolean = false;
-    //子弹速度
-    bulletSpeed: number = 100;
-    //子弹方向
-    direction: number = 1;
-    //攻击力
-    atk: number = null;
-    //被攻击的节点
-    targetNode: Node = null;
-    //是否碰撞
-    private _hasCollided: boolean = false;
+    //对象池
+    private _pool: BulletPool = null!;
+    private _isEnemyBullet: boolean = false;
 
-    //private _initPos: Vec3 = null;
-    protected onLoad(): void {
-        const collider = this.getComponent(Collider2D);
-        if (collider) {
-            //collider.on(Contact2DType.BEGIN_CONTACT, this._onBeginContact, this)
-        }
-    }
-    start() {
-        this.explodeAni = Tools.createAnimation(this.explodeframes, 5, this.node, AnimationClip.WrapMode.Normal);
-        this.bulletAni = Tools.createAnimation(this.bulletFrames, 5, this.node, AnimationClip.WrapMode.Loop);
-        //this.node.setPosition(0, 0, 0);
-        //this._initPos = this.node.position;
-        this.setState(false);
-    }
+    private _animation: Animation = null;
+    private _animations: Map<BulletState, string> = new Map();
 
-    setState(isExplode: boolean) {
-        if (isExplode) {
-            this.bulletSpeed = 0;
-            this.explodeAni.play();
-            this.explodeAni.once(Animation.EventType.FINISHED, () => {
-                this.node.destroy()
-            },
-                this.node)
-        } else {
-            this.bulletAni.play();
-        }
-    }
-
-    _onBeginContact(otherCollider: BoxCollider2D) {
-        const lifeBar = this.targetNode.getComponent(LifeBar);
-        lifeBar.updateProgressBar(lifeBar._curHp - this.atk);
-        this.setState(true);
-    }
-
-    update(deltaTime: number) {
-        this.move(deltaTime);
-        this.onBulletCollision(this.targetNode);
-        //this._checkDistance();
-    }
-
-
-    // private _checkDistance(){
-    //     const currentPos: Vec3 = this.node.position;
-    //     const distance = currentPos.subtract(this._initPos).length();
-    //     if(distance >= 180){
-    //         this.node.destroy;
-    //     }
-    // }
-    move(dt: number) {
-        let x = this.node.getWorldPosition().x;
-        let y = this.node.getWorldPosition().y;
-        let z = this.node.getWorldPosition().z;
-        // if (this.direction) {
-        //     x = x + this.bulletSpeed * dt;
-        // } else {
-        //     x = x - this.bulletSpeed * dt;
-        // }
-        x = x + this.bulletSpeed * this.direction * dt;
-        this.node.setWorldPosition(x, y, z)
-    }
-
-    // 处理子弹碰撞
-    onBulletCollision(targetNode: Node) {
-        if(this._hasCollided) return;
-        if(!targetNode.isValid) return;
-        const boxBullet = this.node.getComponent(UITransform).getBoundingBoxToWorld();
-        const boxTarget = targetNode.getComponent(UITransform).getBoundingBoxToWorld();
-        if (boxTarget.containsRect(boxBullet)) {
-            const targetLifeBar = targetNode.getComponent(LifeBar);
-            if((targetLifeBar._curHp - this.atk) <= 0){
-                this.targetNode.destroy();
-                this.node.destroy();
-            }
-            targetLifeBar.updateProgressBar(targetLifeBar._curHp - this.atk);
-            this._hasCollided = true;
-            this.setState(true);
-        }
-    }
-}
-*/
-@ccclass('Bullet')
-export class Bullet extends Component {
-    explodeframes: SpriteFrame[] = [];
-    bulletFrames: SpriteFrame[] = [];
-    explodeAni: Animation = null;
-    bulletAni: Animation = null;
+    private _explodeframes: SpriteFrame[] = [];
+    private _bulletFrames: SpriteFrame[] = [];
 
     //是否爆炸 true -> 爆炸
     isExplode: boolean = false;
@@ -124,33 +32,58 @@ export class Bullet extends Component {
     //是否碰撞
     private _hasCollided: boolean = false;
 
-    private _bulletColl: BoxCollider2D = null;
-
     private _initPos: Vec3 = null;
+
     protected onLoad(): void {
-        this._bulletColl = this.getComponent(BoxCollider2D);
-        
+        this._animation = this.node.addComponent(Animation);
+        this._createClip(BulletState.Normal, [], 10);
+        this._createClip(BulletState.Explode, [], 10);
     }
     start() {
-        //this._bulletColl.on("onCollisionEnter",this._onCollStart,this);
-
-        this.explodeAni = Tools.createAnimation(this.explodeframes, 20, this.node, AnimationClip.WrapMode.Normal);
-        this.bulletAni = Tools.createAnimation(this.bulletFrames, 5, this.node, AnimationClip.WrapMode.Loop);
-        this._initPos = this.node.position;
-        this.setState(false);
+        this._initPos = this.node.position.clone();
+        this._collectAni();
+        this._playAnimation(BulletState.Normal);
+        console.log(this._explodeframes , this._bulletFrames);
+    }
+    public reset(config: {
+        pool: BulletPool,
+        isEnemy: boolean,
+        direction: number,
+        bulletFrames: SpriteFrame[],
+        explodeFrames: SpriteFrame[],
+        targetNode: Node,
+        atk: number,
+    }) {
+        //重置状态
+        this._pool = config.pool;
+        this._isEnemyBullet = config.isEnemy;
+        this.direction = config.direction;
+        this._bulletFrames = config.bulletFrames;
+        this._explodeframes = config.explodeFrames;
+        this.targetNode = config.targetNode;
+        this.atk = config.atk;
+        this._hasCollided = false;
+        this.isExplode = false;
+        this.bulletSpeed = this._isEnemyBullet ? 100 : 90;
+        this._initPos = this.node.position.clone();
+        this._collectAni();
+        this._playAnimation(BulletState.Normal);
+        //重置位置和动画
+        this.node.active = true;
     }
 
-    setState(isExplode: boolean) {
-        if (isExplode) {
-            this.bulletSpeed = 0;
-            this.bulletAni.stop();
-            this.explodeAni.play();
-            this.explodeAni.once(Animation.EventType.FINISHED, () => {
-                this.node.destroy()
-            },
-                this)
+    private _recycle() {
+        if (this._pool) {
+            //停止所有动画和事件
+            this._animation.stop();
+            this._animation.off(Animation.EventType.FINISHED);
+            this.unscheduleAllCallbacks();
+            this.node.active = false;
+            //回收到对象池
+            this._pool.recycle(this.node, this._isEnemyBullet);
         } else {
-            this.bulletAni.play();
+            console.log("destroy");
+            this.node.destroy();
         }
     }
 
@@ -160,23 +93,9 @@ export class Bullet extends Component {
         this._checkDistance();
     }
 
-    move(dt: number) {
-        let x = this.node.getWorldPosition().x;
-        let y = this.node.getWorldPosition().y;
-        let z = this.node.getWorldPosition().z;
-        
-        x = x + this.bulletSpeed * this.direction * dt;
-        this.node.setWorldPosition(x, y, z)
-    }
-    private _onCollStart(event: ICollisionEvent){
-        if(event.otherCollider.node.uuid === this.targetNode.uuid){
-          
-        }
-    }
     // 处理子弹碰撞
     private onBulletCollision(targetNode: Node) {
-        if (this._hasCollided) return;
-        if (!targetNode.isValid) return;
+        if (this._hasCollided || !targetNode.isValid) return;
         const boxBullet = this.node.getComponent(UITransform).getBoundingBoxToWorld();
         const boxTarget = targetNode.getComponent(UITransform).getBoundingBoxToWorld();
         if (boxTarget.intersects(boxBullet)) {
@@ -184,20 +103,57 @@ export class Bullet extends Component {
             const curHp: number = targetLifeBar._curHp - this.atk;
             targetLifeBar.updateProgressBar(curHp);
             if (curHp <= 0) {
-                //this.targetNode.destroy();
-                this.node.destroy();
+                this._recycle();
             }
             this._hasCollided = true;
-            this.setState(true);
+            this._playAnimation(BulletState.Explode);
         }
     }
 
+    move(dt: number) {
+        let x = this.node.getWorldPosition().x;
+        let y = this.node.getWorldPosition().y;
+        let z = this.node.getWorldPosition().z;
+
+        x = x + this.bulletSpeed * this.direction * dt;
+        this.node.setWorldPosition(x, y, z)
+    }
+
     private _checkDistance() {
         const currentPos: Vec3 = this.node.position;
-        const distance: number = currentPos.subtract(this._initPos).length();
-        if (distance >= 180) {
-            this.node.destroy;
+        const distance: number = Vec3.distance(currentPos, this._initPos);
+        if (distance >= 250) {
+            this._recycle();
         }
     }
-}
 
+    private _collectAni() {
+        this._createClip(BulletState.Explode, this._explodeframes, 10);
+        this._createClip(BulletState.Normal, this._bulletFrames, 10);
+    }
+
+    private _createClip(state: BulletState, frames: SpriteFrame[], fps: number) {
+        const clip: AnimationClip = AnimationClip.createWithSpriteFrames(frames, fps);
+        clip.name = BulletState[state];
+        clip.wrapMode = state === BulletState.Explode ?
+            AnimationClip.WrapMode.Normal :
+            AnimationClip.WrapMode.Loop;
+        this._animation.addClip(clip, clip.name);
+        this._animations.set(state, clip.name);
+    }
+
+    private _playAnimation(state: BulletState) {
+        if (!this._animation) return;
+        const clipName = this._animations.get(state);
+        if (!clipName) return;
+        this._animation.stop();
+        this._animation.play(clipName);
+
+        if (state === BulletState.Explode) {
+            this.bulletSpeed = 0;
+            this._animation.once(Animation.EventType.FINISHED, () => {
+                this._recycle();
+            })
+        }
+    }
+}

+ 44 - 0
assets/Script/Game/MyApp/GameScene/BulletPool.ts

@@ -0,0 +1,44 @@
+import { _decorator, Component, instantiate, Node, NodePool, Pool, Prefab } from 'cc';
+import { resMgr } from '../../../Frames/ResourcesMgr';
+const { ccclass, property } = _decorator;
+
+@ccclass('BulletPool')
+export class BulletPool extends Component{
+    private _bulletPrefab: Prefab = null;
+    private _enemyBulletPrefab: Prefab = null;
+
+    private _bulletPool: NodePool = new NodePool();
+    private _enemyBulletPool: NodePool = new NodePool();
+
+    init() {
+        this._bulletPrefab = resMgr.getPrefab("Bullet");
+        this._enemyBulletPrefab = resMgr.getPrefab("BulletEnemy");
+        this._initPool(this._bulletPool, this._bulletPrefab, 10);
+        this._initPool(this._enemyBulletPool, this._enemyBulletPrefab, 10);
+    }
+
+    private _initPool(pool: NodePool, prefab: Prefab, count: number) {
+        for (let i = 0; i < count; i++) {
+            const node = instantiate(prefab);
+            pool.put(node);
+        }
+    }
+    getBullet(isEnemy: boolean): Node {
+        const pool = isEnemy ? this._enemyBulletPool : this._bulletPool;
+        if(pool.size()>0){
+            return pool.get()!;
+        }else{
+            //动态扩容
+            const prefab = isEnemy ? this._enemyBulletPrefab: this._bulletPrefab;
+            return instantiate(prefab);
+        }
+    }
+
+    recycle(bullet: Node, isEnemy: boolean) {
+        const pool = isEnemy ? this._enemyBulletPool : this._bulletPool;
+        if(!pool) return;
+        pool.put(bullet);
+    }
+}
+
+

+ 9 - 0
assets/Script/Game/MyApp/GameScene/BulletPool.ts.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "4.0.23",
+  "importer": "typescript",
+  "imported": true,
+  "uuid": "8f09038e-e0b2-4c26-82fb-df6b8ae0ecd5",
+  "files": [],
+  "subMetas": {},
+  "userData": {}
+}

+ 2 - 1
assets/Script/Game/MyApp/GameScene/EnemyMgr.ts

@@ -9,6 +9,7 @@ import { GameMgr } from '../../GameFrameWork/GameMgr';
 import { TouchGame } from '../TouchGame';
 import { Tools } from '../../Tools/Tools';
 import { Top } from './Top';
+import { BulletPool } from './BulletPool';
 const { ccclass, property } = _decorator;
 
 @ccclass('EnemyMgr')
@@ -16,7 +17,7 @@ export class EnemyMgr extends ModulerBase {
     private _lvDts: LevelData[] = [];
     private _lvDt: LevelData = null;
     private _roleDatas: RoleData[] = [];
-    
+
     private _hight: number = 0;
 
     private _top: Top = null;

+ 27 - 11
assets/Script/Game/MyApp/Role.ts

@@ -4,6 +4,7 @@ import { RoleData } from '../../DataItem/ItemData';
 import { resMgr } from '../../Frames/ResourcesMgr';
 import { Bullet } from './GameScene/Bullet';
 import { LifeBar } from './GameScene/LifeBar';
+import { BulletPool } from './GameScene/BulletPool';
 const { ccclass, property } = _decorator;
 export enum RoleState {
     Attack,
@@ -34,6 +35,7 @@ export class Role extends Component {
     //子弹
     private _bullet: Node | null = null;
     private _bulletLayer: Node | null = null;
+    private _bulletPool: BulletPool = null;
 
     //动画管理
     private _animations: Map<RoleState, string> = new Map();
@@ -52,6 +54,8 @@ export class Role extends Component {
     _state: RoleState = null;
 
     protected init(name: string, pos: Vec3, roleDatas: RoleData[], dir?: number) {
+        this._bulletPool = this.node.getComponent(BulletPool);
+        this._bulletPool.init();
         this._animation = this.node.getComponent(Animation) || this.node.addComponent(Animation);
         this.direction = dir;
         let whichData: number = -1;
@@ -361,19 +365,31 @@ export class Role extends Component {
     //创建子弹
 
     private _createBullet() {
-        if (this.direction === -1) {
-            this._bullet = instantiate(resMgr.getPrefab("BulletEnemy"));
-        } else if (this.direction === 1) {
-            this._bullet = instantiate(resMgr.getPrefab("Bullet"));
-        }
-        this._bullet.setWorldPosition(this.node.getWorldPosition());
+        // if (this.direction === -1) {
+        //     this._bullet = instantiate(resMgr.getPrefab("BulletEnemy"));
+        // } else if (this.direction === 1) {
+        //     this._bullet = instantiate(resMgr.getPrefab("Bullet"));
+        // }
+
+        const isEnemy = this.direction === -1;
+        this._bullet = this._bulletPool.getBullet(isEnemy);
         this._bullet.parent = this._bulletLayer;
+        this._bullet.setWorldPosition(this.node.getWorldPosition());
         const bulletTS = this._bullet.getComponent(Bullet);
-        bulletTS.direction = this.direction;
-        bulletTS.bulletFrames = this._bulletFrames;
-        bulletTS.explodeframes = this._explodeframes;
-        bulletTS.targetNode = this.currentTarget.node;
-        bulletTS.atk = this.atk;
+        bulletTS.reset({
+            pool: this._bulletPool,
+            isEnemy: isEnemy,
+            direction: this.direction,
+            bulletFrames: this._bulletFrames,
+            explodeFrames: this._explodeframes,
+            targetNode: this.currentTarget.node,
+            atk: this.atk,
+        })
+        // bulletTS.direction = this.direction;
+        // bulletTS.bulletFrames = this._bulletFrames;
+        // bulletTS.explodeframes = this._explodeframes;
+        // bulletTS.targetNode = this.currentTarget.node;
+        // bulletTS.atk = this.atk;
     }
 
     //要求子类实现的碰撞分组和阵营判断方法,确保不同阵营角色可以正确交互

+ 0 - 10
assets/resources/Data/LevelDt - 1.csv

@@ -1,10 +0,0 @@
-Ãû³Æ,id,lvName,imgName,enemyTowerHp,bgName
-,number,number,string[],number,string
-lv1,1,1,hero_1;hero_2;Blue1;Green1,3000,Scene_1
-lv2,2,2,hero_3;hero_4;Pink1;Green1;Blue1,3000,Scene_2
-lv3,3,3,hero_1;hero_2;hero_5;Green1,3000,Scene_3
-lv4,4,4,hero_2;hero_3;Blue1;Green1,3500,Scene_4
-lv5,5,5,hero_3;hero_4;Pink1;Blue1,3500,Scene_5
-lv6,6,6,hero_5;hero_2;Blue1;Green1;Pink1,3700,Scene_6
-lv7,7,7,hero_4;hero_5;Pink1;Green7,3700,Scene_7
-lv8,8,8,hero_1;hero_2;Blue1;Blue1,4000,Scene_3

+ 0 - 11
assets/resources/Data/LevelDt - 1.csv.meta

@@ -1,11 +0,0 @@
-{
-  "ver": "1.0.2",
-  "importer": "text",
-  "imported": true,
-  "uuid": "c8e2e465-1aa7-4be3-b655-75a3f5d41045",
-  "files": [
-    ".json"
-  ],
-  "subMetas": {},
-  "userData": {}
-}

+ 0 - 10
assets/resources/Data/RoleCardData - 2.csv

@@ -1,10 +0,0 @@
-名称,id,imgName,atk,hp,atkLength,moveSpeed,typeRole,aniCount,aniImg,atkCount,atkImg,idleCount,idleImg,dieCount,dieImg,bulletExplodeCount,bulletExplodeImg,bulletImg,bulletCount
-,number,string,number,number,number,number,string,number,string,number,string,number,string,number,string,number,string,string,number
-Role1,1,hero_1,35,500,140,40,water,1,hero_1,5,atk,5,idle,5,die,6,PBStar-1,BStar1,3
-Role2,2,hero_2,40,400,135,35,fire,1,hero_2,5,atk,5,idle,5,die,2,PFan0,Fan1,3
-Role3,3,hero_3,32,520,147,30,wind,1,hero_3,5,atk,5,idle,5,die,2,PArrow0,PArrow1,2
-Role4,4,hero_4,25,480,150,38,fire,1,hero_4,5,atk,5,idle,5,die,2,PBottle0,PBottle1,3
-Role5,5,hero_5,32,600,145,42,water,1,hero_5,5,atk,5,idle,5,die,4,PPin0,PPin1,2
-Role6,6,Blue1,28,489,145,40,dark,8,Blue,5,atk,5,idle,5,die,6,PRocket-1,PRocket1,5
-Role7,7,Green1,41,512,157,37,light,8,Green,5,atk,5,idle,5,die,2,PShit0,PShit1,2
-Role8,8,Pink1,100,500,140,41,dark,8,Pink,5,atk,5,idle,5,die,6,PStar-1,Star1,3

+ 0 - 11
assets/resources/Data/RoleCardData - 2.csv.meta

@@ -1,11 +0,0 @@
-{
-  "ver": "1.0.2",
-  "importer": "text",
-  "imported": true,
-  "uuid": "c88e1850-e2df-4309-aceb-8a25add60a6c",
-  "files": [
-    ".json"
-  ],
-  "subMetas": {},
-  "userData": {}
-}

+ 8 - 8
assets/resources/Data/RoleCardData.csv

@@ -1,16 +1,16 @@
 名称,id,imgName,atk,hp,atkLength,moveSpeed,typeRole,moveCount,moveImg,atkCount,atkImg,idleCount,idleImg,dieCount,dieImg,bulletCount,bulletImg,bulletExplodeCount,bulletExplodeImg
 ,number,string,number,number,number,number,string,number,string,number,string,number,string,number,string,number,string,number,string
-Role1,1,Role1,35,400,140,40,water,8,Role1_move_,8,Role1_attack_,8,Role1_idle_,9,Die,1,bullet1_,9,burst5_
-Role2,2,Role2,40,520,135,35,fire,8,Role2_move_,8,Role2_attack_,8,Role2_idle_,9,Die,1,bullet2_,8,burst2_
-Role3,3,Role3,32,480,147,30,wind,8,Role3_move_,8,Role3_attack_,8,Role3_idle_,9,Die,2,bullet3_,5,burst7_
+Role1,1,Role1,35,400,140,40,water,8,Role1_move_,8,Role1_attack_,8,Role1_idle_,9,Die,4,bullet1_,5,burst3_
+Role2,2,Role2,40,520,135,35,fire,8,Role2_move_,8,Role2_attack_,8,Role2_idle_,9,Die,3,bullet2_,8,burst2_
+Role3,3,Role3,32,480,147,30,wind,8,Role3_move_,8,Role3_attack_,8,Role3_idle_,9,Die,3,bullet3_,5,burst7_
 Role4,4,Role4,25,500,150,38,fire,8,Role4_move_,8,Role4_attack_,8,Role4_idle_,9,Die,1,bullet4_,10,burst6_
 Role5,5,Role5,32,600,145,42,water,8,Role5_move_,8,Role5_attack_,8,Role5_idle_,9,Die,1,bullet5_,6,burst9_
-Role6,6,Role6,28,489,145,40,dark,8,Role6_move_,8,Role6_attack_,8,Role6_idle_,9,Die,1,bullet6_,5,burst7_
-Role7,7,Role7,41,512,157,37,light,8,Role7_move_,8,Role7_attack_,8,Role7_idle_,9,Die,4,bullet7_,11,burst10_
+Role6,6,Role6,28,489,145,40,dark,8,Role6_move_,8,Role6_attack_,8,Role6_idle_,9,Die,4,bullet6_,5,burst7_
+Role7,7,Role7,41,512,157,37,light,8,Role7_move_,8,Role7_attack_,8,Role7_idle_,9,Die,3,bullet7_,11,burst10_
 Role8,8,Role8,100,500,140,41,dark,8,Role8_move_,8,Role8_attack_,8,Role8_idle_,9,Die,3,bullet8_,6,burst9_
-Role9,9,Role9,120,600,140,20,dark,8,Role9_move_,8,Role9_attack_,8,Role9_idle_,9,Die,11,bullet9_,1,burst1_
+Role9,9,Role9,120,600,140,20,dark,8,Role9_move_,8,Role9_attack_,8,Role9_idle_,9,Die,11,bullet9_,17,burst1_
 Role10,10,Role10,70,700,130,30,dark,8,Role10_move_,8,Role10_attack_,8,Role10_idle_,9,Die,3,bullet8_,6,burst9_
-Role11,11,Role11,80,560,120,25,dark,8,Role11_move_,8,Role11_attack_,8,Role11_idle_,9,Die,2,bullet3_,5,burst7_
+Role11,11,Role11,80,560,120,25,dark,8,Role11_move_,8,Role11_attack_,8,Role11_idle_,9,Die,3,bullet3_,5,burst7_
 Role12,12,Role12,90,645,160,20,dark,8,Role12_move_,8,Role12_attack_,8,Role12_idle_,9,Die,3,bullet8_,6,burst9_
-Role13,13,Role13,60,850,145,30,dark,8,Role13_move_,8,Role13_attack_,8,Role13_idle_,9,Die,11,bullet9_,8,burst4_
+Role13,13,Role13,60,850,145,30,dark,8,Role13_move_,8,Role13_attack_,8,Role13_idle_,9,Die,3,bullet10_,6,burst8_
 Role14,14,Role14,75,750,140,50,dark,8,Role14_move_,8,Role14_attack_,8,Role14_idle_,9,Die,1,bullet5_,6,burst9_

+ 194 - 51
assets/resources/Res/Bullet/bullet0.plist

@@ -4,23 +4,101 @@
     <dict>
         <key>frames</key>
         <dict>
+            <key>bullet10_ (1).png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{164,179},{78,43}}</string>
+                <key>offset</key>
+                <string>{0,0}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{0,0},{78,43}}</string>
+                <key>sourceSize</key>
+                <string>{78,43}</string>
+            </dict>
+            <key>bullet10_ (2).png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{2,258},{77,43}}</string>
+                <key>offset</key>
+                <string>{0,0}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{0,0},{77,43}}</string>
+                <key>sourceSize</key>
+                <string>{77,43}</string>
+            </dict>
+            <key>bullet10_ (3).png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{162,256},{77,47}}</string>
+                <key>offset</key>
+                <string>{0,0}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{0,0},{77,47}}</string>
+                <key>sourceSize</key>
+                <string>{77,47}</string>
+            </dict>
             <key>bullet1_ (1).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{164,94},{78,13}}</string>
+                <string>{{166,2},{80,53}}</string>
+                <key>offset</key>
+                <string>{0,0}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{0,0},{80,53}}</string>
+                <key>sourceSize</key>
+                <string>{80,53}</string>
+            </dict>
+            <key>bullet1_ (2).png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{2,2},{80,56}}</string>
                 <key>offset</key>
                 <string>{0,0}</string>
                 <key>rotated</key>
                 <false/>
                 <key>sourceColorRect</key>
-                <string>{{0,0},{78,13}}</string>
+                <string>{{0,0},{80,56}}</string>
                 <key>sourceSize</key>
-                <string>{78,13}</string>
+                <string>{80,56}</string>
+            </dict>
+            <key>bullet1_ (3).png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{84,2},{80,53}}</string>
+                <key>offset</key>
+                <string>{0,0}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{0,0},{80,53}}</string>
+                <key>sourceSize</key>
+                <string>{80,53}</string>
+            </dict>
+            <key>bullet1_ (4).png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{2,60},{80,52}}</string>
+                <key>offset</key>
+                <string>{0,0}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{0,0},{80,52}}</string>
+                <key>sourceSize</key>
+                <string>{80,52}</string>
             </dict>
             <key>bullet2_ (1).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{2,116},{76,46}}</string>
+                <string>{{2,303},{76,46}}</string>
                 <key>offset</key>
                 <string>{1,0}</string>
                 <key>rotated</key>
@@ -30,10 +108,10 @@
                 <key>sourceSize</key>
                 <string>{80,46}</string>
             </dict>
-            <key>bullet3_ (1).png</key>
+            <key>bullet2_ (2).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{82,102},{76,46}}</string>
+                <string>{{81,258},{76,46}}</string>
                 <key>offset</key>
                 <string>{1,0}</string>
                 <key>rotated</key>
@@ -43,10 +121,10 @@
                 <key>sourceSize</key>
                 <string>{80,46}</string>
             </dict>
-            <key>bullet3_ (2).png</key>
+            <key>bullet2_ (3).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{2,116},{76,46}}</string>
+                <string>{{2,303},{76,46}}</string>
                 <key>offset</key>
                 <string>{1,0}</string>
                 <key>rotated</key>
@@ -56,10 +134,49 @@
                 <key>sourceSize</key>
                 <string>{80,46}</string>
             </dict>
+            <key>bullet3_ (1).png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{82,227},{78,29}}</string>
+                <key>offset</key>
+                <string>{0,0}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{0,0},{78,29}}</string>
+                <key>sourceSize</key>
+                <string>{78,29}</string>
+            </dict>
+            <key>bullet3_ (2).png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{2,227},{78,29}}</string>
+                <key>offset</key>
+                <string>{0,0}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{0,0},{78,29}}</string>
+                <key>sourceSize</key>
+                <string>{78,29}</string>
+            </dict>
+            <key>bullet3_ (3).png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{166,146},{79,31}}</string>
+                <key>offset</key>
+                <string>{0,0}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{0,0},{79,31}}</string>
+                <key>sourceSize</key>
+                <string>{79,31}</string>
+            </dict>
             <key>bullet4_ (1).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{166,49},{80,11}}</string>
+                <string>{{84,145},{80,11}}</string>
                 <key>offset</key>
                 <string>{0,0}</string>
                 <key>rotated</key>
@@ -72,7 +189,7 @@
             <key>bullet5_ (1).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{84,49},{80,11}}</string>
+                <string>{{2,142},{80,11}}</string>
                 <key>offset</key>
                 <string>{0,0}</string>
                 <key>rotated</key>
@@ -85,72 +202,98 @@
             <key>bullet6_ (1).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{160,109},{76,11}}</string>
+                <string>{{2,155},{79,36}}</string>
                 <key>offset</key>
                 <string>{0,0}</string>
                 <key>rotated</key>
                 <false/>
                 <key>sourceColorRect</key>
-                <string>{{2,7},{76,11}}</string>
+                <string>{{0,0},{79,36}}</string>
                 <key>sourceSize</key>
-                <string>{80,25}</string>
+                <string>{79,36}</string>
             </dict>
-            <key>bullet7_ (1).png</key>
+            <key>bullet6_ (2).png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{166,57},{80,46}}</string>
+                <key>offset</key>
+                <string>{0,0}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{0,0},{80,46}}</string>
+                <key>sourceSize</key>
+                <string>{80,46}</string>
+            </dict>
+            <key>bullet6_ (3).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{166,2},{80,45}}</string>
+                <string>{{166,105},{80,39}}</string>
                 <key>offset</key>
-                <string>{0,1}</string>
+                <string>{0,0}</string>
                 <key>rotated</key>
                 <false/>
                 <key>sourceColorRect</key>
-                <string>{{0,4},{80,45}}</string>
+                <string>{{0,0},{80,39}}</string>
                 <key>sourceSize</key>
-                <string>{80,55}</string>
+                <string>{80,39}</string>
             </dict>
-            <key>bullet7_ (2).png</key>
+            <key>bullet6_ (4).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{84,2},{80,45}}</string>
+                <string>{{84,57},{80,52}}</string>
                 <key>offset</key>
-                <string>{0,1}</string>
+                <string>{0,0}</string>
                 <key>rotated</key>
                 <false/>
                 <key>sourceColorRect</key>
-                <string>{{0,4},{80,45}}</string>
+                <string>{{0,0},{80,52}}</string>
                 <key>sourceSize</key>
-                <string>{80,55}</string>
+                <string>{80,52}</string>
             </dict>
-            <key>bullet7_ (3).png</key>
+            <key>bullet7_ (1).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{2,2},{80,45}}</string>
+                <string>{{84,111},{80,32}}</string>
                 <key>offset</key>
-                <string>{0,1}</string>
+                <string>{0,0}</string>
                 <key>rotated</key>
                 <false/>
                 <key>sourceColorRect</key>
-                <string>{{0,4},{80,45}}</string>
+                <string>{{0,0},{80,32}}</string>
                 <key>sourceSize</key>
-                <string>{80,55}</string>
+                <string>{80,32}</string>
             </dict>
-            <key>bullet7_ (4).png</key>
+            <key>bullet7_ (2).png</key>
+            <dict>
+                <key>frame</key>
+                <string>{{2,114},{80,26}}</string>
+                <key>offset</key>
+                <string>{0,0}</string>
+                <key>rotated</key>
+                <false/>
+                <key>sourceColorRect</key>
+                <string>{{0,0},{80,26}}</string>
+                <key>sourceSize</key>
+                <string>{80,26}</string>
+            </dict>
+            <key>bullet7_ (3).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{2,49},{80,31}}</string>
+                <string>{{83,158},{79,27}}</string>
                 <key>offset</key>
                 <string>{0,0}</string>
                 <key>rotated</key>
                 <false/>
                 <key>sourceColorRect</key>
-                <string>{{0,0},{80,31}}</string>
+                <string>{{0,0},{79,27}}</string>
                 <key>sourceSize</key>
-                <string>{80,31}</string>
+                <string>{79,27}</string>
             </dict>
             <key>bullet8_ (1).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{164,62},{78,30}}</string>
+                <string>{{163,224},{78,30}}</string>
                 <key>offset</key>
                 <string>{-1,0}</string>
                 <key>rotated</key>
@@ -163,20 +306,20 @@
             <key>bullet8_ (2).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{84,62},{78,38}}</string>
+                <string>{{83,187},{78,38}}</string>
                 <key>offset</key>
-                <string>{-1,0}</string>
+                <string>{0,0}</string>
                 <key>rotated</key>
                 <false/>
                 <key>sourceColorRect</key>
                 <string>{{0,0},{78,38}}</string>
                 <key>sourceSize</key>
-                <string>{80,38}</string>
+                <string>{78,38}</string>
             </dict>
             <key>bullet8_ (3).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{2,82},{78,32}}</string>
+                <string>{{2,193},{78,32}}</string>
                 <key>offset</key>
                 <string>{-1,1}</string>
                 <key>rotated</key>
@@ -189,7 +332,7 @@
             <key>bullet9_ (1).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{220,122},{42,29}}</string>
+                <string>{{219,305},{42,29}}</string>
                 <key>offset</key>
                 <string>{14,0}</string>
                 <key>rotated</key>
@@ -202,7 +345,7 @@
             <key>bullet9_ (10).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{62,191},{54,39}}</string>
+                <string>{{138,387},{54,39}}</string>
                 <key>offset</key>
                 <string>{12,0}</string>
                 <key>rotated</key>
@@ -215,7 +358,7 @@
             <key>bullet9_ (11).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{198,166},{54,39}}</string>
+                <string>{{200,349},{54,39}}</string>
                 <key>offset</key>
                 <string>{12,0}</string>
                 <key>rotated</key>
@@ -228,7 +371,7 @@
             <key>bullet9_ (2).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{2,246},{48,41}}</string>
+                <string>{{2,392},{48,41}}</string>
                 <key>offset</key>
                 <string>{14,0}</string>
                 <key>rotated</key>
@@ -241,7 +384,7 @@
             <key>bullet9_ (3).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{2,164},{58,39}}</string>
+                <string>{{140,346},{58,39}}</string>
                 <key>offset</key>
                 <string>{10,0}</string>
                 <key>rotated</key>
@@ -254,7 +397,7 @@
             <key>bullet9_ (4).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{80,150},{58,39}}</string>
+                <string>{{80,306},{58,39}}</string>
                 <key>offset</key>
                 <string>{10,0}</string>
                 <key>rotated</key>
@@ -267,7 +410,7 @@
             <key>bullet9_ (5).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{160,122},{58,39}}</string>
+                <string>{{159,305},{58,39}}</string>
                 <key>offset</key>
                 <string>{10,0}</string>
                 <key>rotated</key>
@@ -280,7 +423,7 @@
             <key>bullet9_ (6).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{58,232},{52,39}}</string>
+                <string>{{58,388},{52,39}}</string>
                 <key>offset</key>
                 <string>{13,0}</string>
                 <key>rotated</key>
@@ -293,7 +436,7 @@
             <key>bullet9_ (7).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{118,204},{54,39}}</string>
+                <string>{{2,351},{54,39}}</string>
                 <key>offset</key>
                 <string>{12,0}</string>
                 <key>rotated</key>
@@ -306,7 +449,7 @@
             <key>bullet9_ (8).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{2,205},{54,39}}</string>
+                <string>{{194,390},{54,39}}</string>
                 <key>offset</key>
                 <string>{12,0}</string>
                 <key>rotated</key>
@@ -319,7 +462,7 @@
             <key>bullet9_ (9).png</key>
             <dict>
                 <key>frame</key>
-                <string>{{140,163},{56,39}}</string>
+                <string>{{80,347},{56,39}}</string>
                 <key>offset</key>
                 <string>{11,0}</string>
                 <key>rotated</key>
@@ -335,13 +478,13 @@
             <key>format</key>
             <integer>2</integer>
             <key>realTextureFileName</key>
-            <string>bullet0.plist.png</string>
+            <string>bullet0.png</string>
             <key>size</key>
             <string>{256,512}</string>
             <key>smartupdate</key>
-            <string>$TexturePacker:SmartUpdate:152974c443542d08dd034af92aec1f01$</string>
+            <string>$TexturePacker:SmartUpdate:e0a7e035e887bdde078cf6fc85a22982$</string>
             <key>textureFileName</key>
-            <string>bullet0.plist.png</string>
+            <string>bullet0.png</string>
         </dict>
     </dict>
 </plist>

File diff suppressed because it is too large
+ 604 - 98
assets/resources/Res/Bullet/bullet0.plist.meta


BIN
assets/resources/Res/Bullet/bullet0.plist.png


+ 0 - 134
assets/resources/Res/Bullet/bullet0.plist.png.meta

@@ -1,134 +0,0 @@
-{
-  "ver": "1.0.26",
-  "importer": "image",
-  "imported": true,
-  "uuid": "533c6bbf-35d0-4e27-bbb9-98d1ab647887",
-  "files": [
-    ".json",
-    ".png"
-  ],
-  "subMetas": {
-    "6c48a": {
-      "importer": "texture",
-      "uuid": "533c6bbf-35d0-4e27-bbb9-98d1ab647887@6c48a",
-      "displayName": "bullet0.plist",
-      "id": "6c48a",
-      "name": "texture",
-      "userData": {
-        "wrapModeS": "clamp-to-edge",
-        "wrapModeT": "clamp-to-edge",
-        "imageUuidOrDatabaseUri": "533c6bbf-35d0-4e27-bbb9-98d1ab647887",
-        "isUuid": true,
-        "visible": false,
-        "minfilter": "linear",
-        "magfilter": "linear",
-        "mipfilter": "none",
-        "anisotropy": 0
-      },
-      "ver": "1.0.22",
-      "imported": true,
-      "files": [
-        ".json"
-      ],
-      "subMetas": {}
-    },
-    "f9941": {
-      "importer": "sprite-frame",
-      "uuid": "533c6bbf-35d0-4e27-bbb9-98d1ab647887@f9941",
-      "displayName": "bullet0.plist",
-      "id": "f9941",
-      "name": "spriteFrame",
-      "userData": {
-        "trimType": "auto",
-        "trimThreshold": 1,
-        "rotated": false,
-        "offsetX": -1,
-        "offsetY": 111,
-        "trimX": 2,
-        "trimY": 3,
-        "width": 250,
-        "height": 284,
-        "rawWidth": 256,
-        "rawHeight": 512,
-        "borderTop": 0,
-        "borderBottom": 0,
-        "borderLeft": 0,
-        "borderRight": 0,
-        "packable": true,
-        "pixelsToUnit": 100,
-        "pivotX": 0.5,
-        "pivotY": 0.5,
-        "meshType": 0,
-        "vertices": {
-          "rawPosition": [
-            -125,
-            -142,
-            0,
-            125,
-            -142,
-            0,
-            -125,
-            142,
-            0,
-            125,
-            142,
-            0
-          ],
-          "indexes": [
-            0,
-            1,
-            2,
-            2,
-            1,
-            3
-          ],
-          "uv": [
-            2,
-            509,
-            252,
-            509,
-            2,
-            225,
-            252,
-            225
-          ],
-          "nuv": [
-            0.0078125,
-            0.439453125,
-            0.984375,
-            0.439453125,
-            0.0078125,
-            0.994140625,
-            0.984375,
-            0.994140625
-          ],
-          "minPos": [
-            -125,
-            -142,
-            0
-          ],
-          "maxPos": [
-            125,
-            142,
-            0
-          ]
-        },
-        "isUuid": true,
-        "imageUuidOrDatabaseUri": "533c6bbf-35d0-4e27-bbb9-98d1ab647887@6c48a",
-        "atlasUuid": ""
-      },
-      "ver": "1.0.12",
-      "imported": true,
-      "files": [
-        ".json"
-      ],
-      "subMetas": {}
-    }
-  },
-  "userData": {
-    "type": "sprite-frame",
-    "hasAlpha": true,
-    "fixAlphaTransparencyArtifacts": false,
-    "redirect": "533c6bbf-35d0-4e27-bbb9-98d1ab647887@f9941"
-  }
-}

BIN
assets/resources/Res/Bullet/bullet0.png


+ 38 - 38
assets/resources/Res/Bullet/bullet0.png.meta

@@ -2,7 +2,7 @@
   "ver": "1.0.26",
   "importer": "image",
   "imported": true,
-  "uuid": "75a17464-42da-43d4-beb1-8b7b8247ac6c",
+  "uuid": "dd8a7890-2207-4619-b729-e2ddec4365a8",
   "files": [
     ".json",
     ".png"
@@ -10,14 +10,14 @@
   "subMetas": {
     "6c48a": {
       "importer": "texture",
-      "uuid": "75a17464-42da-43d4-beb1-8b7b8247ac6c@6c48a",
+      "uuid": "dd8a7890-2207-4619-b729-e2ddec4365a8@6c48a",
       "displayName": "bullet0",
       "id": "6c48a",
       "name": "texture",
       "userData": {
         "wrapModeS": "clamp-to-edge",
         "wrapModeT": "clamp-to-edge",
-        "imageUuidOrDatabaseUri": "75a17464-42da-43d4-beb1-8b7b8247ac6c",
+        "imageUuidOrDatabaseUri": "dd8a7890-2207-4619-b729-e2ddec4365a8",
         "isUuid": true,
         "visible": false,
         "minfilter": "linear",
@@ -34,7 +34,7 @@
     },
     "f9941": {
       "importer": "sprite-frame",
-      "uuid": "75a17464-42da-43d4-beb1-8b7b8247ac6c@f9941",
+      "uuid": "dd8a7890-2207-4619-b729-e2ddec4365a8@f9941",
       "displayName": "bullet0",
       "id": "f9941",
       "name": "spriteFrame",
@@ -42,14 +42,14 @@
         "trimType": "auto",
         "trimThreshold": 1,
         "rotated": false,
-        "offsetX": -10,
-        "offsetY": 97.5,
+        "offsetX": 0,
+        "offsetY": 38.5,
         "trimX": 2,
         "trimY": 2,
-        "width": 1000,
-        "height": 825,
-        "rawWidth": 1024,
-        "rawHeight": 1024,
+        "width": 252,
+        "height": 431,
+        "rawWidth": 256,
+        "rawHeight": 512,
         "borderTop": 0,
         "borderBottom": 0,
         "borderLeft": 0,
@@ -61,17 +61,17 @@
         "meshType": 0,
         "vertices": {
           "rawPosition": [
-            -500,
-            -412.5,
+            -126,
+            -215.5,
             0,
-            500,
-            -412.5,
+            126,
+            -215.5,
             0,
-            -500,
-            412.5,
+            -126,
+            215.5,
             0,
-            500,
-            412.5,
+            126,
+            215.5,
             0
           ],
           "indexes": [
@@ -84,37 +84,37 @@
           ],
           "uv": [
             2,
-            1022,
-            1002,
-            1022,
+            510,
+            254,
+            510,
             2,
-            197,
-            1002,
-            197
+            79,
+            254,
+            79
           ],
           "nuv": [
-            0.001953125,
-            0.1923828125,
-            0.978515625,
-            0.1923828125,
-            0.001953125,
-            0.998046875,
-            0.978515625,
-            0.998046875
+            0.0078125,
+            0.154296875,
+            0.9921875,
+            0.154296875,
+            0.0078125,
+            0.99609375,
+            0.9921875,
+            0.99609375
           ],
           "minPos": [
-            -500,
-            -412.5,
+            -126,
+            -215.5,
             0
           ],
           "maxPos": [
-            500,
-            412.5,
+            126,
+            215.5,
             0
           ]
         },
         "isUuid": true,
-        "imageUuidOrDatabaseUri": "75a17464-42da-43d4-beb1-8b7b8247ac6c@6c48a",
+        "imageUuidOrDatabaseUri": "dd8a7890-2207-4619-b729-e2ddec4365a8@6c48a",
         "atlasUuid": ""
       },
       "ver": "1.0.12",
@@ -129,6 +129,6 @@
     "type": "sprite-frame",
     "hasAlpha": true,
     "fixAlphaTransparencyArtifacts": false,
-    "redirect": "75a17464-42da-43d4-beb1-8b7b8247ac6c@f9941"
+    "redirect": "dd8a7890-2207-4619-b729-e2ddec4365a8@f9941"
   }
 }

+ 1 - 1
assets/resources/Res/Prefab/Bullet.prefab

@@ -82,7 +82,7 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 50,
+      "width": 52,
       "height": 50
     },
     "_anchorPoint": {

+ 1 - 1
assets/resources/Res/Prefab/BulletEnemy.prefab

@@ -82,7 +82,7 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 50,
+      "width": 52,
       "height": 50
     },
     "_anchorPoint": {

+ 22 - 1
assets/resources/Res/Prefab/Enemy.prefab

@@ -41,10 +41,13 @@
       },
       {
         "__id__": 28
+      },
+      {
+        "__id__": 30
       }
     ],
     "_prefab": {
-      "__id__": 30
+      "__id__": 32
     },
     "_lpos": {
       "__type__": "cc.Vec3",
@@ -595,6 +598,24 @@
     "__type__": "cc.CompPrefabInfo",
     "fileId": "e11Et9fGtLXLhecJRlqS0a"
   },
+  {
+    "__type__": "8f090OO4LJMJoL732uK4OzV",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 31
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "47V0WVpUdJ5Z5bXnSOlSeK"
+  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {

+ 22 - 1
assets/resources/Res/Prefab/Role.prefab

@@ -41,10 +41,13 @@
       },
       {
         "__id__": 28
+      },
+      {
+        "__id__": 30
       }
     ],
     "_prefab": {
-      "__id__": 30
+      "__id__": 32
     },
     "_lpos": {
       "__type__": "cc.Vec3",
@@ -595,6 +598,24 @@
     "__type__": "cc.CompPrefabInfo",
     "fileId": "b2C9TP2ORK2be+j8GrzixV"
   },
+  {
+    "__type__": "8f090OO4LJMJoL732uK4OzV",
+    "_name": "",
+    "_objFlags": 0,
+    "__editorExtras__": {},
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "__prefab": {
+      "__id__": 31
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.CompPrefabInfo",
+    "fileId": "dbzKv0/3FLyr56XvBhgk7y"
+  },
   {
     "__type__": "cc.PrefabInfo",
     "root": {

Some files were not shown because too many files changed in this diff