Просмотр исходного кода

更改了attackcontroller模式,新增士兵起手式连段,修复spine自动化工具的bug

WGL 2 месяцев назад
Родитель
Сommit
fb33cdee27
47 измененных файлов с 1415 добавлено и 2796 удалено
  1. 10 18
      ActionTowerDefense/Assets/Editor/SkeletonDataReader.cs
  2. 48 112
      ActionTowerDefense/Assets/Resources/Prefab/ESpirits/ESpirits_Assassin.prefab
  3. 40 101
      ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1001.prefab
  4. 52 113
      ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1002.prefab
  5. 54 114
      ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1003.prefab
  6. 41 105
      ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1004.prefab
  7. 42 109
      ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1005.prefab
  8. 42 103
      ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1006.prefab
  9. 46 113
      ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1007.prefab
  10. 45 175
      ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1013Old.prefab
  11. 54 123
      ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1014.prefab
  12. 30 84
      ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_LeafGhost.prefab
  13. 51 110
      ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_Monkey.prefab
  14. 36 90
      ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_Polliwog.prefab
  15. 66 126
      ActionTowerDefense/Assets/Resources/Prefab/MySoldier/Demonic_Arrow.prefab
  16. 43 107
      ActionTowerDefense/Assets/Resources/Prefab/MySoldier/Demonic_Giant.prefab
  17. 209 264
      ActionTowerDefense/Assets/Resources/Prefab/MySoldier/Demonic_Sword.prefab
  18. 42 107
      ActionTowerDefense/Assets/Resources/Prefab/MySoldier/Spirits_Assassin.prefab
  19. 20 141
      ActionTowerDefense/Assets/Resources/Prefab/Player.prefab
  20. 40 75
      ActionTowerDefense/Assets/Resources/Prefab/Tower/EnemyTower.prefab
  21. 40 75
      ActionTowerDefense/Assets/Resources/Prefab/Tower/Tower.prefab
  22. BIN
      ActionTowerDefense/Assets/Resources/Spine/FlySword/FlySword.skel.bytes
  23. 14 7
      ActionTowerDefense/Assets/Resources/Spine/FlySword/FlySword_SkeletonData_Controller.controller
  24. 4 4
      ActionTowerDefense/Assets/Resources/Spine/Soldier_shield/soldier_shiled_SkeletonData_Controller.controller
  25. 12 12
      ActionTowerDefense/Assets/Resources/Spine/Soldier_spear/Soldier_spear_SkeletonData_Controller.controller
  26. 2 2
      ActionTowerDefense/Assets/Scripts/Boss/YuMenGuan/YuMenGuan.cs
  27. 19 31
      ActionTowerDefense/Assets/Scripts/Bullet.cs
  28. 3 2
      ActionTowerDefense/Assets/Scripts/Bullet_Ray.cs
  29. 104 160
      ActionTowerDefense/Assets/Scripts/Characters/AttackController.cs
  30. 14 12
      ActionTowerDefense/Assets/Scripts/Characters/AttackTrigger.cs
  31. 18 5
      ActionTowerDefense/Assets/Scripts/Characters/Character.cs
  32. 13 48
      ActionTowerDefense/Assets/Scripts/Characters/Demonic.cs
  33. 12 12
      ActionTowerDefense/Assets/Scripts/Characters/Enemy.cs
  34. 1 2
      ActionTowerDefense/Assets/Scripts/Characters/Monkey.cs
  35. 8 1
      ActionTowerDefense/Assets/Scripts/Characters/MoveCharacter.cs
  36. 44 53
      ActionTowerDefense/Assets/Scripts/Characters/PlayerController.cs
  37. 4 4
      ActionTowerDefense/Assets/Scripts/Characters/Polliwog.cs
  38. 0 3
      ActionTowerDefense/Assets/Scripts/Characters/SearchTrigger.cs
  39. 60 18
      ActionTowerDefense/Assets/Scripts/Characters/SoldierBuff.cs
  40. 1 1
      ActionTowerDefense/Assets/Scripts/Conduct/FanFlyingSwords.cs
  41. 12 14
      ActionTowerDefense/Assets/Scripts/EnemyCreater.cs
  42. 2 3
      ActionTowerDefense/Assets/Scripts/SpecialEnemies/Enemy_Leafghost.cs
  43. 1 2
      ActionTowerDefense/Assets/Scripts/Spirits/ESpirits_Assassin.cs
  44. 1 1
      ActionTowerDefense/Assets/Scripts/Spirits/SmokeDestroy.cs
  45. 1 22
      ActionTowerDefense/Assets/Scripts/Spirits/Spirits_Assassin.cs
  46. 7 6
      ActionTowerDefense/Assets/Scripts/Tower/EnemyTower.cs
  47. 7 6
      ActionTowerDefense/Assets/Scripts/Tower/Tower.cs

+ 10 - 18
ActionTowerDefense/Assets/Editor/SkeletonDataReader.cs

@@ -160,9 +160,7 @@ public class SkeletonDataMonitor
         }
     }
 
-    static Character cha;
     static SkeletonMecanim skeletonMecanim;
-    static AttackController attack;
 
     private static void WriteData(string path)
     {
@@ -170,8 +168,6 @@ public class SkeletonDataMonitor
         GameObject prefabInstance = PrefabUtility.InstantiatePrefab(prefab) as GameObject;
         try
         {
-            cha = prefabInstance.GetComponent<Character>();
-            attack = prefabInstance.GetComponent<AttackController>();
             ReadData(prefabInstance);
             PrefabUtility.SaveAsPrefabAsset(prefabInstance, path);
             UnityEngine.Object.DestroyImmediate(prefabInstance);
@@ -188,6 +184,8 @@ public class SkeletonDataMonitor
 
     static void ReadData(GameObject prefab)
     {
+        Character cha = prefab.GetComponent<Character>();
+        AttackController attack = prefab.GetComponent<AttackController>();
         skeletonMecanim = prefab.GetComponentInChildren<SkeletonMecanim>();
         if (skeletonMecanim == null)
         {
@@ -217,33 +215,26 @@ public class SkeletonDataMonitor
         {
             string animationName = animation.Name;
             float animationDuration = animation.Duration;
+            AttackController.SpineAniKey sak = new();
             Debug.Log($"¶¯»­Ãû³Æ: {animationName}, ¶¯»­Ê±³¤: {animationDuration}");
             if (animationName == "die")
             {
                 cha.totalDieKeepTime = animationDuration;
-                Debug.Log(animationDuration);
             }
-            else if (animationName == "attack_summon")
-            {
-                cha.totalAttack_summonTime = animationDuration;
-            }
-            else if (animationName == "attack_march")
-            {
-                cha.totalAttack_marchTime = animationDuration;
-            }
-
-            AttackController.SpineAniKey sak;
+            sak.totalTime = animationDuration;
             sak.aniName = animationName;
             sak.keys = new List<AttackController.AttackKeyType>();
-            AttackController.AttackKeyType akt = new AttackController.AttackKeyType();
+            
             bool isStarKey = true;
             int canWrite = 0;
             foreach(var timeline in animation.Timelines)
             {
                 if(timeline is EventTimeline eventTimeline)
                 {
-                    foreach(var eventFrame in eventTimeline.Events)
+                    AttackController.AttackKeyType akt = new AttackController.AttackKeyType();
+                    foreach (var eventFrame in eventTimeline.Events)
                     {
+                        
                         string eventName = eventFrame.ToString();
                         float eventTime = eventFrame.Time;
                         if (isStarKey)
@@ -259,6 +250,8 @@ public class SkeletonDataMonitor
                             akt.endKeyTime = eventTime;
                             akt.endType = AttackController.KeyType.AttackEnd;
                             canWrite = 2;
+                            sak.keys.Add(akt);
+                            akt = new AttackController.AttackKeyType();
                         }
                         isStarKey = !isStarKey;
                     }
@@ -266,7 +259,6 @@ public class SkeletonDataMonitor
             }
             if (canWrite == 2)
             {
-                sak.keys.Add(akt);
                 attack.attackKeys.Add(sak);
             }
         }

+ 48 - 112
ActionTowerDefense/Assets/Resources/Prefab/ESpirits/ESpirits_Assassin.prefab

@@ -191,103 +191,22 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.20000002
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.3
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.33333334
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 0
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    effect: {fileID: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 2280520615464243483, guid: 3b6c8ff3bb6416c41952c448dc6aeb1d, type: 3}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 0}
-  shootPos: []
-  shootTrack: 0
-  shootAlwaysTrack: 0
-  targetTypes: 010000000300000002000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: "\u666E\u653B"
+  targetTypes: 010000000200000003000000
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon:
+  - attackName: attack_summon
     attackType: 0
     attackInfo:
       attackValue: 0
-      damage: 10
+      damage: 0
       attackDir: {x: 0, y: 0, z: 0}
-      effect: {fileID: 0}
+      effect: {fileID: 7473170563405908938, guid: 8ad3c225050205945b10657aa300afd6, type: 3}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -328,14 +247,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
-    attackTrigger: {fileID: 4347565098670608659}
+    attackTrigger: {fileID: 5076973120259515033}
+    needToChange: 0
     attackDistance: 1
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 010000000300000002000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -345,15 +262,16 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
-  - id: 2
-    attackName: "\u51B2\u523A"
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 0
     attackInfo:
       attackValue: 0
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
-      effect: {fileID: 7473170563405908938, guid: 8ad3c225050205945b10657aa300afd6, type: 3}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -394,14 +312,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
-    attackTrigger: {fileID: 5076973120259515033}
+    attackTrigger: {fileID: 4347565098670608659}
+    needToChange: 0
     attackDistance: 1
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 010000000300000002000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -412,7 +328,6 @@ MonoBehaviour:
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
@@ -421,6 +336,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -461,14 +377,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -478,6 +392,32 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.20000002
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.3
+    totalTime: 0.9666667
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.33333334
+    totalTime: 1.3333334
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!114 &1225144601598538046
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -503,8 +443,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 0}
   ani: {fileID: 6496896669866891404}
   totalDieKeepTime: 0
-  totalAttack_summonTime: 1.3333334
-  totalAttack_marchTime: 0.9666667
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -942,7 +880,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -953,6 +890,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -993,7 +931,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -1209,7 +1146,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -1220,6 +1156,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 7473170563405908938, guid: 8ad3c225050205945b10657aa300afd6, type: 3}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1260,7 +1197,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -1495,6 +1431,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1535,7 +1472,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
@@ -1581,6 +1517,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1621,7 +1558,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0

+ 40 - 101
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1001.prefab

@@ -170,7 +170,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 1
   cantSingleAttack: 0
@@ -181,6 +180,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -221,7 +221,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -289,8 +288,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 2459340336965010942}
   ani: {fileID: 6496896669866891404}
   totalDieKeepTime: 1
-  totalAttack_summonTime: 1.8333334
-  totalAttack_marchTime: 1.8333334
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -405,103 +402,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 1.1
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 1.3333334
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 1.1
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 1.3333334
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 0
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    effect: {fileID: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 2280520615464243483}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 0}
-  shootPos: []
-  shootTrack: 0
-  shootAlwaysTrack: 0
-  targetTypes: 010000000300000002000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: "\u5934\u69CC"
+  targetTypes: 010000000200000003000000
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 0
     attackInfo:
       attackValue: 0
-      damage: 30
+      damage: 0
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -542,14 +459,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 2280520615464243483}
+    needToChange: 0
     attackDistance: 1
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 010000000300000002000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -560,7 +475,6 @@ MonoBehaviour:
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
@@ -569,6 +483,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -609,14 +524,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -626,6 +539,32 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 1.1
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 1.3333334
+    totalTime: 1.8333334
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 1.1
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 1.3333334
+    totalTime: 1.8333334
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!54 &2437299196472462355
 Rigidbody:
   m_ObjectHideFlags: 0
@@ -957,6 +896,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -997,7 +937,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
@@ -1043,6 +982,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1083,7 +1023,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0

+ 52 - 113
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1002.prefab

@@ -170,7 +170,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -179,7 +178,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -220,7 +221,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -288,8 +288,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 2459340336965010942}
   ani: {fileID: 6496896669866891404}
   totalDieKeepTime: 1
-  totalAttack_summonTime: 1.8333
-  totalAttack_marchTime: 1.8333
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -306,6 +304,7 @@ MonoBehaviour:
   totalHp: 40
   hp: 0
   canFly: 0
+  canControlFly: 0
   nowCanFly: 0
   canNotShotDown: 1
   canNotAddForce: 0
@@ -386,20 +385,11 @@ MonoBehaviour:
   type: -1
   searchState: 0
   attackRatio: 0
+  len: 0
   dropSoulMax: 2
   dropSoulMin: 2
   dropProbability: 100
   dropSoulAngle: 90
-  canEscape: 0
-  stopEscapeCD: 0
-  escapeSpeed: 0
-  distanceToTowerDeviation: 0
-  distanceToTowerBase: 0
-  distanceToEnemyDeviation: 0
-  distanceToEnemyBase: 0
-  canClimb: 0
-  pathCreator: {fileID: 0}
-  climbSpeed: 0
 --- !u!54 &2437299196472462355
 Rigidbody:
   m_ObjectHideFlags: 0
@@ -428,101 +418,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_fire_on
-      startKeyTime: 1
-      endType: 1
-      endKeyName: attack_fire_off
-      endKeyTime: 1.6333
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_fire_on
-      startKeyTime: 1
-      endType: 1
-      endKeyName: attack_fire_off
-      endKeyTime: 1.6333
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 0
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 2280520615464243483}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 0}
-  shootPos: []
-  shootTrack: 0
-  shootAlwaysTrack: 0
-  targetTypes: 010000000300000002000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: "\u55B7\u706B"
+  targetTypes: 010000000200000003000000
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 0
     attackInfo:
       attackValue: 0
-      damage: 5
+      damage: 0
       attackDir: {x: 0, y: 0, z: 0}
-      attackEffect: 05000000
+      effect: {fileID: 0}
+      attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -554,8 +466,8 @@ MonoBehaviour:
       armorPiercing:
         rate: 0
       vulnerable:
-        rate: 0.2
-        time: 1
+        rate: 0
+        time: 0
       stackingWounds:
         damage: 0
         time: 0
@@ -563,14 +475,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 2280520615464243483}
+    needToChange: 0
     attackDistance: 15
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 010000000200000003000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -581,14 +491,15 @@ MonoBehaviour:
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
       attackValue: 0
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -629,14 +540,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -646,6 +555,32 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_fire_on
+      startKeyTime: 1
+      endType: 1
+      endKeyName: attack_fire_off
+      endKeyTime: 1.6333334
+    totalTime: 1.8333334
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_fire_on
+      startKeyTime: 1
+      endType: 1
+      endKeyName: attack_fire_off
+      endKeyTime: 1.6333334
+    totalTime: 1.8333334
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!1 &2437299196663985757
 GameObject:
   m_ObjectHideFlags: 0
@@ -941,6 +876,7 @@ MonoBehaviour:
   owner: {fileID: 5720304588384615462}
   attackerID: 0
   curX: 0
+  mats: []
 --- !u!114 &7185972278712444361
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -958,7 +894,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -999,13 +937,13 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
   isFly: 0
   decelerationRatioX: 2
   decelerationRatioY: 15
+  rotateCenterHeight: 1
   startFlyAngle: 15
   flyingRotateSpeedRange: {x: 15, y: 45}
   compressionDegree: 0.8
@@ -1042,7 +980,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1083,7 +1023,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0

+ 54 - 114
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1003.prefab

@@ -94,7 +94,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -103,7 +102,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -144,7 +145,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -213,6 +213,7 @@ MonoBehaviour:
   owner: {fileID: 0}
   attackerID: 0
   curX: 0
+  mats: []
 --- !u!114 &6665864621919866219
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -230,7 +231,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -271,13 +274,13 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
   isFly: 0
   decelerationRatioX: 2
   decelerationRatioY: 15
+  rotateCenterHeight: 1
   startFlyAngle: 1
   flyingRotateSpeedRange: {x: 1, y: 1}
   compressionDegree: 1
@@ -314,7 +317,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -355,7 +360,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -646,8 +650,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 0}
   ani: {fileID: 3333436509305836838}
   totalDieKeepTime: 1
-  totalAttack_summonTime: 1.8333334
-  totalAttack_marchTime: 1.8333334
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -664,6 +666,7 @@ MonoBehaviour:
   totalHp: 200
   hp: 0
   canFly: 0
+  canControlFly: 0
   nowCanFly: 0
   canNotShotDown: 1
   canNotAddForce: 0
@@ -725,9 +728,9 @@ MonoBehaviour:
   sustainedInjury_damage: 0
   heavyDamage: 0
   killer: {fileID: 0}
+  exp: 10
   tag: 2
   dieEffect: {fileID: 417478504669294145, guid: 2a4e7e280b9d19042ba0f57ae5edf736, type: 3}
-  exp: 10
   name: 
   baseSortingOrder: 2000
   isBack: 0
@@ -744,19 +747,11 @@ MonoBehaviour:
   type: -1
   searchState: 0
   attackRatio: 0
+  len: 0
   dropSoulMax: 5
   dropSoulMin: 3
+  dropProbability: 100
   dropSoulAngle: 90
-  canEscape: 0
-  stopEscapeCD: 0
-  escapeSpeed: 0
-  distanceToTowerDeviation: 0
-  distanceToTowerBase: 0
-  distanceToEnemyDeviation: 0
-  distanceToEnemyBase: 0
-  canClimb: 0
-  pathCreator: {fileID: 0}
-  climbSpeed: 0
 --- !u!54 &5440846222648032765
 Rigidbody:
   m_ObjectHideFlags: 0
@@ -785,101 +780,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 1.1
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 1.3333334
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 1.1
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 1.3333334
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 0
   attackInterval: 3
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 7729941002223262554}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 0}
-  shootPos: []
-  shootTrack: 0
-  shootAlwaysTrack: 0
   targetTypes: 010000000200000003000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: "\u5934\u69CC"
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 0
     attackInfo:
       attackValue: 0
-      damage: 20
+      damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -888,10 +805,10 @@ MonoBehaviour:
         height: {x: 0, y: 0}
         ControlOrder: 0
       blowUp:
-        directionType: 1
-        dir: {x: -1, y: 1, z: 0}
+        directionType: 0
+        dir: {x: 0, y: 0, z: 0}
         dirRandom: {x: 0, y: 0, z: 0}
-        force: 100
+        force: 0
         time: 0
         haveLandingDamage: 0
         landingDamageRate: 0
@@ -906,7 +823,7 @@ MonoBehaviour:
         landingDamage: 0
         ControlOrder: 0
       weak:
-        time: 2
+        time: 0
         ControlOrder: 0
       armorPiercing:
         rate: 0
@@ -920,14 +837,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 7729941002223262554}
+    needToChange: 0
     attackDistance: 3
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 010000000200000003000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -938,14 +853,15 @@ MonoBehaviour:
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
       attackValue: 0
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -986,14 +902,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -1003,6 +917,32 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 1.1
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 1.3333334
+    totalTime: 1.8333334
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 1.1
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 1.3333334
+    totalTime: 1.8333334
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!1 &6139679835290116115
 GameObject:
   m_ObjectHideFlags: 0

+ 41 - 105
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1004.prefab

@@ -92,7 +92,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -103,6 +102,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -143,7 +143,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -232,6 +231,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -272,7 +272,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
@@ -318,6 +317,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -358,7 +358,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -1266,8 +1265,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 5313599660676682037}
   ani: {fileID: 5978259926173120695}
   totalDieKeepTime: 1
-  totalAttack_summonTime: 1
-  totalAttack_marchTime: 2
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -1398,106 +1395,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.43333337
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.6666667
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.43333337
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.6666667
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 1
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    effect: {fileID: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 8924180071245218248}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 7473170563405908938, guid: 0460e8750cef0df4292f6d2bb56a4843, type: 3}
-  shootPos:
-  - {fileID: 8482269351142858204}
-  - {fileID: 776105162125788029}
-  - {fileID: 6220414675483084992}
-  shootTrack: 1
-  shootAlwaysTrack: 0
   targetTypes: 010000000200000003000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: "\u5C04\u7BAD"
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 1
     attackInfo:
       attackValue: 0
-      damage: 5
+      damage: 0
       attackDir: {x: -1, y: 0, z: 0}
       effect: {fileID: 0}
-      attackEffect: 04000000
+      attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1527,7 +1441,7 @@ MonoBehaviour:
         time: 0
         ControlOrder: 0
       armorPiercing:
-        rate: 30
+        rate: 0
       vulnerable:
         rate: 0
         time: 0
@@ -1538,14 +1452,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 8924180071245218248}
+    needToChange: 1
     attackDistance: 0
     maxAttackDis: 15
     minAttackDis: 9
-    needToChange: 1
     searchMode: 0
-    targetTypes: 010000000200000003000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 7473170563405908938, guid: 49e695ae2f4155043a4964f0a3e4a0b5, type: 3}
@@ -1559,7 +1471,6 @@ MonoBehaviour:
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
@@ -1568,6 +1479,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1608,14 +1520,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -1625,3 +1535,29 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.43333337
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.6666667
+    totalTime: 2
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.43333337
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.6666667
+    totalTime: 1
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []

+ 42 - 109
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1005.prefab

@@ -92,7 +92,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -103,6 +102,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -143,7 +143,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -232,6 +231,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -272,7 +272,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
@@ -318,6 +317,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -358,7 +358,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -1267,8 +1266,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 5313599660676682037}
   ani: {fileID: 5978259926173120695}
   totalDieKeepTime: 1
-  totalAttack_summonTime: 1
-  totalAttack_marchTime: 2
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -1399,106 +1396,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.43333337
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.6666667
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.43333337
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.6666667
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 2
   attackInterval: 5
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    effect: {fileID: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 8924180071245218248}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 7473170563405908938, guid: 0460e8750cef0df4292f6d2bb56a4843, type: 3}
-  shootPos:
-  - {fileID: 8482269351142858204}
-  - {fileID: 776105162125788029}
-  - {fileID: 6220414675483084992}
-  shootTrack: 1
-  shootAlwaysTrack: 0
   targetTypes: 010000000200000003000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: "\u5C04\u7BAD"
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 2
     attackInfo:
       attackValue: 0
-      damage: 5
+      damage: 0
       attackDir: {x: -1, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1539,28 +1453,22 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 8924180071245218248}
+    needToChange: 1
     attackDistance: 0
     maxAttackDis: 15
     minAttackDis: 9
-    needToChange: 1
     searchMode: 0
-    targetTypes: 010000000200000003000000
     canHitFly: 1
     armorPiercing: 0
-    bulletPrefab: {fileID: 7473170563405908938, guid: 0460e8750cef0df4292f6d2bb56a4843, type: 3}
-    shootPos:
-    - {fileID: 8482269351142858204}
-    - {fileID: 776105162125788029}
-    - {fileID: 6220414675483084992}
+    bulletPrefab: {fileID: 0}
+    shootPos: []
     maxUpAngle: 0
     maxDownAngle: 0
-    shootTrack: 1
+    shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 1241520717480054541}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
@@ -1569,6 +1477,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1609,14 +1518,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -1626,6 +1533,32 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.43333337
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.6666667
+    totalTime: 2
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.43333337
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.6666667
+    totalTime: 1
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!1001 &2031010649330938042
 PrefabInstance:
   m_ObjectHideFlags: 0

+ 42 - 103
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1006.prefab

@@ -170,7 +170,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -181,6 +180,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -221,7 +221,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -289,8 +288,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 2459340336965010942}
   ani: {fileID: 6496896669866891404}
   totalDieKeepTime: 0.6666667
-  totalAttack_summonTime: 1.8333334
-  totalAttack_marchTime: 1.833333
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -421,103 +418,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.6666667
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 1.1333334
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.6666667
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 1.1333334
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 0
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    effect: {fileID: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 2280520615464243483}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 0}
-  shootPos: []
-  shootTrack: 0
-  shootAlwaysTrack: 0
   targetTypes: 010000000200000003000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: "\u8F6C\u5708\u5708"
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 0
     attackInfo:
       attackValue: 0
-      damage: 100
+      damage: 0
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -527,10 +444,10 @@ MonoBehaviour:
         ControlOrder: 0
       blowUp:
         directionType: 0
-        dir: {x: -1, y: 1, z: 0}
+        dir: {x: 0, y: 0, z: 0}
         dirRandom: {x: 0, y: 0, z: 0}
-        force: 50
-        time: 1
+        force: 0
+        time: 0
         haveLandingDamage: 0
         landingDamageRate: 0
         ControlOrder: 0
@@ -558,14 +475,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 2280520615464243483}
+    needToChange: 0
     attackDistance: 2
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 010000000200000003000000
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -576,7 +491,6 @@ MonoBehaviour:
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
@@ -585,6 +499,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -625,14 +540,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -642,6 +555,32 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.6666667
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 1.1333334
+    totalTime: 1.8333334
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.6666667
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 1.1333334
+    totalTime: 1.8333334
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!1 &2437299196663985757
 GameObject:
   m_ObjectHideFlags: 0
@@ -957,6 +896,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -997,7 +937,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
@@ -1043,6 +982,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1083,7 +1023,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0

+ 46 - 113
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1007.prefab

@@ -92,7 +92,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 1
   owner: {fileID: 0}
   isSingleAttack: 1
   cantSingleAttack: 0
@@ -103,6 +102,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -143,7 +143,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -235,6 +234,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -275,7 +275,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -298,6 +297,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -338,7 +338,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
@@ -1266,8 +1265,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 5313599660676682037}
   ani: {fileID: 5978259926173120695}
   totalDieKeepTime: 1
-  totalAttack_summonTime: 1
-  totalAttack_marchTime: 2
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -1398,106 +1395,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.43333337
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.6666667
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.43333337
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.6666667
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 0
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    effect: {fileID: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 8924180071245218248}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 7473170563405908938, guid: 0460e8750cef0df4292f6d2bb56a4843, type: 3}
-  shootPos:
-  - {fileID: 8482269351142858204}
-  - {fileID: 776105162125788029}
-  - {fileID: 6220414675483084992}
-  shootTrack: 1
-  shootAlwaysTrack: 0
   targetTypes: 010000000200000003000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: "\u5934\u69CC"
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 0
     attackInfo:
       attackValue: 0
-      damage: 20
+      damage: 0
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
-      attackEffect: 05000000
+      attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1524,13 +1438,13 @@ MonoBehaviour:
         landingDamage: 0
         ControlOrder: 0
       weak:
-        time: 2
+        time: 0
         ControlOrder: 0
       armorPiercing:
         rate: 0
       vulnerable:
-        rate: 2
-        time: 3
+        rate: 0
+        time: 0
       stackingWounds:
         damage: 0
         time: 0
@@ -1538,28 +1452,22 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 8924180071245218248}
+    needToChange: 0
     attackDistance: 3
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 010000000200000003000000
     canHitFly: 1
     armorPiercing: 0
-    bulletPrefab: {fileID: 7473170563405908938, guid: 0460e8750cef0df4292f6d2bb56a4843, type: 3}
-    shootPos:
-    - {fileID: 8482269351142858204}
-    - {fileID: 776105162125788029}
-    - {fileID: 6220414675483084992}
+    bulletPrefab: {fileID: 0}
+    shootPos: []
     maxUpAngle: 0
     maxDownAngle: 0
-    shootTrack: 1
+    shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
@@ -1568,6 +1476,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1608,14 +1517,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -1625,3 +1532,29 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.43333337
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.6666667
+    totalTime: 2
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.43333337
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.6666667
+    totalTime: 1
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []

+ 45 - 175
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1013Old.prefab

@@ -321,6 +321,7 @@ MonoBehaviour:
   owner: {fileID: 310501218864092228}
   attackerID: 0
   curX: 0
+  mats: []
 --- !u!114 &650816231199212684
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -338,7 +339,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -379,13 +382,13 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
   isFly: 0
   decelerationRatioX: 2
   decelerationRatioY: 15
+  rotateCenterHeight: 1
   startFlyAngle: 15
   flyingRotateSpeedRange: {x: 15, y: 45}
   compressionDegree: 0.8
@@ -422,7 +425,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -463,7 +468,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -528,7 +532,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -537,7 +540,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -578,7 +583,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -1065,8 +1069,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 6224941985586762102}
   ani: {fileID: 5560211363568367860}
   totalDieKeepTime: 1
-  totalAttack_summonTime: 1
-  totalAttack_marchTime: 2
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -1083,6 +1085,7 @@ MonoBehaviour:
   totalHp: 30
   hp: 0
   canFly: 1
+  canControlFly: 0
   nowCanFly: 0
   canNotShotDown: 1
   canNotAddForce: 0
@@ -1144,9 +1147,9 @@ MonoBehaviour:
   sustainedInjury_damage: 0
   heavyDamage: 0
   killer: {fileID: 0}
+  exp: 1
   tag: 0
   dieEffect: {fileID: 417478504669294145, guid: 2a4e7e280b9d19042ba0f57ae5edf736, type: 3}
-  exp: 1
   name: 
   baseSortingOrder: 7000
   isBack: 0
@@ -1163,19 +1166,11 @@ MonoBehaviour:
   type: -1
   searchState: 0
   attackRatio: 0
+  len: 0
   dropSoulMax: 1
   dropSoulMin: 1
+  dropProbability: 100
   dropSoulAngle: 90
-  canEscape: 0
-  stopEscapeCD: 0
-  escapeSpeed: 0
-  distanceToTowerDeviation: 0
-  distanceToTowerBase: 0
-  distanceToEnemyDeviation: 0
-  distanceToEnemyBase: 0
-  canClimb: 0
-  pathCreator: {fileID: 0}
-  climbSpeed: 0
 --- !u!54 &7509757808874840902
 Rigidbody:
   m_ObjectHideFlags: 0
@@ -1204,173 +1199,24 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.43333337
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.6666667
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.43333337
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.6666667
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 1
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 7207961735131840907}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 7473170563405908938, guid: 0460e8750cef0df4292f6d2bb56a4843, type: 3}
-  shootPos:
-  - {fileID: 7667886840453062047}
-  - {fileID: 1520979673470698302}
-  - {fileID: 5300041099201382531}
-  shootTrack: 1
-  shootAlwaysTrack: 0
   targetTypes: 010000000200000003000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: "\u5C04\u7BAD"
-    attackType: 1
-    attackInfo:
-      attackValue: 0
-      damage: 60
-      attackDir: {x: -1, y: 0, z: 0}
-      attackEffect: 04000000
-      floatState:
-        time: 0
-        upTime: {x: 0, y: 0}
-        backSpeed: {x: 0, y: 0}
-        rotateSpeed: {x: 0, y: 0}
-        height: {x: 0, y: 0}
-        ControlOrder: 0
-      blowUp:
-        directionType: 0
-        dir: {x: 0, y: 0, z: 0}
-        dirRandom: {x: 0, y: 0, z: 0}
-        force: 0
-        time: 0
-        haveLandingDamage: 0
-        landingDamageRate: 0
-        ControlOrder: 0
-      shotDown:
-        directionType: 0
-        dir: {x: 0, y: 0, z: 0}
-        dirRandom: {x: 0, y: 0, z: 0}
-        force: 0
-        time: 0
-        haveLandingDamage: 0
-        landingDamage: 0
-        ControlOrder: 0
-      weak:
-        time: 0
-        ControlOrder: 0
-      armorPiercing:
-        rate: 30
-      vulnerable:
-        rate: 0
-        time: 0
-      stackingWounds:
-        damage: 0
-        time: 0
-      changeDamage:
-        rate: 0
-      sustainedInjury:
-        damage: 0
-      isDemSummon: 0
-    attackTrigger: {fileID: 7207961735131840907}
-    attackDistance: 0
-    maxAttackDis: 15
-    minAttackDis: 9
-    needToChange: 1
-    searchMode: 0
-    targetTypes: 010000000200000003000000
-    canHitFly: 1
-    armorPiercing: 0
-    bulletPrefab: {fileID: 8136386918643143278, guid: 475f6b5e9a49ede44b229db115606737, type: 3}
-    shootPos:
-    - {fileID: 7667886840453062047}
-    - {fileID: 1520979673470698302}
-    - {fileID: 5300041099201382531}
-    maxUpAngle: 180
-    maxDownAngle: 180
-    shootTrack: 1
-    shootAlwaysTrack: 0
-    skill: {fileID: 0}
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march: []
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
       attackValue: 0
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1411,14 +1257,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -1428,6 +1272,32 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.43333337
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.6666667
+    totalTime: 2
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.43333337
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.6666667
+    totalTime: 1
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!1 &7509757809066842376
 GameObject:
   m_ObjectHideFlags: 0

+ 54 - 123
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_1014.prefab

@@ -92,7 +92,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 1
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -101,7 +100,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -142,7 +143,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -211,6 +211,7 @@ MonoBehaviour:
   owner: {fileID: 1986582536140952583}
   attackerID: 0
   curX: 0
+  mats: []
 --- !u!114 &9182774060409537036
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -231,7 +232,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -272,7 +275,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -293,7 +295,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -334,13 +338,13 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
   isFly: 0
   decelerationRatioX: 2
   decelerationRatioY: 15
+  rotateCenterHeight: 1
   startFlyAngle: 15
   flyingRotateSpeedRange: {x: 15, y: 45}
   compressionDegree: 0.8
@@ -530,7 +534,6 @@ MeshRenderer:
   m_RendererPriority: 0
   m_Materials:
   - {fileID: 2100000, guid: 5593775b4c6e75f4890fefc0df07f5b9, type: 2}
-  - {fileID: 2100000, guid: cd83f82aa01ea144fae3d29d40a9504c, type: 2}
   m_StaticBatchInfo:
     firstSubMesh: 0
     subMeshCount: 0
@@ -1262,9 +1265,7 @@ MonoBehaviour:
   mecanim: {fileID: 3354085511906294621}
   meshRenderer: {fileID: 5313599660676682037}
   ani: {fileID: 5978259926173120695}
-  totalDieKeepTime: 0.33333334
-  totalAttack_summonTime: 0.6666667
-  totalAttack_marchTime: 5.333333
+  totalDieKeepTime: 0
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -1362,20 +1363,11 @@ MonoBehaviour:
   type: -1
   searchState: 0
   attackRatio: 0
+  len: 0
   dropSoulMax: 2
   dropSoulMin: 1
   dropProbability: 100
   dropSoulAngle: 120
-  canEscape: 0
-  stopEscapeCD: 0
-  escapeSpeed: 0
-  distanceToTowerDeviation: 0
-  distanceToTowerBase: 0
-  distanceToEnemyDeviation: 0
-  distanceToEnemyBase: 0
-  canClimb: 0
-  pathCreator: {fileID: 0}
-  climbSpeed: 0
 --- !u!54 &8639832132491289349
 Rigidbody:
   m_ObjectHideFlags: 0
@@ -1404,104 +1396,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 1
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 1.5333
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.13333334
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 0
   attackInterval: 1
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 8924180071245218248}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 7473170563405908938, guid: 0460e8750cef0df4292f6d2bb56a4843, type: 3}
-  shootPos:
-  - {fileID: 8482269351142858204}
-  - {fileID: 776105162125788029}
-  - {fileID: 6220414675483084992}
-  shootTrack: 1
-  shootAlwaysTrack: 0
   targetTypes: 010000000200000003000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: "\u5934\u69CC"
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 0
     attackInfo:
       attackValue: 0
-      damage: 10
+      damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1528,13 +1439,13 @@ MonoBehaviour:
         landingDamage: 0
         ControlOrder: 0
       weak:
-        time: 2
+        time: 0
         ControlOrder: 0
       armorPiercing:
         rate: 0
       vulnerable:
-        rate: 2
-        time: 3
+        rate: 0
+        time: 0
       stackingWounds:
         damage: 0
         time: 0
@@ -1542,35 +1453,31 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 8924180071245218248}
+    needToChange: 0
     attackDistance: 6
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 010000000200000003000000
     canHitFly: 1
     armorPiercing: 0
-    bulletPrefab: {fileID: 7473170563405908938, guid: 0460e8750cef0df4292f6d2bb56a4843, type: 3}
-    shootPos:
-    - {fileID: 8482269351142858204}
-    - {fileID: 776105162125788029}
-    - {fileID: 6220414675483084992}
+    bulletPrefab: {fileID: 0}
+    shootPos: []
     maxUpAngle: 0
     maxDownAngle: 0
-    shootTrack: 1
+    shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
       attackValue: 0
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1611,14 +1518,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -1628,6 +1533,32 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 1
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 1.7666668
+    totalTime: 5.4
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.13333334
+    totalTime: 0.6666667
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!114 &5660842489896163536
 MonoBehaviour:
   m_ObjectHideFlags: 0

+ 30 - 84
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_LeafGhost.prefab

@@ -126,7 +126,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -167,13 +169,13 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
   isFly: 0
   decelerationRatioX: 2
   decelerationRatioY: 15
+  rotateCenterHeight: 1
   startFlyAngle: 15
   flyingRotateSpeedRange: {x: 15, y: 45}
   compressionDegree: 0.8
@@ -210,7 +212,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -251,7 +255,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -45983,7 +45986,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -45992,7 +45994,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 6
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -46033,7 +46037,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -60768,83 +60771,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys: []
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 2
   attackInterval: 15
-  curDamage: 0
-  canHitFly: 0
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 0}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 0}
-  shootPos: []
-  shootTrack: 0
-  shootAlwaysTrack: 0
-  targetTypes: 0300000001000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: "\u53EC\u5524\u874C\u86AA"
+  targetTypes: 010000000200000003000000
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 2
     attackInfo:
       attackValue: 0
-      damage: 10
+      damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -60885,14 +60828,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 5849284137114900647}
+    needToChange: 0
     attackDistance: 5
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 0100000003000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -60903,14 +60844,15 @@ MonoBehaviour:
     shootAlwaysTrack: 0
     skill: {fileID: 8193343384150117390}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
       attackValue: 0
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -60951,14 +60893,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -60968,6 +60908,14 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys: []
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!114 &8300996751295530410
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -60993,8 +60941,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 0}
   ani: {fileID: 1487103345711223088}
   totalDieKeepTime: 0
-  totalAttack_summonTime: 1
-  totalAttack_marchTime: 1.633
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -61176,7 +61122,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 1
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -61185,7 +61130,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 50
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -61226,7 +61173,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0

+ 51 - 110
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_Monkey.prefab

@@ -551,6 +551,7 @@ MonoBehaviour:
   owner: {fileID: 0}
   attackerID: 0
   curX: 0
+  mats: []
 --- !u!114 &6581720511662537704
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -568,7 +569,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -609,13 +612,13 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
   isFly: 0
   decelerationRatioX: 2
   decelerationRatioY: 15
+  rotateCenterHeight: 1
   startFlyAngle: 15
   flyingRotateSpeedRange: {x: 15, y: 45}
   compressionDegree: 0.8
@@ -652,7 +655,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -693,7 +698,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -894,8 +898,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 0}
   ani: {fileID: 2964753049365590755}
   totalDieKeepTime: 0
-  totalAttack_summonTime: 1.3333334
-  totalAttack_marchTime: 1.3333334
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -1016,104 +1018,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 1.0666667
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 1.2666668
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 1.0666667
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 1.2666668
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 2
   attackInterval: 2
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 0}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 7473170563405908938, guid: 0460e8750cef0df4292f6d2bb56a4843, type: 3}
-  shootPos:
-  - {fileID: 0}
-  - {fileID: 0}
-  - {fileID: 0}
-  shootTrack: 1
-  shootAlwaysTrack: 0
   targetTypes: 010000000200000003000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: "\u706B\u7403"
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 2
     attackInfo:
       attackValue: 0
       damage: 5
-      attackDir: {x: -1, y: 0, z: 0}
-      attackEffect: 04000000
+      attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
+      attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1154,35 +1075,31 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 7830492304536714100}
+    needToChange: 1
     attackDistance: 0
     maxAttackDis: 15
     minAttackDis: 9
-    needToChange: 1
-    searchMode: 1
-    targetTypes: 010000000200000003000000
+    searchMode: 0
     canHitFly: 1
     armorPiercing: 0
-    bulletPrefab: {fileID: 7473170563405908938, guid: 0460e8750cef0df4292f6d2bb56a4843, type: 3}
-    shootPos:
-    - {fileID: 0}
-    - {fileID: 0}
-    - {fileID: 0}
+    bulletPrefab: {fileID: 0}
+    shootPos: []
     maxUpAngle: 0
     maxDownAngle: 0
-    shootTrack: 1
+    shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 2414008461549628235}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
       attackValue: 0
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1223,14 +1140,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -1240,6 +1155,32 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 1.0666667
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 1.2666668
+    totalTime: 1.3333334
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 1.0666667
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 1.2666668
+    totalTime: 1.3333334
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!54 &5971333975937033852
 Rigidbody:
   m_ObjectHideFlags: 0
@@ -1469,7 +1410,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 1
   cantSingleAttack: 0
@@ -1478,7 +1418,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1519,7 +1461,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0

+ 36 - 90
ActionTowerDefense/Assets/Resources/Prefab/Enemy/Enemy_Polliwog.prefab

@@ -81,7 +81,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -122,13 +124,13 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
   isFly: 0
   decelerationRatioX: 2
   decelerationRatioY: 15
+  rotateCenterHeight: 1
   startFlyAngle: 15
   flyingRotateSpeedRange: {x: 15, y: 45}
   compressionDegree: 0.8
@@ -165,7 +167,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -206,7 +210,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -796,7 +799,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -805,7 +807,9 @@ MonoBehaviour:
     attackValue: 0
     damage: 0
     attackDir: {x: 0, y: 0, z: 0}
+    effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -846,7 +850,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -946,8 +949,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 0}
   ani: {fileID: 1487103345711223088}
   totalDieKeepTime: 0
-  totalAttack_summonTime: 1
-  totalAttack_marchTime: 1
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -1073,92 +1074,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.6
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.70000005
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 0
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 0
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 0}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 0}
-  shootPos: []
-  shootTrack: 0
-  shootAlwaysTrack: 0
-  targetTypes: 03000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 0
-    attackName: 
+  targetTypes: 010000000200000003000000
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack
     attackType: 0
     attackInfo:
       attackValue: 0
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1199,14 +1131,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 5849284137114900647}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -1217,14 +1147,15 @@ MonoBehaviour:
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
       attackValue: 0
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1265,14 +1196,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -1282,6 +1211,23 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.6
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.70000005
+    totalTime: 1
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!54 &4735255374642079313
 Rigidbody:
   m_ObjectHideFlags: 0

+ 66 - 126
ActionTowerDefense/Assets/Resources/Prefab/MySoldier/Demonic_Arrow.prefab

@@ -114,6 +114,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -154,7 +155,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
@@ -200,6 +200,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -240,7 +241,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -749,7 +749,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 1
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -760,6 +759,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -800,7 +800,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -1268,8 +1267,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 0}
   ani: {fileID: 5978259926173120695}
   totalDieKeepTime: 1
-  totalAttack_summonTime: 0.7666667
-  totalAttack_marchTime: 1.3000001
   showInjuryNum: 0
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -1361,7 +1358,6 @@ MonoBehaviour:
   isReturnSoulTower: 0
   origSoulPos: {x: 0, y: 0, z: 0}
   isRecorded: 0
-  curAttackID: 0
   adsorbSpeed: 0
   adsorbTarget: {x: 0, y: 0, z: 0}
   effectPrefab: {fileID: 0}
@@ -1396,113 +1392,14 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.23
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.3
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.03
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.1
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: 
-      startKeyTime: 0.16
-      endType: 0
-      endKeyName: 
-      endKeyTime: 0.23
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: 
-      startKeyTime: 0.3
-      endType: 0
-      endKeyName: 
-      endKeyTime: 0.36
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 1
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    effect: {fileID: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 5755692021491134919}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 7473170563405908938, guid: 0460e8750cef0df4292f6d2bb56a4843, type: 3}
-  shootPos:
-  - {fileID: 8482269351142858204}
-  - {fileID: 776105162125788029}
-  - {fileID: 6220414675483084992}
-  shootTrack: 1
-  shootAlwaysTrack: 0
   targetTypes: 040000000500000006000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 0
-    attackName: "\u8D77\u624B\u4E09\u8FDE\u53D1"
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon:
+  - attackName: attack_summon
     attackType: 1
     attackInfo:
       attackValue: 5
@@ -1510,6 +1407,7 @@ MonoBehaviour:
       attackDir: {x: -1, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 06000000
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1539,7 +1437,7 @@ MonoBehaviour:
         time: 0
         ControlOrder: 0
       armorPiercing:
-        rate: 20
+        rate: 0
       vulnerable:
         rate: 0
         time: 0
@@ -1550,14 +1448,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 5755692021491134919}
-    attackDistance: 10
+    needToChange: 1
+    attackDistance: 0
     maxAttackDis: 15
     minAttackDis: 9
-    needToChange: 1
     searchMode: 0
-    targetTypes: 040000000500000006000000
     canHitFly: 1
     armorPiercing: 30
     bulletPrefab: {fileID: 7473170563405908938, guid: 15b76dfc3da1ecc4d89a55ca655b39c6, type: 3}
@@ -1570,15 +1466,16 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
-  - id: 1
-    attackName: "\u5C04\u7BAD"
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 1
     attackInfo:
       attackValue: 0
       damage: 1
       attackDir: {x: -1, y: 0, z: 0}
       effect: {fileID: 0}
-      attackEffect: 04000000
+      attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1608,7 +1505,7 @@ MonoBehaviour:
         time: 0
         ControlOrder: 0
       armorPiercing:
-        rate: 20
+        rate: 0
       vulnerable:
         rate: 0
         time: 0
@@ -1619,14 +1516,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 5755692021491134919}
+    needToChange: 1
     attackDistance: 0
     maxAttackDis: 15
     minAttackDis: 9
-    needToChange: 1
     searchMode: 0
-    targetTypes: 040000000500000006000000
     canHitFly: 1
     armorPiercing: 30
     bulletPrefab: {fileID: 7473170563405908938, guid: 0460e8750cef0df4292f6d2bb56a4843, type: 3}
@@ -1638,7 +1533,6 @@ MonoBehaviour:
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
@@ -1647,6 +1541,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1687,14 +1582,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -1704,6 +1597,53 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.26666668
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.33333334
+    totalTime: 1.3000001
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.13333334
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.16666667
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.33333334
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.36666667
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.53333336
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.5666667
+    totalTime: 0.7666667
+  - aniName: fall
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.06666667
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.6666667
+    totalTime: 0.6666667
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!114 &7031356745553843355
 MonoBehaviour:
   m_ObjectHideFlags: 0

+ 43 - 107
ActionTowerDefense/Assets/Resources/Prefab/MySoldier/Demonic_Giant.prefab

@@ -94,7 +94,6 @@ MonoBehaviour:
   canBreakWall: 1
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -105,6 +104,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -145,7 +145,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -237,6 +236,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -277,7 +277,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -300,6 +299,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -340,7 +340,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
@@ -654,8 +653,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 0}
   ani: {fileID: 3333436509305836838}
   totalDieKeepTime: 2.0666668
-  totalAttack_summonTime: 0.6666667
-  totalAttack_marchTime: 4
   showInjuryNum: 0
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -747,7 +744,6 @@ MonoBehaviour:
   isReturnSoulTower: 0
   origSoulPos: {x: 0, y: 0, z: 0}
   isRecorded: 0
-  curAttackID: 0
   adsorbSpeed: 0.5
   adsorbTarget: {x: 0, y: 0, z: 0}
   effectPrefab: {fileID: 0}
@@ -782,96 +778,14 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 1.4000001
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 1.6000001
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.26666668
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 0
   attackInterval: 4
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    effect: {fileID: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 7729941002223262554}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 0}
-  shootPos: []
-  shootTrack: 0
-  shootAlwaysTrack: 0
   targetTypes: 040000000500000006000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 0
-    attackName: "\u8D77\u624B\u5F0F\u6376\u5730"
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon:
+  - attackName: attack_summon
     attackType: 0
     attackInfo:
       attackValue: 13
@@ -879,6 +793,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 01000000
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -905,7 +820,7 @@ MonoBehaviour:
         landingDamage: 0
         ControlOrder: 0
       weak:
-        time: 2
+        time: 0
         ControlOrder: 0
       armorPiercing:
         rate: 0
@@ -919,14 +834,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 7729941002223262554}
+    needToChange: 0
     attackDistance: 3
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 040000000500000006000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -936,8 +849,8 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
-  - id: 1
-    attackName: "\u884C\u519B\u5F0F\u6376\u5730"
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 0
     attackInfo:
       attackValue: 0
@@ -945,6 +858,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -971,7 +885,7 @@ MonoBehaviour:
         landingDamage: 0
         ControlOrder: 0
       weak:
-        time: 1
+        time: 0
         ControlOrder: 0
       armorPiercing:
         rate: 0
@@ -985,14 +899,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 7729941002223262554}
+    needToChange: 0
     attackDistance: 3
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 040000000500000006000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -1003,7 +915,6 @@ MonoBehaviour:
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
@@ -1012,6 +923,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -1052,14 +964,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -1069,6 +979,32 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 1.4000001
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 1.6000001
+    totalTime: 4
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.26666668
+    totalTime: 0.6666667
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!114 &802636448221205106
 MonoBehaviour:
   m_ObjectHideFlags: 0

+ 209 - 264
ActionTowerDefense/Assets/Resources/Prefab/MySoldier/Demonic_Sword.prefab

@@ -102,7 +102,6 @@ Transform:
   - {fileID: 5718990486604556333}
   - {fileID: 3277761006413294872}
   - {fileID: 2288379621507428556}
-  - {fileID: 5140460497945123740}
   m_Father: {fileID: 2730232521377132808}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -189,8 +188,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 0}
   ani: {fileID: 6496896669866891404}
   totalDieKeepTime: 2
-  totalAttack_summonTime: 1
-  totalAttack_marchTime: 1
   showInjuryNum: 0
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -282,7 +279,6 @@ MonoBehaviour:
   isReturnSoulTower: 0
   origSoulPos: {x: 0, y: 0, z: 0}
   isRecorded: 0
-  curAttackID: 0
   adsorbSpeed: 0
   adsorbTarget: {x: 0, y: 0, z: 0}
   effectPrefab: {fileID: 0}
@@ -317,139 +313,22 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.3
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.40000004
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.43333337
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.53333336
-  - aniName: attack_summon1
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.06666667
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.16666667
-  - aniName: attack_summon2
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.10000001
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.20000002
-  - aniName: attack_summon3
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.43333337
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.53333336
-  - aniName: attack_summon05
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.10000001
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.33333334
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 0
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    effect: {fileID: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 4347565098670608659}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 0}
-  shootPos: []
-  shootTrack: 0
-  shootAlwaysTrack: 0
   targetTypes: 040000000500000006000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 0
-    attackName: "\u8D77\u624B\u5F0F\u6325\u68D2\u5B50"
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon:
+  - attackName: attack_summon1
     attackType: 0
     attackInfo:
       attackValue: 25
       damage: 5
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
-      attackEffect: 02000000
+      attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -459,10 +338,10 @@ MonoBehaviour:
         ControlOrder: 0
       blowUp:
         directionType: 0
-        dir: {x: 0.5, y: 1, z: 0}
+        dir: {x: 0, y: 0, z: 0}
         dirRandom: {x: 0, y: 0, z: 0}
-        force: 200
-        time: 3
+        force: 0
+        time: 0
         haveLandingDamage: 0
         landingDamageRate: 0
         ControlOrder: 0
@@ -490,14 +369,76 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 4347565098670608659}
+    needToChange: 0
     attackDistance: 6
     maxAttackDis: 0
     minAttackDis: 0
+    searchMode: 0
+    canHitFly: 1
+    armorPiercing: 0
+    bulletPrefab: {fileID: 0}
+    shootPos: []
+    maxUpAngle: 0
+    maxDownAngle: 0
+    shootTrack: 0
+    shootAlwaysTrack: 0
+    skill: {fileID: 0}
+  - attackName: attack_summon2
+    attackType: 0
+    attackInfo:
+      attackValue: 25
+      damage: 5
+      attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
+      attackEffect: 01000000
+      attackMethod_Type: 0
+      floatState:
+        time: 0
+        upTime: {x: 0, y: 0}
+        backSpeed: {x: 0, y: 0}
+        rotateSpeed: {x: 0, y: 0}
+        height: {x: 0, y: 0}
+        ControlOrder: 0
+      blowUp:
+        directionType: 0
+        dir: {x: -1, y: 1, z: 0}
+        dirRandom: {x: 0.5, y: 0.5, z: 0}
+        force: 110
+        time: 2
+        haveLandingDamage: 1
+        landingDamageRate: 2.5
+        ControlOrder: 0
+      shotDown:
+        directionType: 0
+        dir: {x: 0, y: 0, z: 0}
+        dirRandom: {x: 0, y: 0, z: 0}
+        force: 0
+        time: 0
+        haveLandingDamage: 0
+        landingDamage: 0
+        ControlOrder: 0
+      weak:
+        time: 0
+        ControlOrder: 0
+      armorPiercing:
+        rate: 0
+      vulnerable:
+        rate: 0
+        time: 0
+      stackingWounds:
+        damage: 0
+        time: 0
+      changeDamage:
+        rate: 0
+      sustainedInjury:
+        damage: 0
+    attackTrigger: {fileID: 4347565098670608659}
     needToChange: 0
+    attackDistance: 6
+    maxAttackDis: 0
+    minAttackDis: 0
     searchMode: 0
-    targetTypes: 040000000500000006000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -507,8 +448,72 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
-  - id: 1
-    attackName: "\u884C\u519B\u5F0F\u6325\u68D2\u5B50"
+  - attackName: attack_summon3
+    attackType: 0
+    attackInfo:
+      attackValue: 25
+      damage: 5
+      attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
+      attackEffect: 02000000
+      attackMethod_Type: 0
+      floatState:
+        time: 0
+        upTime: {x: 0, y: 0}
+        backSpeed: {x: 0, y: 0}
+        rotateSpeed: {x: 0, y: 0}
+        height: {x: 0, y: 0}
+        ControlOrder: 0
+      blowUp:
+        directionType: 0
+        dir: {x: 0, y: 0, z: 0}
+        dirRandom: {x: 0, y: 0, z: 0}
+        force: 0
+        time: 0
+        haveLandingDamage: 0
+        landingDamageRate: 0
+        ControlOrder: 0
+      shotDown:
+        directionType: 0
+        dir: {x: -1, y: -4, z: 0}
+        dirRandom: {x: 0.5, y: 0.5, z: 0}
+        force: 200
+        time: 5
+        haveLandingDamage: 1
+        landingDamage: 30
+        ControlOrder: 0
+      weak:
+        time: 0
+        ControlOrder: 0
+      armorPiercing:
+        rate: 0
+      vulnerable:
+        rate: 0
+        time: 0
+      stackingWounds:
+        damage: 0
+        time: 0
+      changeDamage:
+        rate: 0
+      sustainedInjury:
+        damage: 0
+    attackTrigger: {fileID: 4347565098670608659}
+    needToChange: 0
+    attackDistance: 6
+    maxAttackDis: 0
+    minAttackDis: 0
+    searchMode: 0
+    canHitFly: 1
+    armorPiercing: 0
+    bulletPrefab: {fileID: 0}
+    shootPos: []
+    maxUpAngle: 0
+    maxDownAngle: 0
+    shootTrack: 0
+    shootAlwaysTrack: 0
+    skill: {fileID: 0}
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 0
     attackInfo:
       attackValue: 0
@@ -516,6 +521,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -556,14 +562,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
-    attackTrigger: {fileID: 3063112574554332383}
+    attackTrigger: {fileID: 4347565098670608659}
+    needToChange: 0
     attackDistance: 6
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 040000000500000006000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -574,7 +578,6 @@ MonoBehaviour:
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
@@ -583,6 +586,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -623,14 +627,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -640,6 +642,68 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.3
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.40000004
+    totalTime: 1
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.43333337
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.53333336
+    totalTime: 1
+  - aniName: attack_summon1
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.06666667
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.16666667
+    totalTime: 0.6666667
+  - aniName: attack_summon2
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.10000001
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.20000002
+    totalTime: 0.6666667
+  - aniName: attack_summon3
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.43333337
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.53333336
+    totalTime: 1
+  - aniName: attack_summon05
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.10000001
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.33333334
+    totalTime: 1.1666667
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!114 &434976657695320859
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -716,124 +780,6 @@ MonoBehaviour:
   haveGravity: 1
   trigGroundList: []
   platform: {fileID: 0}
---- !u!1 &2888240249657181453
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 5140460497945123740}
-  - component: {fileID: 7628619626582874170}
-  - component: {fileID: 3063112574554332383}
-  m_Layer: 20
-  m_Name: AttackTrigger (1)
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 0
---- !u!4 &5140460497945123740
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 2888240249657181453}
-  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_ConstrainProportionsScale: 0
-  m_Children: []
-  m_Father: {fileID: 7794457276998281569}
-  m_RootOrder: 5
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!65 &7628619626582874170
-BoxCollider:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 2888240249657181453}
-  m_Material: {fileID: 0}
-  m_IsTrigger: 1
-  m_Enabled: 1
-  serializedVersion: 2
-  m_Size: {x: 7.0060945, y: 1.5022345, z: 20}
-  m_Center: {x: -3.4813082, y: 0.7511172, z: 0}
---- !u!114 &3063112574554332383
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 2888240249657181453}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 5eaed0a6b9d6fc6409bef80cf41a0a8e, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  canBreakWall: 0
-  wallBrealNum: 10
-  isShoot: 0
-  type: 1
-  owner: {fileID: 0}
-  isSingleAttack: 1
-  cantSingleAttack: 0
-  trigedObjs: []
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    effect: {fileID: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
-  force: {x: 0, y: 0, z: 0}
-  changeHurt: 0
-  repelValue: 0
-  offsetY: 1
-  hitRate: 1
 --- !u!1 &5216717017252562314
 GameObject:
   m_ObjectHideFlags: 0
@@ -1096,7 +1042,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -1107,6 +1052,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1147,7 +1093,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -1536,6 +1481,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1576,7 +1522,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -1599,6 +1544,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1639,7 +1585,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0

+ 42 - 107
ActionTowerDefense/Assets/Resources/Prefab/MySoldier/Spirits_Assassin.prefab

@@ -305,8 +305,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 0}
   ani: {fileID: 6496896669866891404}
   totalDieKeepTime: 0
-  totalAttack_summonTime: 1.3333334
-  totalAttack_marchTime: 0.9666667
   showInjuryNum: 0
   injuryNumText: {fileID: 0}
   injuryNumTextSummon: {fileID: 0}
@@ -396,7 +394,6 @@ MonoBehaviour:
   isReturnSoulTower: 0
   origSoulPos: {x: 0, y: 0, z: 0}
   isRecorded: 0
-  curAttackID: 0
   adsorbSpeed: 0
   adsorbTarget: {x: 0, y: 0, z: 0}
   effectPrefab: {fileID: 0}
@@ -423,96 +420,14 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys:
-  - aniName: attack_march
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0.23333335
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.5
-  - aniName: attack_summon
-    keys:
-    - attackMethod: 0
-      attackType: 0
-      startKeyName: attack_on
-      startKeyTime: 0
-      endType: 1
-      endKeyName: attack_off
-      endKeyTime: 0.33333334
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 0
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    effect: {fileID: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 2280520615464243483, guid: 3b6c8ff3bb6416c41952c448dc6aeb1d, type: 3}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 0}
-  shootPos: []
-  shootTrack: 0
-  shootAlwaysTrack: 0
   targetTypes: 040000000500000006000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 0
-    attackName: "\u51B2\u523A"
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon:
+  - attackName: attack_summon
     attackType: 0
     attackInfo:
       attackValue: 0
@@ -520,6 +435,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 7473170563405908938, guid: 8ad3c225050205945b10657aa300afd6, type: 3}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -560,14 +476,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 2732519068839948188}
+    needToChange: 0
     attackDistance: 1
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 040000000500000006000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -577,8 +491,8 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
-  - id: 1
-    attackName: "\u666E\u653B"
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 0
     attackInfo:
       attackValue: 0
@@ -586,6 +500,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -626,14 +541,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 4347565098670608659}
+    needToChange: 0
     attackDistance: 1
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 040000000500000006000000
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -644,7 +557,6 @@ MonoBehaviour:
     shootAlwaysTrack: 0
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
@@ -653,6 +565,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -693,14 +606,12 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
-    targetTypes: 
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -710,6 +621,32 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0.20000002
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.3
+    totalTime: 0.9666667
+  - aniName: attack_summon
+    keys:
+    - attackType: 0
+      startKeyName: attack_on
+      startKeyTime: 0
+      endType: 1
+      endKeyName: attack_off
+      endKeyTime: 0.33333334
+    totalTime: 1.3333334
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!1 &2437299196663985757
 GameObject:
   m_ObjectHideFlags: 0
@@ -1153,7 +1090,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -1164,6 +1100,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1204,7 +1141,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -1420,7 +1356,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -1431,6 +1366,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1471,7 +1407,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0
@@ -1706,6 +1641,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1746,7 +1682,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
@@ -1792,6 +1727,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -1832,7 +1768,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0

+ 20 - 141
ActionTowerDefense/Assets/Resources/Prefab/Player.prefab

@@ -5807,6 +5807,10 @@ MonoBehaviour:
   cacheRush: 0
   cacheSummonTime: 0
   cacheSummonId: 0
+  nowAttackSummonID: 0
+  AttackSummonChangeTotalTime: 1
+  AttackSummonChangeTime: 0
+  lastSoldier: 0
   demonicNums: []
   cannotConductFXs: []
   demonicPrefabs:
@@ -5939,144 +5943,13 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys: []
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 0
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 0
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    effect: {fileID: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamageRate: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      dirRandom: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    stackingWounds:
-      damage: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 1267495056}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 0}
-  shootPos: []
-  shootTrack: 0
-  shootAlwaysTrack: 0
-  targetTypes: 
-  beTargetCharacter: []
-  attackMethod:
-  - id: 0
-    attackName: 
-    attackType: 0
-    attackInfo:
-      attackValue: 0
-      damage: 0
-      attackDir: {x: 0, y: 0, z: 0}
-      effect: {fileID: 0}
-      attackEffect: 
-      floatState:
-        time: 0
-        upTime: {x: 0, y: 0}
-        backSpeed: {x: 0, y: 0}
-        rotateSpeed: {x: 0, y: 0}
-        height: {x: 0, y: 0}
-        ControlOrder: 0
-      blowUp:
-        directionType: 0
-        dir: {x: 0, y: 0, z: 0}
-        dirRandom: {x: 0, y: 0, z: 0}
-        force: 0
-        time: 0
-        haveLandingDamage: 0
-        landingDamageRate: 0
-        ControlOrder: 0
-      shotDown:
-        directionType: 0
-        dir: {x: 0, y: 0, z: 0}
-        dirRandom: {x: 0, y: 0, z: 0}
-        force: 0
-        time: 0
-        haveLandingDamage: 0
-        landingDamage: 0
-        ControlOrder: 0
-      weak:
-        time: 0
-        ControlOrder: 0
-      armorPiercing:
-        rate: 0
-      vulnerable:
-        rate: 0
-        time: 0
-      stackingWounds:
-        damage: 0
-        time: 0
-      changeDamage:
-        rate: 0
-      sustainedInjury:
-        damage: 0
-      isDemSummon: 0
-    attackTrigger: {fileID: 0}
-    attackDistance: 0
-    maxAttackDis: 0
-    minAttackDis: 0
-    needToChange: 0
-    searchMode: 0
-    targetTypes: 
-    canHitFly: 0
-    armorPiercing: 0
-    bulletPrefab: {fileID: 0}
-    shootPos: []
-    maxUpAngle: 0
-    maxDownAngle: 0
-    shootTrack: 0
-    shootAlwaysTrack: 0
-    skill: {fileID: 0}
+  attackSummonId: 0
+  attackMethod_summon: []
+  attackMethod_march: []
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
@@ -6085,6 +5958,7 @@ MonoBehaviour:
       attackDir: {x: 0, y: 0, z: 0}
       effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -6125,12 +5999,11 @@ MonoBehaviour:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
     searchMode: 0
     targetTypes: 
     canHitFly: 0
@@ -6142,6 +6015,14 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys: []
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!114 &6710692963350512933
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -6394,7 +6275,6 @@ MeshRenderer:
   m_Materials:
   - {fileID: 2100000, guid: 1b17f7962e0b9be49bb10e99c6bd95a6, type: 2}
   - {fileID: 2100000, guid: 0c319badfe2307a48b8810d891649565, type: 2}
-  - {fileID: 2100000, guid: 1b17f7962e0b9be49bb10e99c6bd95a6, type: 2}
   - {fileID: 2100000, guid: 8f08601a75fbb72488593cad9f89acca, type: 2}
   - {fileID: 2100000, guid: 0c319badfe2307a48b8810d891649565, type: 2}
   m_StaticBatchInfo:
@@ -6565,6 +6445,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -6605,7 +6486,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attributeTime: 0
   floatingState: 0
   hitState: 0
@@ -6651,6 +6531,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -6691,7 +6572,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   attackFromData: {fileID: 0}
   hitStunTime: 0
   canHitStun: 0
@@ -7032,7 +6912,6 @@ MonoBehaviour:
   canBreakWall: 0
   wallBrealNum: 10
   isShoot: 0
-  type: 0
   owner: {fileID: 0}
   isSingleAttack: 0
   cantSingleAttack: 0
@@ -7043,6 +6922,7 @@ MonoBehaviour:
     attackDir: {x: 0, y: 0, z: 0}
     effect: {fileID: 0}
     attackEffect: 
+    attackMethod_Type: 0
     floatState:
       time: 0
       upTime: {x: 0, y: 0}
@@ -7083,7 +6963,6 @@ MonoBehaviour:
       rate: 0
     sustainedInjury:
       damage: 0
-    isDemSummon: 0
   force: {x: 0, y: 0, z: 0}
   changeHurt: 0
   repelValue: 0

+ 40 - 75
ActionTowerDefense/Assets/Resources/Prefab/Tower/EnemyTower.prefab

@@ -284,8 +284,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 3581793008366722163}
   ani: {fileID: 0}
   totalDieKeepTime: 2
-  totalAttack_summonTime: 0
-  totalAttack_marchTime: 2
   showInjuryNum: 1
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -302,7 +300,9 @@ MonoBehaviour:
   totalHp: 20000
   hp: 0
   canFly: 0
+  canControlFly: 0
   nowCanFly: 0
+  canNotShotDown: 1
   canNotAddForce: 0
   canNotChangeHurt: 0
   isDie: 0
@@ -347,79 +347,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys: []
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 1
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 0}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 7473170563405908938, guid: 1a8b22d7c1002f9468efb1362b6616a3, type: 3}
-  shootPos:
-  - {fileID: 3581793008161308374}
-  shootTrack: 1
-  shootAlwaysTrack: 1
   targetTypes: 0100000003000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: biu
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 1
     attackInfo:
       attackValue: 0
-      damage: 200
+      damage: 0
       attackDir: {x: -1, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -430,14 +374,16 @@ MonoBehaviour:
       blowUp:
         directionType: 0
         dir: {x: 0, y: 0, z: 0}
+        dirRandom: {x: 0, y: 0, z: 0}
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
         ControlOrder: 0
       shotDown:
         directionType: 0
         dir: {x: 0, y: 0, z: 0}
+        dirRandom: {x: 0, y: 0, z: 0}
         force: 0
         time: 0
         haveLandingDamage: 0
@@ -451,17 +397,19 @@ MonoBehaviour:
       vulnerable:
         rate: 0
         time: 0
+      stackingWounds:
+        damage: 0
+        time: 0
       changeDamage:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
-    targetTypes: 0100000003000000
+    searchMode: 0
     canHitFly: 1
     armorPiercing: 0
     bulletPrefab: {fileID: 7473170563405908938, guid: 6608e7799b3fb254e8e24b79c88548d0, type: 3}
@@ -473,14 +421,15 @@ MonoBehaviour:
     shootAlwaysTrack: 1
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
       attackValue: 0
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -491,14 +440,16 @@ MonoBehaviour:
       blowUp:
         directionType: 0
         dir: {x: 0, y: 0, z: 0}
+        dirRandom: {x: 0, y: 0, z: 0}
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
         ControlOrder: 0
       shotDown:
         directionType: 0
         dir: {x: 0, y: 0, z: 0}
+        dirRandom: {x: 0, y: 0, z: 0}
         force: 0
         time: 0
         haveLandingDamage: 0
@@ -512,17 +463,19 @@ MonoBehaviour:
       vulnerable:
         rate: 0
         time: 0
+      stackingWounds:
+        damage: 0
+        time: 0
       changeDamage:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
-    targetTypes: 
+    searchMode: 0
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -532,6 +485,17 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys: []
+    totalTime: 2
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!1 &3581793009074591723
 GameObject:
   m_ObjectHideFlags: 0
@@ -883,6 +847,7 @@ MonoBehaviour:
   owner: {fileID: 0}
   attackerID: 0
   curX: 0
+  mats: []
 --- !u!1 &3581793009506298629
 GameObject:
   m_ObjectHideFlags: 0

+ 40 - 75
ActionTowerDefense/Assets/Resources/Prefab/Tower/Tower.prefab

@@ -24695,6 +24695,7 @@ MonoBehaviour:
   owner: {fileID: 0}
   attackerID: 0
   curX: 0
+  mats: []
 --- !u!1 &6126647543755677578
 GameObject:
   m_ObjectHideFlags: 0
@@ -25346,8 +25347,6 @@ MonoBehaviour:
   meshRenderer: {fileID: 6126647545015389580}
   ani: {fileID: 0}
   totalDieKeepTime: 2
-  totalAttack_summonTime: 0.5
-  totalAttack_marchTime: 0.5
   showInjuryNum: 0
   injuryNumText: {fileID: 6467251191553420251, guid: 9b37289f93ea76745ab2cefb79a93e3c, type: 3}
   injuryNumTextSummon: {fileID: 6467251191553420251, guid: 71b4c570c9e403d429846b71878a20c4, type: 3}
@@ -25364,7 +25363,9 @@ MonoBehaviour:
   totalHp: 10000
   hp: 0
   canFly: 0
+  canControlFly: 0
   nowCanFly: 0
+  canNotShotDown: 1
   canNotAddForce: 0
   canNotChangeHurt: 0
   isDie: 0
@@ -25410,79 +25411,23 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 565fb65a48a8ef648b3096d46e15efd9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  attackKeys: []
-  keyTimes: []
-  attackTime: 0
-  attackKeyCount: 0
-  nextStartKeyTime: 0
-  nextEndKeyTime: 0
-  curKeyNum: 0
-  attackType: 1
   attackInterval: 0
-  curDamage: 0
-  canHitFly: 1
-  attackInfo:
-    attackValue: 0
-    damage: 0
-    attackDir: {x: 0, y: 0, z: 0}
-    attackEffect: 
-    floatState:
-      time: 0
-      upTime: {x: 0, y: 0}
-      backSpeed: {x: 0, y: 0}
-      rotateSpeed: {x: 0, y: 0}
-      height: {x: 0, y: 0}
-      ControlOrder: 0
-    blowUp:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    shotDown:
-      directionType: 0
-      dir: {x: 0, y: 0, z: 0}
-      force: 0
-      time: 0
-      haveLandingDamage: 0
-      landingDamage: 0
-      ControlOrder: 0
-    weak:
-      time: 0
-      ControlOrder: 0
-    armorPiercing:
-      rate: 0
-    vulnerable:
-      rate: 0
-      time: 0
-    changeDamage:
-      rate: 0
-    sustainedInjury:
-      damage: 0
-    isDemSummon: 0
   addAttackEffect: {fileID: 0}
-  skill: {fileID: 0}
-  attackDistance: 0
-  attackTrigger: {fileID: 0}
   isAttackTriggerOn: 0
-  bulletPrefab: {fileID: 7473170563405908938, guid: 1a8b22d7c1002f9468efb1362b6616a3, type: 3}
-  shootPos:
-  - {fileID: 6126647544809975593}
-  shootTrack: 1
-  shootAlwaysTrack: 1
   targetTypes: 0400000006000000
-  beTargetCharacter: []
-  attackMethod:
-  - id: 1
-    attackName: biu
+  attackSummonId: 0
+  attackMarchId: 0
+  attackMethod_summon: []
+  attackMethod_march:
+  - attackName: attack_march
     attackType: 1
     attackInfo:
       attackValue: 0
       damage: 200
       attackDir: {x: -1, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -25493,14 +25438,16 @@ MonoBehaviour:
       blowUp:
         directionType: 0
         dir: {x: 0, y: 0, z: 0}
+        dirRandom: {x: 0, y: 0, z: 0}
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
         ControlOrder: 0
       shotDown:
         directionType: 0
         dir: {x: 0, y: 0, z: 0}
+        dirRandom: {x: 0, y: 0, z: 0}
         force: 0
         time: 0
         haveLandingDamage: 0
@@ -25514,20 +25461,22 @@ MonoBehaviour:
       vulnerable:
         rate: 0
         time: 0
+      stackingWounds:
+        damage: 0
+        time: 0
       changeDamage:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
-    targetTypes: 0400000006000000
+    searchMode: 0
     canHitFly: 1
     armorPiercing: 0
-    bulletPrefab: {fileID: 7473170563405908938, guid: 6b66bf094aee1e042ba95ae2053315e3, type: 3}
+    bulletPrefab: {fileID: 7473170563405908938, guid: 1a8b22d7c1002f9468efb1362b6616a3, type: 3}
     shootPos:
     - {fileID: 6126647544809975593}
     maxUpAngle: 180
@@ -25536,14 +25485,15 @@ MonoBehaviour:
     shootAlwaysTrack: 1
     skill: {fileID: 0}
   curAttackMethod:
-    id: 0
     attackName: 
     attackType: 0
     attackInfo:
       attackValue: 0
       damage: 0
       attackDir: {x: 0, y: 0, z: 0}
+      effect: {fileID: 0}
       attackEffect: 
+      attackMethod_Type: 0
       floatState:
         time: 0
         upTime: {x: 0, y: 0}
@@ -25554,14 +25504,16 @@ MonoBehaviour:
       blowUp:
         directionType: 0
         dir: {x: 0, y: 0, z: 0}
+        dirRandom: {x: 0, y: 0, z: 0}
         force: 0
         time: 0
         haveLandingDamage: 0
-        landingDamage: 0
+        landingDamageRate: 0
         ControlOrder: 0
       shotDown:
         directionType: 0
         dir: {x: 0, y: 0, z: 0}
+        dirRandom: {x: 0, y: 0, z: 0}
         force: 0
         time: 0
         haveLandingDamage: 0
@@ -25575,17 +25527,19 @@ MonoBehaviour:
       vulnerable:
         rate: 0
         time: 0
+      stackingWounds:
+        damage: 0
+        time: 0
       changeDamage:
         rate: 0
       sustainedInjury:
         damage: 0
-      isDemSummon: 0
     attackTrigger: {fileID: 0}
+    needToChange: 0
     attackDistance: 0
     maxAttackDis: 0
     minAttackDis: 0
-    needToChange: 0
-    targetTypes: 
+    searchMode: 0
     canHitFly: 0
     armorPiercing: 0
     bulletPrefab: {fileID: 0}
@@ -25595,6 +25549,17 @@ MonoBehaviour:
     shootTrack: 0
     shootAlwaysTrack: 0
     skill: {fileID: 0}
+  attackKeys:
+  - aniName: attack_march
+    keys: []
+    totalTime: 2
+  keyTimes: []
+  attackTime: 0
+  attackKeyCount: 0
+  nextStartKeyTime: 0
+  nextEndKeyTime: 0
+  curKeyNum: 0
+  beTargetCharacter: []
 --- !u!1 &6340229151283029767
 GameObject:
   m_ObjectHideFlags: 0

BIN
ActionTowerDefense/Assets/Resources/Spine/FlySword/FlySword.skel.bytes


+ 14 - 7
ActionTowerDefense/Assets/Resources/Spine/FlySword/FlySword_SkeletonData_Controller.controller

@@ -33,7 +33,7 @@ AnimatorState:
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: idle
+  m_Name: attack_summon
   m_Speed: 1
   m_CycleOffset: 0
   m_Transitions: []
@@ -46,7 +46,7 @@ AnimatorState:
   m_MirrorParameterActive: 0
   m_CycleOffsetParameterActive: 0
   m_TimeParameterActive: 0
-  m_Motion: {fileID: -6775556789639865451}
+  m_Motion: {fileID: 1359803735314175089}
   m_Tag: 
   m_SpeedParameter: 
   m_MirrorParameter: 
@@ -830,7 +830,7 @@ AnimatorState:
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: attack_summon
+  m_Name: idle
   m_Speed: 1
   m_CycleOffset: 0
   m_Transitions: []
@@ -843,7 +843,7 @@ AnimatorState:
   m_MirrorParameterActive: 0
   m_CycleOffsetParameterActive: 0
   m_TimeParameterActive: 0
-  m_Motion: {fileID: 1359803735314175089}
+  m_Motion: {fileID: -6775556789639865451}
   m_Tag: 
   m_SpeedParameter: 
   m_MirrorParameter: 
@@ -1418,13 +1418,13 @@ AnimatorStateMachine:
     m_Position: {x: 235, y: 65, z: 0}
   - serializedVersion: 1
     m_State: {fileID: -4214187640513013742}
-    m_Position: {x: 270, y: 130, z: 0}
+    m_Position: {x: 300, y: 150, z: 0}
   - serializedVersion: 1
     m_State: {fileID: 9071996793479598904}
     m_Position: {x: 305, y: 195, z: 0}
   - serializedVersion: 1
     m_State: {fileID: 6473274838559530208}
-    m_Position: {x: 340, y: 260, z: 0}
+    m_Position: {x: 330, y: 240, z: 0}
   - serializedVersion: 1
     m_State: {fileID: -727166668138611189}
     m_Position: {x: 375, y: 325, z: 0}
@@ -1439,7 +1439,7 @@ AnimatorStateMachine:
     m_Position: {x: 480, y: 520, z: 0}
   - serializedVersion: 1
     m_State: {fileID: -7249298543401493070}
-    m_Position: {x: 515, y: 585, z: 0}
+    m_Position: {x: 280, y: 110, z: 0}
   - serializedVersion: 1
     m_State: {fileID: -6851793231454965380}
     m_Position: {x: 550, y: 650, z: 0}
@@ -1610,6 +1610,13 @@ AnimationClip:
     floatParameter: 0
     intParameter: 0
     messageOptions: 1
+  - time: 0.33333334
+    functionName: attack_off
+    data: SpineEvent
+    objectReferenceParameter: {fileID: 0}
+    floatParameter: 0
+    intParameter: 0
+    messageOptions: 1
 --- !u!74 &7811875102909462126
 AnimationClip:
   m_ObjectHideFlags: 0

+ 4 - 4
ActionTowerDefense/Assets/Resources/Spine/Soldier_shield/soldier_shiled_SkeletonData_Controller.controller

@@ -429,7 +429,7 @@ AnimatorState:
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: idle
+  m_Name: attack_summon
   m_Speed: 1
   m_CycleOffset: 0
   m_Transitions: []
@@ -442,7 +442,7 @@ AnimatorState:
   m_MirrorParameterActive: 0
   m_CycleOffsetParameterActive: 0
   m_TimeParameterActive: 0
-  m_Motion: {fileID: 7005179908219104112}
+  m_Motion: {fileID: -9013318834618854894}
   m_Tag: 
   m_SpeedParameter: 
   m_MirrorParameter: 
@@ -930,7 +930,7 @@ AnimatorState:
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: attack_summon
+  m_Name: idle
   m_Speed: 1
   m_CycleOffset: 0
   m_Transitions: []
@@ -943,7 +943,7 @@ AnimatorState:
   m_MirrorParameterActive: 0
   m_CycleOffsetParameterActive: 0
   m_TimeParameterActive: 0
-  m_Motion: {fileID: -9013318834618854894}
+  m_Motion: {fileID: 7005179908219104112}
   m_Tag: 
   m_SpeedParameter: 
   m_MirrorParameter: 

+ 12 - 12
ActionTowerDefense/Assets/Resources/Spine/Soldier_spear/Soldier_spear_SkeletonData_Controller.controller

@@ -387,7 +387,7 @@ AnimatorState:
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: idle
+  m_Name: attack_summon1
   m_Speed: 1
   m_CycleOffset: 0
   m_Transitions: []
@@ -400,7 +400,7 @@ AnimatorState:
   m_MirrorParameterActive: 0
   m_CycleOffsetParameterActive: 0
   m_TimeParameterActive: 0
-  m_Motion: {fileID: 2845720136041279522}
+  m_Motion: {fileID: 724013998216277497}
   m_Tag: 
   m_SpeedParameter: 
   m_MirrorParameter: 
@@ -417,16 +417,16 @@ AnimatorStateMachine:
   m_ChildStates:
   - serializedVersion: 1
     m_State: {fileID: 4137026993135576459}
-    m_Position: {x: 200, y: 0, z: 0}
+    m_Position: {x: 200, y: -50, z: 0}
   - serializedVersion: 1
     m_State: {fileID: 45494793039256483}
-    m_Position: {x: 240, y: 60, z: 0}
+    m_Position: {x: 220, y: 10, z: 0}
   - serializedVersion: 1
     m_State: {fileID: -5367072750512931126}
     m_Position: {x: 270, y: 130, z: 0}
   - serializedVersion: 1
     m_State: {fileID: 1461214139103296131}
-    m_Position: {x: 305, y: 195, z: 0}
+    m_Position: {x: 310, y: 200, z: 0}
   - serializedVersion: 1
     m_State: {fileID: -7992774523793208775}
     m_Position: {x: 340, y: 260, z: 0}
@@ -447,7 +447,7 @@ AnimatorStateMachine:
     m_Position: {x: 515, y: 585, z: 0}
   - serializedVersion: 1
     m_State: {fileID: -7724775919672007531}
-    m_Position: {x: 550, y: 650, z: 0}
+    m_Position: {x: 240, y: 60, z: 0}
   - serializedVersion: 1
     m_State: {fileID: -972674473618474442}
     m_Position: {x: 585, y: 715, z: 0}
@@ -747,7 +747,7 @@ AnimatorState:
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: attack_summon02
+  m_Name: attack_summon2
   m_Speed: 1
   m_CycleOffset: 0
   m_Transitions: []
@@ -760,7 +760,7 @@ AnimatorState:
   m_MirrorParameterActive: 0
   m_CycleOffsetParameterActive: 0
   m_TimeParameterActive: 0
-  m_Motion: {fileID: 0}
+  m_Motion: {fileID: -1381087507333198176}
   m_Tag: 
   m_SpeedParameter: 
   m_MirrorParameter: 
@@ -1375,7 +1375,7 @@ AnimatorState:
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: attack_summon
+  m_Name: idle
   m_Speed: 1
   m_CycleOffset: 0
   m_Transitions: []
@@ -1388,7 +1388,7 @@ AnimatorState:
   m_MirrorParameterActive: 0
   m_CycleOffsetParameterActive: 0
   m_TimeParameterActive: 0
-  m_Motion: {fileID: -6966880377342645300}
+  m_Motion: {fileID: 2845720136041279522}
   m_Tag: 
   m_SpeedParameter: 
   m_MirrorParameter: 
@@ -1707,7 +1707,7 @@ AnimatorState:
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: attack_summon03
+  m_Name: attack_summon3
   m_Speed: 1
   m_CycleOffset: 0
   m_Transitions: []
@@ -1720,7 +1720,7 @@ AnimatorState:
   m_MirrorParameterActive: 0
   m_CycleOffsetParameterActive: 0
   m_TimeParameterActive: 0
-  m_Motion: {fileID: 0}
+  m_Motion: {fileID: -2557602510726655018}
   m_Tag: 
   m_SpeedParameter: 
   m_MirrorParameter: 

+ 2 - 2
ActionTowerDefense/Assets/Scripts/Boss/YuMenGuan/YuMenGuan.cs

@@ -183,7 +183,7 @@ public class YuMenGuan : Boss
         }
         else
         {
-            otherTarget = searchTrigger.GetMinDisTarget(attackController.targetTypes, attackController.canHitFly, attackController.curAttackMethod.searchMode);
+            otherTarget = searchTrigger.GetMinDisTarget(attackController.targetTypes, attackController.curAttackMethod.canHitFly, attackController.curAttackMethod.searchMode);
             if (otherTarget != null)
             {
                 EndCurAttackState(false);
@@ -448,7 +448,7 @@ public class YuMenGuan : Boss
             case AttackCategories.A:
                 searchTrigger.enabled = true;
                 otherTarget = null;
-                otherTarget = searchTrigger.GetMinDisTarget(attackController.targetTypes, attackController.canHitFly, attackController.curAttackMethod.searchMode);
+                otherTarget = searchTrigger.GetMinDisTarget(attackController.targetTypes, attackController.curAttackMethod.canHitFly, attackController.curAttackMethod.searchMode);
                 if (otherTarget == null)
                 {
                     isAttackWalk = false;

+ 19 - 31
ActionTowerDefense/Assets/Scripts/Bullet.cs

@@ -125,7 +125,7 @@ public class Bullet : MonoBehaviour
         isGetTarget = false;
         canAlwaysTrack = alwaysTrack;
         flyTime = 0;
-        attackInfo = own.attackController.attackInfo;
+        attackInfo = own.attackController.curAttackMethod.attackInfo;
     }
 
     private void GetEffectPos(Collider other)
@@ -167,25 +167,28 @@ public class Bullet : MonoBehaviour
                 trigedObjs.Add(hitTrigger);
                 if (Util.CheckCanHit(owner.tag, hitTrigger.owner.tag) && !hitTrigger.owner.isDie)
                 {
+                    //是否被起手式攻击
+                    if (owner.CompareTag("Demonic")
+                        && attackInfo.attackMethod_Type == AttackMethod_Type.Attack_Summon)
+                    {
+                        hitTrigger.owner.isBeHitBySummonAttack = true;
+                    }
+                    else
+                    {
+                        hitTrigger.owner.isBeHitBySummonAttack = false;
+                    }
+
+
+                    hitTrigger.BeHit(attackInfo, owner);
+                    BeHitEffect(other, hitTrigger);
+                    if (hitTrigger.owner.debugAttackFrom)
+                    {
+                        hitTrigger.owner.DebugAttackFrom(owner.name, attackInfo.damage);
+                    }
                     switch (bulletType)
                     {
                         case BulletType.Single:
                         case BulletType.Throw:
-                            //是被起手式攻击的
-                            if (attackInfo.isDemSummon)
-                            {
-                                hitTrigger.owner.isBeHitBySummonAttack = true;
-                            }
-                            else
-                            {
-                                hitTrigger.owner.isBeHitBySummonAttack = false;
-                            }
-                            hitTrigger.BeHit(attackInfo, owner);
-                            BeHitEffect(other, hitTrigger);
-                            if (hitTrigger.owner.debugAttackFrom)
-                            {
-                                hitTrigger.owner.DebugAttackFrom(owner.name, attackInfo.damage);
-                            }
                             isGetTarget = true;
                             if (canStop && (hitTrigger.owner.CompareTag("Player") || hitTrigger.owner.CompareTag("Demonic")))
                             {
@@ -213,21 +216,6 @@ public class Bullet : MonoBehaviour
                             }
                             break;
                         case BulletType.Penetrate:
-                            //是被起手式攻击的
-                            if (attackInfo.isDemSummon)
-                            {
-                                hitTrigger.owner.isBeHitBySummonAttack = true;
-                            }
-                            else
-                            {
-                                hitTrigger.owner.isBeHitBySummonAttack = false;
-                            }
-                            hitTrigger.BeHit(attackInfo, owner);
-                            BeHitEffect(other, hitTrigger);
-                            if (hitTrigger.owner.debugAttackFrom)
-                            {
-                                hitTrigger.owner.DebugAttackFrom(owner.name, attackInfo.damage);
-                            }
                             break;
                         case BulletType.Bomb:
                             break;

+ 3 - 2
ActionTowerDefense/Assets/Scripts/Bullet_Ray.cs

@@ -197,7 +197,8 @@ public class Bullet_Ray : Bullet
                 {
                     float dir = transform.position.x < hitTrigger.transform.position.x ? -1 : 1;
                     //ÊDZ»ÆðÊÖʽ¹¥»÷µÄ
-                    if (attackInfo.isDemSummon)
+                    if (owner.CompareTag("Demonic")
+                        && attackInfo.attackMethod_Type == AttackMethod_Type.Attack_Summon)
                     {
                         hitTrigger.owner.isBeHitBySummonAttack = true;
                     }
@@ -249,6 +250,6 @@ public class Bullet_Ray : Bullet
         isGetTarget = false;
         canAlwaysTrack = alwaysTrack;
         flyTime = 0;
-        attackInfo = own.attackController.attackInfo;
+        attackInfo = own.attackController.curAttackMethod.attackInfo;
     }
 }

+ 104 - 160
ActionTowerDefense/Assets/Scripts/Characters/AttackController.cs

@@ -33,6 +33,7 @@ public class AttackInfo
     public Vector3 attackDir;
     [LabelText("击中特效")] public GameObject effect;
     public AttackEffect[] attackEffect;
+    [HideInInspector] public AttackMethod_Type attackMethod_Type;
 
     //漂浮
     [Serializable]public struct FloatState
@@ -153,23 +154,31 @@ public class AttackInfo
     [ShowIf("ShowSustainedInjuryValue")][LabelText("持续伤害参数")]
     public SustainedInjury sustainedInjury;
 
-    [DisplayOnly] 
-    public bool isDemSummon;
-
     public void CopyTo(AttackInfo ai)
     {
+        ai.attackValue = attackValue;
         ai.damage = damage;
         ai.attackDir = attackDir;
+        ai.effect = effect;
+        ai.attackEffect = attackEffect;
+        ai.attackMethod_Type = attackMethod_Type;
+        ai.floatState = floatState;
         ai.blowUp = blowUp;
         ai.shotDown = shotDown;
         ai.weak = weak;
         ai.armorPiercing = armorPiercing;
+        ai.vulnerable = vulnerable;
+        ai.stackingWounds = stackingWounds;
         ai.changeDamage = changeDamage;
         ai.sustainedInjury = sustainedInjury;
-        ai.stackingWounds = stackingWounds;
     }
 }
 
+public enum AttackMethod_Type
+{
+    Attack_Summon,
+    Attack_March,
+}
 public class AttackController : MonoBehaviour
 {
     //攻击类型
@@ -182,11 +191,13 @@ public class AttackController : MonoBehaviour
         Dash = 3,       //英灵刺客,后面请删掉
     }
 
+
     [System.Serializable]
     public struct SpineAniKey
     {
         public string aniName;
         public List<AttackKeyType> keys;
+        [LabelText("动画时长")] public float totalTime;
     }
 
     public enum KeyType
@@ -198,7 +209,6 @@ public class AttackController : MonoBehaviour
     [System.Serializable]
     public struct AttackKeyType
     {
-        public int attackMethod;
         public KeyType attackType;
         public string startKeyName;
         public float startKeyTime;
@@ -210,10 +220,7 @@ public class AttackController : MonoBehaviour
     [System.Serializable]
     public struct AttackMethod
     {
-        [Header("起手式id=0,行军式id>=1")]
-        public int id;
-
-        [LabelText("攻击名称")]
+        [LabelText("攻击动画名称")]
         public string attackName;
 
         [LabelText("攻击类型")]
@@ -224,14 +231,15 @@ public class AttackController : MonoBehaviour
         public AttackTrigger attackTrigger;
 
         [Header("攻击距离")]
+        public bool needToChange;
+        [ShowIf("@!needToChange")]
         public float attackDistance;
         [ShowIf("needToChange")]
         public float maxAttackDis, minAttackDis;
-        public bool needToChange;
+
 
         [Header("目标")]
         public SearchMode searchMode;
-        public List<TargetType> targetTypes;
         public bool canHitFly;
         public int armorPiercing;               //穿甲率
 
@@ -256,134 +264,112 @@ public class AttackController : MonoBehaviour
 
     private Character owner;
 
-    [Header("所有攻击帧事件及时间")]
-    public List<SpineAniKey> attackKeys;
-    public List<float> keyTimes;                    //所有的帧事件时间
-    [HideInInspector]
-    public float attackTime;                        //攻击剩余时间
-    [HideInInspector]
-    public float attackKeyCount;                    //攻击进行时间
-    [HideInInspector]
-    public float nextStartKeyTime, nextEndKeyTime;
-    [HideInInspector]
-    public int curKeyNum;                           //当前锁定到第几个帧事件
-
-    [Header("攻击类型")]
-    public AttackType attackType;
-
-    [Header("攻击参数")]
     [LabelText("攻击间隔")]
     public float attackInterval;
     [HideInInspector]
-    public int curDamage;
-    [HideInInspector]
-    public bool canHitFly;
-    [HideInInspector]
-    public AttackInfo attackInfo;
-    [HideInInspector]
     public GameObject addAttackEffect;
-    [HideInInspector]
-    public SpecialSkills skill;
-    [HideInInspector]
-    public float attackDistance;
 
     [Header("攻击范围")]
     [HideInInspector]
-    public AttackTrigger attackTrigger;
-    [HideInInspector]
     public bool isAttackTriggerOn = false;          //当前Attack Trigger是否开启
 
-    [Header("远程单位")]
-    [HideInInspector]
-    public GameObject bulletPrefab;                 //子弹
+    public List<TargetType> targetTypes;
+    [DisplayOnly] public int attackSummonId;
+    [DisplayOnly] public int attackMarchId;
+    [LabelText("攻击模式:起手式")] public AttackMethod[] attackMethod_summon;
+    [LabelText("攻击模式:行军式")] public AttackMethod[] attackMethod_march;
+    [DisplayOnly] public AttackMethod curAttackMethod;
+
+    [Header("所有攻击帧事件及时间")]
+    public List<SpineAniKey> attackKeys;
+    public List<float> keyTimes;                    //所有的帧事件时间
     [HideInInspector]
-    public List<Transform> shootPos;                //子弹发射位置
+    public float attackTime;                        //攻击剩余时间
     [HideInInspector]
-    public bool shootTrack = false;                 //是否初始时瞄准目标
+    public float attackKeyCount;                    //攻击进行时间
     [HideInInspector]
-    public bool shootAlwaysTrack = false;           //是否始终追踪
-
-    [Header("目标")]
-    public List<TargetType> targetTypes;
-    [DisplayOnly]
-    public List<Character> beTargetCharacter = new List<Character>(); //被哪些锁定
-    //public float getDistanceOffset = 0f;
-
-    [Header("攻击模式")]
-    public AttackMethod[] attackMethod;
+    public float nextStartKeyTime, nextEndKeyTime;
     [HideInInspector]
-    public AttackMethod curAttackMethod;
+    public int curKeyNum;                           //当前锁定到第几个帧事件
 
     private SoldierLevelRecord slr;
-
+    [DisplayOnly] public List<Character> beTargetCharacter = new List<Character>(); //被哪些锁定
     public void Init()
     {
         owner = GetComponent<Character>();
-        if (attackMethod.Length > 0)
+        for (int i = 0; i < attackMethod_summon.Length; i++)
         {
-            attackInfo = attackMethod[0].attackInfo;
-            curDamage = attackInfo.damage;
+            if (attackMethod_summon[i].needToChange)
+            {
+                attackMethod_summon[i].attackDistance = UnityEngine.Random.Range(attackMethod_summon[i].minAttackDis,
+                    attackMethod_summon[i].maxAttackDis);
+            }
+            attackMethod_summon[i].attackInfo.attackMethod_Type = AttackMethod_Type.Attack_Summon;
         }
-        for (int i = 0; i < attackMethod.Length; i++)
+        for (int i = 0; i < attackMethod_march.Length; i++)
         {
-            if (attackMethod[i].needToChange)
+            if (attackMethod_march[i].needToChange)
             {
-                attackMethod[i].attackDistance = UnityEngine.Random.Range(attackMethod[i].minAttackDis, 
-                    attackMethod[i].maxAttackDis);
+                attackMethod_march[i].attackDistance = UnityEngine.Random.Range(attackMethod_march[i].minAttackDis,
+                    attackMethod_march[i].maxAttackDis);
             }
+            attackMethod_march[i].attackInfo.attackMethod_Type = AttackMethod_Type.Attack_March;
         }
-        attackDistance = attackMethod[0].attackDistance;
         slr = GameManager.instance.GetComponent<SoldierLevelRecord>();
+        attackMarchId = 0;
+        attackSummonId = 0;
     }
 
     private void OnEnable()
     {
-        if (attackTrigger != null)
-        {
-            attackTrigger.gameObject.SetActive(false);
-        }
+
     }
 
-    public void ChooseAttack(int id)
+    public void ChooseAttack(int id, AttackMethod_Type attackMethod_Type)
     {
-        //默认起手式只使用一次,id=0为起手式
-        curAttackMethod = attackMethod[id];
-        attackType = curAttackMethod.attackType;
-        canHitFly = curAttackMethod.canHitFly;
-        attackInfo = curAttackMethod.attackInfo;
-        curDamage = attackInfo.damage;
-        attackTrigger = curAttackMethod.attackTrigger;
-        Demonic dem = owner.GetComponent<Demonic>();
-        if (dem)
-        {
-            for (int i = 0; i < 3; i++)
-            {
-                if (GameManager.curSoldiers[i] == dem.soldierType)
-                {
-                    attackTrigger.attackInfo.armorPiercing.rate += slr.seb[i].armorPiercing;
-                }
-            }
-        }
-        bulletPrefab = curAttackMethod.bulletPrefab;
-        shootPos = curAttackMethod.shootPos;
-        shootTrack = curAttackMethod.shootTrack;
-        shootAlwaysTrack = curAttackMethod.shootAlwaysTrack;
-        targetTypes = curAttackMethod.targetTypes;
-        if (attackType == AttackType.Special && skill == null)
+        switch (attackMethod_Type)
         {
-            skill = curAttackMethod.skill;
-            skill.owner = owner;
+            case AttackMethod_Type.Attack_Summon:
+                curAttackMethod = attackMethod_summon[id];
+                break;
+            case AttackMethod_Type.Attack_March:
+                curAttackMethod = attackMethod_march[id];
+                break;
         }
-        attackDistance = curAttackMethod.attackDistance;
-        
-        if (id == 0 && GetComponent<Demonic>())
+        if (curAttackMethod.attackType == AttackType.Shoot)
         {
-            attackInfo.isDemSummon = true;
+            curAttackMethod.attackTrigger.isShoot = true;
         }
-        else
+
+        AttackTrigger attackTrigger = curAttackMethod.attackTrigger;
+        attackTrigger.attackInfo = curAttackMethod.attackInfo;
+        switch (curAttackMethod.attackType)
         {
-            attackInfo.isDemSummon = false;
+        
+            case AttackType.Melee:
+                break;
+            case AttackType.Shoot:
+                attackTrigger.isShoot = true;
+                break;
+            case AttackType.Special:
+                curAttackMethod.skill.Attack();
+                break;
+            default:
+                break;
         }
+        //升级时加穿甲值,需要移动到升级的地方去
+        //目前没有用到穿甲值故暂时注释掉
+        //Demonic dem = owner as Demonic;
+        //if (dem)
+        //{
+        //    for (int i = 0; i < 3; i++)
+        //    {
+        //        if (GameManager.curSoldiers[i] == dem.soldierType)
+        //        {
+        //            curAttackMethod.attackTrigger.attackInfo.armorPiercing.rate += slr.seb[i].armorPiercing;
+        //        }
+        //    }
+        //}
     }
 
     public void SetNextKeyTimes()
@@ -398,19 +384,15 @@ public class AttackController : MonoBehaviour
 
     public virtual void Attack_summon()
     {
-        owner.ani.Play("attack_summon", 0, 0);
-        if (attackType == AttackType.Shoot)
-        {
-            attackTrigger.isShoot = true;
-            attackTrigger.type = AttackTrigger.attackType.summon;
-        }
-        attackTime = owner.totalAttack_summonTime;
+        ChooseAttack(attackSummonId, AttackMethod_Type.Attack_Summon);
+        owner.ani.Play(curAttackMethod.attackName, 0, 0);
         attackKeyCount = 0;
         keyTimes = new List<float>();
         foreach (SpineAniKey sak in attackKeys)
         {
-            if (sak.aniName == "attack_summon")
+            if (sak.aniName == curAttackMethod.attackName)
             {
+                attackTime = sak.totalTime;
                 foreach (AttackKeyType akt in sak.keys)
                 {
                     keyTimes.Add(akt.startKeyTime);
@@ -421,57 +403,20 @@ public class AttackController : MonoBehaviour
         }
         curKeyNum = 0;
         SetNextKeyTimes();
-
-        switch (attackType)
-        {
-            case AttackType.Melee:
-                attackTrigger.attackInfo = attackInfo;
-                break;
-            case AttackType.Special:
-                skill.Attack();
-                break;
-            default:
-                break;
-        }
-        ChooseAttack(attackMethod[0].id);
         owner.ChangeState(CharacterState.Attack);
     }
 
-    public virtual void Attack_march(int id)
+    public virtual void Attack_march()
     {
-        Vector3 leftDir = owner.GetMoveDir();
-        if (leftDir.x > 0.3f)
-        {
-            if (owner.bodyTrans.localScale.x > 0)
-            {
-                owner.Turn();
-            }
-        }
-        else if (leftDir.x < -0.3f)
-        {
-            if (owner.bodyTrans.localScale.x < 0)
-            {
-                owner.Turn();
-            }
-        }
-        owner.ani.Play("attack_march", 0, 0);
-        if (attackType == AttackType.Shoot)
-        {
-            attackTrigger.isShoot = true;
-            attackTrigger.type = AttackTrigger.attackType.march;
-        }
-        if (attackType == AttackType.Special)
-        {
-            skill.Attack();
-        }
-
-        attackTime = owner.totalAttack_marchTime;
+        ChooseAttack(attackMarchId, AttackMethod_Type.Attack_March);
+        owner.ani.Play(curAttackMethod.attackName, 0, 0);
         attackKeyCount = 0;
         keyTimes = new List<float>();
         foreach (SpineAniKey sak in attackKeys)
         {
-            if (sak.aniName == "attack_march")
+            if (sak.aniName == curAttackMethod.attackName)
             {
+                attackTime = sak.totalTime;
                 foreach (AttackKeyType akt in sak.keys)
                 {
                     keyTimes.Add(akt.startKeyTime);
@@ -482,15 +427,14 @@ public class AttackController : MonoBehaviour
         }
         curKeyNum = 0;
         SetNextKeyTimes();
-        attackTrigger.attackInfo = attackInfo;
         owner.ChangeState(CharacterState.Attack);
     }
 
     public virtual void AttackShootEvent(int attackId, int shootId)
     {
-        GameObject bulletObj = PoolManager.Instantiate(bulletPrefab);
+        GameObject bulletObj = PoolManager.Instantiate(curAttackMethod.bulletPrefab);
         Bullet bullet = bulletObj.GetComponent<Bullet>();
-        Vector3 attackDir = attackInfo.attackDir.normalized;
+        Vector3 attackDir = curAttackMethod.attackInfo.attackDir.normalized;
         if (owner.bodyTrans.localScale.x < 0)
         {
             attackDir.x = -attackDir.x;
@@ -499,8 +443,8 @@ public class AttackController : MonoBehaviour
         {
             bullet.canTransmit = true;
         }
-        bullet.BeShoot(owner, shootPos[shootId].position, attackDir, shootTrack, 
-            shootAlwaysTrack, owner.attackTarget ? owner.attackTarget : null);
+        bullet.BeShoot(owner, curAttackMethod.shootPos[shootId].position, attackDir, curAttackMethod.shootTrack, 
+            curAttackMethod.shootAlwaysTrack, owner.attackTarget ? owner.attackTarget : null);
     }
 
     public void JudgeTriggerOnOff()
@@ -509,17 +453,17 @@ public class AttackController : MonoBehaviour
         attackKeyCount += Time.deltaTime;
         if (!isAttackTriggerOn && attackKeyCount >= nextStartKeyTime && attackKeyCount <= nextEndKeyTime)
         {
-            if (attackType == AttackType.Special)
+            if (curAttackMethod.attackType == AttackType.Special)
             {
-                skill.Attack();
+                curAttackMethod.skill.Attack();
             }
             isAttackTriggerOn = true;
-            attackTrigger.gameObject.SetActive(true);
+            curAttackMethod.attackTrigger.gameObject.SetActive(true);
         }
         else if (isAttackTriggerOn && attackKeyCount >= nextEndKeyTime)
         {
             isAttackTriggerOn = false;
-            attackTrigger.gameObject.SetActive(false);
+            curAttackMethod.attackTrigger.gameObject.SetActive(false);
             SetNextKeyTimes();
         }
     }

+ 14 - 12
ActionTowerDefense/Assets/Scripts/Characters/AttackTrigger.cs

@@ -6,18 +6,11 @@ using Sirenix.OdinInspector;
 
 public class AttackTrigger : MonoBehaviour
 {
-    public enum attackType
-    {
-        summon = 0,
-        march = 1,
-    }
-
     [FoldoutGroup("场景交互-墙")] [LabelText("能破墙")] public bool canBreakWall;
     [FoldoutGroup("场景交互-墙")] public int wallBrealNum = 10;
 
     [Header("是否是远程角色")]
     public bool isShoot;
-    public attackType type;
 
     public Character owner;
     [Header("是否为单体攻击")]
@@ -50,8 +43,8 @@ public class AttackTrigger : MonoBehaviour
                     return;
                 }
                 {
-                    //是被起手式攻击的
-                    if (attackInfo.isDemSummon)
+                    //是被起手式攻击的
+                    if (owner.CompareTag("Demonic") && attackInfo.attackMethod_Type == AttackMethod_Type.Attack_Summon)
                     {
                         hitTrigger.owner.isBeHitBySummonAttack = true;
                     }
@@ -85,12 +78,21 @@ public class AttackTrigger : MonoBehaviour
         if (isShoot)
         {
             CharacterColliders cc = GetComponentInParent<CharacterColliders>();
-            switch (type)
+            if (owner.CompareTag("Demonic"))
             {
-                case attackType.summon:
+                Debug.Log(111);
+            }
+            switch (attackInfo.attackMethod_Type)
+            {
+                case AttackMethod_Type.Attack_Summon:
                     cc.Attack_summonShootEvent(0);
                     break;
-                case attackType.march:
+                case AttackMethod_Type.Attack_March:
+                    if (owner.CompareTag("Demonic"))
+                    {
+                        Debug.Log(2222);
+                    }
+                    
                     cc.Attack_marchShootEvent(0);
                     break;
             }

+ 18 - 5
ActionTowerDefense/Assets/Scripts/Characters/Character.cs

@@ -53,13 +53,8 @@ public class Character : MonoBehaviour
     [HideInInspector]
     public MeshRenderer meshRenderer;
 
-    [Header("动画控制器")]
     [FoldoutGroup("动画", order: -1)] public Animator ani;
-
-    [Header("重要动画时间")]
     [FoldoutGroup("动画")] public float totalDieKeepTime = 2f;
-    [FoldoutGroup("动画")] public float totalAttack_summonTime = 0.5f;
-    [FoldoutGroup("动画")] public float totalAttack_marchTime = 0.5f;
 
     [Header("跳字开关")]
     [FoldoutGroup("伤害跳字")] public bool showInjuryNum;
@@ -196,6 +191,24 @@ public class Character : MonoBehaviour
         }
     }
 
+    public void CheckTurn(float dirX)
+    {
+        if (dirX > 0.1f)
+        {
+            if (bodyTrans.localScale.x > 0)
+            {
+                Turn();
+            }
+        }
+        else if (dirX < -0.1f)
+        {
+            if (bodyTrans.localScale.x < 0)
+            {
+                Turn();
+            }
+        }
+    }
+
     public virtual void OnState()
     {
         if (pastWordTime > 0)

+ 13 - 48
ActionTowerDefense/Assets/Scripts/Characters/Demonic.cs

@@ -29,9 +29,6 @@ public class Demonic : MoveCharacter
     public bool isRecorded;
 
     [Header("攻击")]
-    public int curAttackID;
-    private AttackController.AttackMethod[] am;
-    private int len;
     private float pastAttackTime;
     private bool isConAttack;       //连续攻击,不切idle动画
 
@@ -46,16 +43,10 @@ public class Demonic : MoveCharacter
     public int dropSoulMin = 1;
     public float dropSoulAngle = 60f;
     
-    private void Start()
-    {
-        am = attackController.attackMethod;
-        len = am.Length;
-    }
 
     private void OnDisable()
     {
         PlayersInput.instance[playerID].OnDemonicRecycle(this);
-        curAttackID = 0;
     }
 
     public override void FixedUpdate()
@@ -66,7 +57,7 @@ public class Demonic : MoveCharacter
 
     public bool SearchTarget()
     {
-        targetCharacter = searchTrigger.GetMinDisTarget(attackController.targetTypes, attackController.canHitFly,attackController.curAttackMethod.searchMode);
+        targetCharacter = searchTrigger.GetMinDisTarget(attackController.targetTypes, attackController.curAttackMethod.canHitFly,attackController.curAttackMethod.searchMode);
         if (targetCharacter != null)
         {
             return true;
@@ -124,7 +115,7 @@ public class Demonic : MoveCharacter
                     ChangeSearchState(SearchState.NoTarget);
                     break;
                 }
-                attackDis = attackController.attackDistance + targetCharacter.beHitDistance;
+                attackDis = attackController.curAttackMethod.attackDistance + targetCharacter.beHitDistance;
                 if (targetCharacter != null && Mathf.Abs(targetCharacter.transform.position.x - transform.position.x) <= attackDis)
                 {
                     ChangeSearchState(SearchState.InAttackScope);
@@ -136,7 +127,8 @@ public class Demonic : MoveCharacter
                 {
                     //判断是否在射程夹角内
                     AttackController.AttackMethod am = attackController.curAttackMethod;
-                    if (am.attackType == AttackController.AttackType.Shoot && am.id != 0)
+                    if (am.attackType == AttackController.AttackType.Shoot 
+                        && attackController.curAttackMethod.attackInfo.attackMethod_Type == AttackMethod_Type.Attack_March)
                     {
                         Vector3 dir = targetCharacter.beSearchTrigger.transform.position - transform.position;
                         float angle = Vector3.Angle(dir, Vector3.left * bodyTrans.localScale.x);
@@ -146,7 +138,7 @@ public class Demonic : MoveCharacter
                             break;
                         }
                     }
-                    attackDis = attackController.attackDistance + targetCharacter.beHitDistance;
+                    attackDis = attackController.curAttackMethod.attackDistance + targetCharacter.beHitDistance;
                     if (!targetCharacter.gameObject.activeInHierarchy || targetCharacter.isDie
                         || Mathf.Abs(targetCharacter.transform.position.x - transform.position.x) > attackDis)
                     {
@@ -677,9 +669,8 @@ public class Demonic : MoveCharacter
                 {
                     rb.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezeRotation;
                 }
-                attackController.ChooseAttack(curAttackID);
                 attackController.isAttackTriggerOn = false;
-                attackController.attackTrigger.gameObject.SetActive(false);
+                attackController.curAttackMethod.attackTrigger.gameObject.SetActive(false);
                 break;
             case CharacterState.Die:
                 isDie = false;
@@ -755,49 +746,23 @@ public class Demonic : MoveCharacter
             rb.constraints = RigidbodyConstraints.FreezeAll;
             isFreeze = true;
         }
+        CheckTurn(-PlayersInput.instance[playerID].bodyTrans.localScale.x);
         attackController.Attack_summon();
-        Vector3 moveDir;
-        if (PlayersInput.instance[playerID].bodyTrans.localScale.x > 0)
-        {
-            moveDir = Vector3.left;
-        }
-        else
-        {
-            moveDir = Vector3.right;
-        }
-        if (moveDir.x > 0.3f)
-        {
-            if (bodyTrans.localScale.x > 0)
-            {
-                Turn();
-            }
-        }
-        else if (moveDir.x < -0.3f)
-        {
-            if (bodyTrans.localScale.x < 0)
-            {
-                Turn();
-            }
-        }
-        invincibleTime = totalAttack_summonTime;
+        invincibleTime = attackController.attackTime;
         attackTarget = targetCharacter;
-        curAttackID = 1;
     }
 
     public virtual void Attack_march()
     {
-        attackController.Attack_march(curAttackID);
-        if (curAttackID + 1 < len)
-        {
-            curAttackID += 1;
-        }
-        else if (am[0].id == 0)
+        CheckTurn(GetMoveDir().x);
+        attackController.Attack_march();
+        if (attackController.attackMarchId + 1 < attackController.attackMethod_march.Length)
         {
-            curAttackID = 1;
+            attackController.attackMarchId += 1;
         }
         else
         {
-            curAttackID = 0;
+            attackController.attackMarchId = 0;
         }
         attackTarget = targetCharacter;
         pastAttackTime = 0;

+ 12 - 12
ActionTowerDefense/Assets/Scripts/Characters/Enemy.cs

@@ -69,7 +69,6 @@ public class Enemy : MoveCharacter
     [Header("攻击")]
     public float attackRatio;
     protected int curAttackID;
-    private AttackController.AttackMethod[] am;
     public int len;
     protected float pastAttackTime;
     protected bool isConAttack;       //连续攻击,不切idle动画
@@ -87,8 +86,7 @@ public class Enemy : MoveCharacter
 
     protected virtual void Start()
     {
-        am = attackController.attackMethod;
-        len = am.Length;
+        len = attackController.attackMethod_march.Length;
     }
 
     protected virtual void OnEnable()
@@ -110,7 +108,7 @@ public class Enemy : MoveCharacter
         attributeStatus.curSpecialStates = SpecialState.Null;
         attributeStatus.attributeTime = 0;
         curAttackID = 0;
-        attackController.ChooseAttack(curAttackID);
+        attackController.curAttackMethod = attackController.attackMethod_march[0];
     }
 
     public override void FixedUpdate()
@@ -573,9 +571,8 @@ public class Enemy : MoveCharacter
             //case CharacterState.Hurt:
             //    break;
             case CharacterState.Attack:
-                attackController.ChooseAttack(curAttackID);
                 attackController.isAttackTriggerOn = false;
-                attackController.attackTrigger.gameObject.SetActive(false);
+                attackController.curAttackMethod.attackTrigger.gameObject.SetActive(false);
                 break;
             case CharacterState.Die:
                 isDie = false;
@@ -719,7 +716,7 @@ public class Enemy : MoveCharacter
 
     public bool SearchTarget()
     {
-        targetCharacter = searchTrigger.GetMinDisTarget(attackController.targetTypes, attackController.canHitFly, attackController.curAttackMethod.searchMode);
+        targetCharacter = searchTrigger.GetMinDisTarget(attackController.targetTypes, attackController.curAttackMethod.canHitFly, attackController.curAttackMethod.searchMode);
 
         if (targetCharacter != null)
         {
@@ -762,7 +759,7 @@ public class Enemy : MoveCharacter
                     ChangeSearchState(SearchState.NoTarget);
                     break;
                 }
-                attackDis = attackController.attackDistance + targetCharacter.beHitDistance;
+                attackDis = attackController.curAttackMethod.attackDistance + targetCharacter.beHitDistance;
                 if (targetCharacter != null && Mathf.Abs(targetCharacter.transform.position.x - transform.position.x) <= attackDis)
                 {
                     ChangeSearchState(SearchState.InAttackScope);
@@ -774,7 +771,8 @@ public class Enemy : MoveCharacter
                 {
                     //判断是否在射程夹角内
                     AttackController.AttackMethod am = attackController.curAttackMethod;
-                    if (am.attackType == AttackController.AttackType.Shoot && am.id != 0)
+                    if (am.attackType == AttackController.AttackType.Shoot 
+                        && attackController.curAttackMethod.attackInfo.attackMethod_Type == AttackMethod_Type.Attack_March)
                     {
                         Vector3 dir = targetCharacter.beSearchTrigger.transform.position - transform.position;
                         float angle = Vector3.Angle(dir, Vector3.left * bodyTrans.localScale.x);
@@ -783,7 +781,7 @@ public class Enemy : MoveCharacter
                             ChangeSearchState(SearchState.NoTarget);
                         }
                     }
-                    attackDis = attackController.attackDistance + targetCharacter.beHitDistance;
+                    attackDis = attackController.curAttackMethod.attackDistance + targetCharacter.beHitDistance;
                     if (!targetCharacter.gameObject.activeInHierarchy || targetCharacter.isDie
                         || Mathf.Abs(targetCharacter.transform.position.x - transform.position.x) > attackDis)
                     {
@@ -801,18 +799,20 @@ public class Enemy : MoveCharacter
     }
     public void Attack_summon()
     {
+        CheckTurn(GetMoveDir().x);
         attackController.Attack_summon();
         attackTarget = targetCharacter;
     }
 
     public virtual void Attack_march()
     {
-        attackController.Attack_march(curAttackID);
+        CheckTurn(GetMoveDir().x);
+        attackController.Attack_march();
         if (curAttackID + 1 < len)
         {
             curAttackID += 1;
         }
-        else if (am[0].id == 0)
+        else if (attackController.curAttackMethod.attackInfo.attackMethod_Type == AttackMethod_Type.Attack_Summon)
         {
             curAttackID = 1;
         }

+ 1 - 2
ActionTowerDefense/Assets/Scripts/Characters/Monkey.cs

@@ -68,9 +68,8 @@ public class Monkey : Enemy
                 rb.velocity = Vector3.zero;
                 break;
             case CharacterState.Attack:
-                attackController.ChooseAttack(curAttackID);
                 attackController.isAttackTriggerOn = false;
-                attackController.attackTrigger.gameObject.SetActive(false);
+                attackController.curAttackMethod.attackTrigger.gameObject.SetActive(false);
                 break;
             case CharacterState.Die:
                 isDie = false;

+ 8 - 1
ActionTowerDefense/Assets/Scripts/Characters/MoveCharacter.cs

@@ -299,7 +299,14 @@ public class MoveCharacter : Character
         hp -= damageData;
 
         //敌方士兵受起手式伤害/我方士兵受伤 闪白
-        beHitTrigger.JudgeTurnWhite(attackInfo.isDemSummon, this);
+        if(attackFrom.CompareTag("Demonic") && attackInfo.attackMethod_Type == AttackMethod_Type.Attack_Summon)
+        {
+            beHitTrigger.JudgeTurnWhite(true, this);
+        }
+        else
+        {
+            beHitTrigger.JudgeTurnWhite(false, this);
+        }
 
         //击中特效(如果有的话)
         if (attackInfo.effect)

+ 44 - 53
ActionTowerDefense/Assets/Scripts/Characters/PlayerController.cs

@@ -21,7 +21,7 @@ public class PlayerController : MoveCharacter
     [LabelText("主角刷新位置")] public Vector2 refreshPos;
     public bool canJump;
     public Animator aniCollider;
-
+    //
     [FoldoutGroup("组件", order:-1)] public UIHP uiMp;    
     [FoldoutGroup("组件")] public Collider soulCollector;
     [FoldoutGroup("组件")] public SkeletonMecanim skeletonMecanim;
@@ -30,9 +30,27 @@ public class PlayerController : MoveCharacter
     private SpiritSystem spiritSystem;
     private ScreenShake ss;
     private ConductController conductController;
-
     //
-
+    [FoldoutGroup("召唤属性", order:-1)] public float totalSummonTime;
+    [HideInInspector]
+    public float summonTime;
+    [FoldoutGroup("召唤属性")] public float onlySummonTime;
+    [HideInInspector]
+    public float restSummonTime;
+    private SoldierLevelRecord slr;
+    [HideInInspector]
+    public float cacheDir;  //召唤的时候按左右召唤结束不会响应手感不好,缓存一下,召唤后摇期间有左右响应的话会转向
+    [HideInInspector]
+    public bool cacheRush; //召唤的时候按冲刺结束不会响应手感不好,缓存一下,召唤后摇期间按下冲刺的话会冲刺
+    [HideInInspector]
+    public float cacheSummonTime; //无法召唤时按下召唤键不会召唤,手感不好,缓存几帧,在这几帧内落地会立即召唤;
+    [HideInInspector]
+    public int cacheSummonId;
+    [FoldoutGroup("召唤属性")] [DisplayOnly] public int nowAttackSummonID;
+    [FoldoutGroup("召唤属性")] [LabelText("士兵起手式连段时间")] public float AttackSummonChangeTotalTime;
+    [FoldoutGroup("召唤属性")] [DisplayOnly] public float AttackSummonChangeTime;
+    [HideInInspector] public SoldierType lastSoldier;
+    //
     [Header("蓝耗")]
     public float mp;
     public float totalMp;
@@ -83,24 +101,6 @@ public class PlayerController : MoveCharacter
     public float flySpeed = 5;
     public float playerMaxFlyHeight;
 
-    [Header("召唤属性")]
-    public float totalSummonTime;
-    [HideInInspector]
-    public float summonTime;
-    public float onlySummonTime;
-    [HideInInspector]
-    public float restSummonTime;
-    private SoldierLevelRecord slr;
-       
-    [HideInInspector]
-    public float cacheDir;  //召唤的时候按左右召唤结束不会响应手感不好,缓存一下,召唤后摇期间有左右响应的话会转向
-    [HideInInspector]
-    public bool cacheRush; //召唤的时候按冲刺结束不会响应手感不好,缓存一下,召唤后摇期间按下冲刺的话会冲刺
-    [HideInInspector]
-    public float cacheSummonTime; //无法召唤时按下召唤键不会召唤,手感不好,缓存几帧,在这几帧内落地会立即召唤;
-    [HideInInspector]
-    public int cacheSummonId;
-
     [Header("召唤使魔")]
     public TextMeshProUGUI[] demonicNums;
     public GameObject[] cannotConductFXs;
@@ -913,10 +913,9 @@ public class PlayerController : MoveCharacter
         rushTime -= Time.deltaTime;
         cacheRushTime -= Time.deltaTime;
         dieKeepTime -= Time.deltaTime;
-        if (nowConductButton != -1)
-        {
-            conductTime += Time.deltaTime;
-        }
+        if (nowConductButton != -1) conductTime += Time.deltaTime;
+        if (AttackSummonChangeTime <= 0) nowAttackSummonID = 0;
+        else AttackSummonChangeTime -= Time.deltaTime;
         CachedPlayerInput();
         Vector3 velocity = rb.velocity;
         bool isToWall = false;
@@ -1373,9 +1372,6 @@ public class PlayerController : MoveCharacter
                 ani.Play("fall", 0, 0);
                 //animalAni.SetInteger("state", (int)PlayerState.Fall);
                 break;
-            case CharacterState.Attack:
-                attackController.attackTime = totalAttack_summonTime;
-                break;
             case CharacterState.KeepAttack:
                 aniCollider.Play("Attack_summonKeep", 1, 0);
                 break;
@@ -1522,6 +1518,7 @@ public class PlayerController : MoveCharacter
         uiMp.Show(mp, totalMp);
         GameObject demonicObj = PoolManager.Instantiate(prefab);
         Demonic demonic = demonicObj.GetComponent<Demonic>();
+
         slr.SoldierAddLevelBuff(demonic);
         onlySummonTime = demonic.summonTime;
         invincibleTime = demonic.summonTime + addSummonInvincibleTime;
@@ -1566,7 +1563,26 @@ public class PlayerController : MoveCharacter
         demonic.Init();
         int order = prefab.GetComponent<Demonic>().baseSortingOrder + demonicDic[demonic.id].Count;
         demonic.SetSortingOrder(order);
+
+        int attackSummonId = nowAttackSummonID;
+        if(lastSoldier != demonic.soldierType)
+        {
+            attackSummonId = 0;
+        }
+        demonic.attackController.attackSummonId = attackSummonId;
         demonic.Attack_summon();
+        lastSoldier = demonic.soldierType;
+        attackSummonId++;
+        if (attackSummonId >= demonic.attackController.attackMethod_summon.Length)
+        {
+            attackSummonId = 0;
+            AttackSummonChangeTime = 0;
+        }
+        else
+        {
+            AttackSummonChangeTime = AttackSummonChangeTotalTime;
+        }
+        nowAttackSummonID = attackSummonId;
         //id 3~6 为四个英灵
         if (id >= 3)
         {
@@ -1632,31 +1648,6 @@ public class PlayerController : MoveCharacter
         return true;
     }
 
-    public void Attack_summon()
-    {
-        attackController.Attack_summon();
-        if (leftDir.x > 0.3f)
-        {
-            if (bodyTrans.localScale.x > 0)
-            {
-                Turn();
-            }
-            SetAttackState(PlayerAttackState.WalkForward);
-        }
-        else if (leftDir.x < -0.3f)
-        {
-            if (bodyTrans.localScale.x < 0)
-            {
-                Turn();
-            }
-            SetAttackState(PlayerAttackState.WalkForward);
-        }
-        else
-        {
-            SetAttackState(PlayerAttackState.Idle);
-        }
-    }
-
     public void SetAttackState(PlayerAttackState value)
     {
         attackState = value;

+ 4 - 4
ActionTowerDefense/Assets/Scripts/Characters/Polliwog.cs

@@ -50,7 +50,7 @@ public class Polliwog : Enemy
         currentVelocity = Vector2.zero;
         SingleEnemyConfig cfgEnemy = GameManager.instance.allCfgData.CfgEnemy.Get("òòò½");
         moveSpeed =  Random.Range(cfgEnemy.MinMoveSpeed, cfgEnemy.MaxMoveSpeed);
-        attackController.attackTrigger.attackInfo.damage = cfgEnemy.AttackMarch[0];
+        attackController.curAttackMethod.attackTrigger.attackInfo.damage = cfgEnemy.AttackMarch[0];
         totalHp = cfgEnemy.HP;
         rotationSpeed = baseRotationSpeed + Random.Range(-rotationSpeedDeviation, rotationSpeedDeviation);
         ChangeState(CharacterState.Run);
@@ -69,7 +69,7 @@ public class Polliwog : Enemy
 
     public override void ChangeState(CharacterState newState)
     {
-        Debug.Log("´Ó" + state + "Çл»µ½" + newState);
+        //Debug.Log("´Ó" + state + "Çл»µ½" + newState);
         if (state == newState)
         {
             return;
@@ -185,9 +185,9 @@ public class Polliwog : Enemy
 
                 transform.rotation = Quaternion.Euler(0, 0, newAngle);
                 currentVelocity = -transform.right * moveSpeed;
-                if (!attackController.attackTrigger.gameObject.activeSelf)
+                if (!attackController.curAttackMethod.attackTrigger.gameObject.activeSelf)
                 {
-                    attackController.attackTrigger.gameObject.SetActive(true);
+                    attackController.curAttackMethod.attackTrigger.gameObject.SetActive(true);
                 }
                 transform.position += (Vector3)currentVelocity * Time.fixedDeltaTime;
                 break;

+ 0 - 3
ActionTowerDefense/Assets/Scripts/Characters/SearchTrigger.cs

@@ -91,9 +91,6 @@ public class SearchTrigger : MonoBehaviour
 
     private void OnTriggerEnter(Collider other)
     {
-        Enemy_Leafghost enemy_Leafghost = owner.GetComponent<Enemy_Leafghost>();
-        PlayerController playerController = other.GetComponentInParent<PlayerController>();
-
         BeSearchTrigger trigger = other.GetComponent<BeSearchTrigger>();
         if (trigger)
         {

+ 60 - 18
ActionTowerDefense/Assets/Scripts/Characters/SoldierBuff.cs

@@ -10,7 +10,8 @@ public class SoldierBuff : MonoBehaviour
 
     private int initTotalHp;
     private int initHp;
-    private List<AttackInfo> initAttackInfo = new();
+    private List<AttackInfo> initAttackSummonInfo = new();
+    private List<AttackInfo> initAttackMarchInfo = new();
     private int initArmor;
 
     private void Awake()
@@ -21,11 +22,17 @@ public class SoldierBuff : MonoBehaviour
 
         initTotalHp = dem.totalHp;
         initHp = dem.hp;
-        for (int i = 0; i < ac.attackMethod.Length; i++)
+        for(int i = 0; i < ac.attackMethod_summon.Length; i++)
         {
-            AttackInfo attackInfo = new();
-            ac.attackMethod[i].attackInfo.CopyTo(attackInfo);
-            initAttackInfo.Add(attackInfo);
+            AttackInfo attackInfo = new AttackInfo();
+            ac.attackMethod_summon[i].attackInfo.CopyTo(attackInfo);
+            initAttackSummonInfo.Add(attackInfo);
+        }
+        for(int i = 0; i < ac.attackMethod_march.Length; i++)
+        {
+            AttackInfo attackInfo = new AttackInfo();
+            ac.attackMethod_march[i].attackInfo.CopyTo(attackInfo);
+            initAttackMarchInfo.Add(attackInfo);
         }
         initArmor = ats.resistances.armor;
     }
@@ -33,20 +40,23 @@ public class SoldierBuff : MonoBehaviour
     public void AddHP(int hp)
     {
         dem.totalHp = initTotalHp + hp;
-        dem.hp += initHp + hp;
+        dem.hp = initHp + hp;
         dem.uiHp.Show(dem.hp, dem.totalHp);
     }
 
     public void AddSummonAttack(int attack)
     {
-        ac.attackMethod[0].attackInfo.damage = initAttackInfo[0].damage + attack;
+        for(int i = 0;i < ac.attackMethod_summon.Length; i++)
+        {
+            ac.attackMethod_summon[i].attackInfo.damage = initAttackSummonInfo[i].damage + attack;
+        }
     }
 
     public void AddMarchAttack(int attack)
     {
-        for(int i = 1; i < ac.attackMethod.Length; i++)
+        for (int i = 0; i < ac.attackMethod_march.Length; i++)
         {
-            ac.attackMethod[i].attackInfo.damage = initAttackInfo[i].damage + attack;
+            ac.attackMethod_march[i].attackInfo.damage = initAttackMarchInfo[i].damage + attack;
         }
     }
 
@@ -57,41 +67,73 @@ public class SoldierBuff : MonoBehaviour
 
     public void AddShootDownDamage(int damage)
     {
-        for(int i = 0; i < ac.attackMethod.Length; i++)
+        for (int i = 0; i < ac.attackMethod_summon.Length; i++)
         {
-            AttackInfo ai = ac.attackMethod[i].attackInfo;
+            AttackInfo ai = ac.attackMethod_summon[i].attackInfo;
             AttackEffect[] aes = ai.attackEffect;
-            foreach(AttackEffect ae in aes)
+            foreach (AttackEffect ae in aes)
             {
                 if (ae == AttackEffect.ShotDown)
                 {
                     AttackInfo.ShotDown sd = ai.shotDown;
-                    sd.landingDamage = initAttackInfo[i].shotDown.landingDamage + damage;
+                    sd.landingDamage = initAttackSummonInfo[i].shotDown.landingDamage + damage;
                     ai.shotDown = sd;
                     break;
                 }
             }
-            ac.attackMethod[i].attackInfo = ai;
+            ac.attackMethod_summon[i].attackInfo = ai;
+        }
+        for (int i = 0; i < ac.attackMethod_march.Length; i++)
+        {
+            AttackInfo ai = ac.attackMethod_march[i].attackInfo;
+            AttackEffect[] aes = ai.attackEffect;
+            foreach (AttackEffect ae in aes)
+            {
+                if (ae == AttackEffect.ShotDown)
+                {
+                    AttackInfo.ShotDown sd = ai.shotDown;
+                    sd.landingDamage = initAttackMarchInfo[i].shotDown.landingDamage + damage;
+                    ai.shotDown = sd;
+                    break;
+                }
+            }
+            ac.attackMethod_march[i].attackInfo = ai;
         }
     }
 
     public void AddBlowUpDamageRate(float rate)
     {
-        for (int i = 0; i < ac.attackMethod.Length; i++)
+        for (int i = 0; i < ac.attackMethod_summon.Length; i++)
+        {
+            AttackInfo ai = ac.attackMethod_summon[i].attackInfo;
+            AttackEffect[] aes = ai.attackEffect;
+            foreach (AttackEffect ae in aes)
+            {
+                if (ae == AttackEffect.BlowUp)
+                {
+                    AttackInfo.BlowUp blowUp = ai.blowUp;
+                    blowUp.landingDamageRate = initAttackSummonInfo[i].blowUp.landingDamageRate + rate;
+                    ai.blowUp = blowUp;
+                    break;
+                }
+            }
+            ac.attackMethod_summon[i].attackInfo = ai;
+        }
+        for (int i = 0; i < ac.attackMethod_march.Length; i++)
         {
-            AttackInfo ai = ac.attackMethod[i].attackInfo;
+            AttackInfo ai = ac.attackMethod_march[i].attackInfo;
             AttackEffect[] aes = ai.attackEffect;
             foreach (AttackEffect ae in aes)
             {
                 if (ae == AttackEffect.BlowUp)
                 {
                     AttackInfo.BlowUp blowUp = ai.blowUp;
-                    blowUp.landingDamageRate = initAttackInfo[i].blowUp.landingDamageRate + rate;
+                    blowUp.landingDamageRate = initAttackMarchInfo[i].blowUp.landingDamageRate + rate;
                     ai.blowUp = blowUp;
                     break;
                 }
             }
-            ac.attackMethod[i].attackInfo = ai;
+            ac.attackMethod_march[i].attackInfo = ai;
         }
     }
 }

+ 1 - 1
ActionTowerDefense/Assets/Scripts/Conduct/FanFlyingSwords.cs

@@ -31,7 +31,7 @@ public class FanFlyingSwords : MonoBehaviour
             angle = angle / 180 * Mathf.PI;
             dir = new Vector3(Mathf.Cos(angle), Mathf.Sin(angle), 0);
             //先改角色attackInfo并读取,之后重做的时候再改
-            owner.attackController.attackInfo.damage = damage;
+            owner.attackController.curAttackMethod.attackInfo.damage = damage;
             obj.GetComponent<Bullet>().BeShoot(owner, owner.transform.position + Vector3.up, dir, false);
         }
         

+ 12 - 14
ActionTowerDefense/Assets/Scripts/EnemyCreater.cs

@@ -494,9 +494,9 @@ public class EnemyCreater : MonoBehaviour
                 enemyTower.totalHp = (int)(cfgEnemy.HP * HPRatio);
                 enemyTower.hp = enemyTower.totalHp;
 
-                attackInfo = enemyTower.attackController.attackInfo;
+                attackInfo = enemyTower.attackController.curAttackMethod.attackInfo;
                 attackInfo.damage = (int)(cfgEnemy.AttackMarch[0] * AttackRatio);
-                enemyTower.attackController.attackInfo = attackInfo;
+                enemyTower.attackController.curAttackMethod.attackInfo = attackInfo;
                 enemyTower.Init();
             }
             if (tower != null)
@@ -506,9 +506,9 @@ public class EnemyCreater : MonoBehaviour
                 tower.totalHp = (int)(cfgEnemy.HP * HPRatio);
                 tower.hp = tower.totalHp;
 
-                attackInfo = tower.attackController.attackInfo;
+                attackInfo = tower.attackController.curAttackMethod.attackInfo;
                 attackInfo.damage = (int)(cfgEnemy.AttackMarch[0] * AttackRatio);
-                tower.attackController.attackInfo = attackInfo;
+                tower.attackController.curAttackMethod.attackInfo = attackInfo;
                 tower.Init();
             }
             if (!buildingDic.ContainsKey(cfgEnemy.Name))
@@ -534,19 +534,17 @@ public class EnemyCreater : MonoBehaviour
             enemy.maxMoveSpeed = cfgEnemy.MaxMoveSpeed * SpeedRatio;
 
             enemy.attributeStatus.resistances.armor = (int)(enemy.attributeStatus.resistances.armor * ArmorRatio + 0.5f);
-            foreach (var item in enemy.attackController.attackMethod)
+            foreach (var item in enemy.attackController.attackMethod_summon)
             {
-                if(item.id == 0)
-                {
-                    item.attackInfo.damage = (int)(cfgEnemy.AttackSummon * AttackRatio);
-                }
-                else
-                {
-                    item.attackInfo.damage = (int)(cfgEnemy.AttackMarch[item.id - 1] * AttackRatio);
-                }
+                item.attackInfo.damage = (int)(cfgEnemy.AttackSummon * AttackRatio);
+                item.attackInfo.armorPiercing.rate = (int)(item.attackInfo.armorPiercing.rate * ArmorPiercingRatio);
+            }
+            for(int i = 0; i < enemy.attackController.attackMethod_march.Length; i++)
+            {
+                var item = enemy.attackController.attackMethod_march[i];
+                item.attackInfo.damage = (int)(cfgEnemy.AttackMarch[i] * AttackRatio);
                 item.attackInfo.armorPiercing.rate = (int)(item.attackInfo.armorPiercing.rate * ArmorPiercingRatio);
             }
-
             if (enemy.canFly)
             {
                 enemy.flyHeight = enemy.transform.position.y;

+ 2 - 3
ActionTowerDefense/Assets/Scripts/SpecialEnemies/Enemy_Leafghost.cs

@@ -26,7 +26,7 @@ public class Enemy_Leafghost : Enemy
         ani.Play("dive", 0, 0);
         ud.owner = this;
         ud.targetPosition = pos2;
-        PolliwogShot ps = attackController.attackMethod[0].skill.GetComponent<PolliwogShot>();
+        PolliwogShot ps = attackController.attackMethod_march[0].skill.GetComponent<PolliwogShot>();
         ps.owner = this;
         ps.pos = shootPos;
     }
@@ -45,9 +45,8 @@ public class Enemy_Leafghost : Enemy
         switch (state)
         {
             case CharacterState.Attack:
-                attackController.ChooseAttack(0);
                 attackController.isAttackTriggerOn = false;
-                attackController.attackTrigger.gameObject.SetActive(false);
+                attackController.curAttackMethod.attackTrigger.gameObject.SetActive(false);
                 pastAttackTime = 0;
                 break;
             case CharacterState.Die:

+ 1 - 2
ActionTowerDefense/Assets/Scripts/Spirits/ESpirits_Assassin.cs

@@ -43,7 +43,7 @@ public class ESpirits_Assassin : Enemy
     {
         base.Start();
         len = 1;
-        dashTrigger.attackInfo.damage = attackController.attackMethod[1].attackInfo.damage;
+        dashTrigger.attackInfo.damage = attackController.attackMethod_summon[0].attackInfo.damage;
     }
 
     public override void Init()
@@ -111,7 +111,6 @@ public class ESpirits_Assassin : Enemy
                                 angleToTarget - 180
                                 : angleToTarget);
                             startRushPos = transform.position;
-                            attackController.ChooseAttack(0);
                             dashTrigger.gameObject.SetActive(true);
                         }
                         break;

+ 1 - 1
ActionTowerDefense/Assets/Scripts/Spirits/SmokeDestroy.cs

@@ -27,7 +27,7 @@ public class SmokeDestroy : MonoBehaviour
         }
         CharacterColliders characterColliders = other.GetComponentInParent<CharacterColliders>();
         
-        if(characterColliders != null && characterColliders.owner.attackController.attackType == AttackController.AttackType.Shoot)
+        if(characterColliders != null && characterColliders.owner.attackController.curAttackMethod.attackType == AttackController.AttackType.Shoot)
         {
             characterColliders.hitRate = hitRate;
         }

+ 1 - 22
ActionTowerDefense/Assets/Scripts/Spirits/Spirits_Assassin.cs

@@ -31,33 +31,12 @@ public class Spirits_Assassin : Demonic
     }
     public override void Attack_summon()
     {
+        base.Attack_summon();
         rb.constraints =
             RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezePositionZ 
             | RigidbodyConstraints.FreezeRotation;
         rb.useGravity = false;
-        attackController.attackTime = totalAttack_summonTime;
-        attackController.ChooseAttack(attackController.attackMethod[0].id);
-        attackController.attackTrigger.attackInfo = attackController.attackInfo;
-        ChangeState(CharacterState.Attack);
-        invincibleTime = totalAttack_summonTime;
-        if (PlayersInput.instance[playerID].bodyTrans.localScale.x > 0)
-        {
-            if (bodyTrans.localScale.x < 0)
-            {
-                Turn();
-            }
-        }
-        else
-        {
-            if (bodyTrans.localScale.x > 0)
-            {
-                Turn();
-            }
-        }
         startRushPos = transform.position;
-        ani.Play("attack_summon", 0, 0);
-        dashTrigger.gameObject.SetActive(true);
-        curAttackID = 1;
     }
 
     public override void OnState()

+ 7 - 6
ActionTowerDefense/Assets/Scripts/Tower/EnemyTower.cs

@@ -13,21 +13,23 @@ public class EnemyTower : Character
     {
         TowerMap.enemyTowers.Add(gameObject);
         Init();
-        attackController.ChooseAttack(0);
+        //attackController.ChooseAttack(0);
+        attackController.curAttackMethod = attackController.attackMethod_march[0];
     }
 
     public void Attack_March()
     {
-        GameObject bulletObj = PoolManager.Instantiate(attackController.bulletPrefab);
+        GameObject bulletObj = PoolManager.Instantiate(attackController.curAttackMethod.bulletPrefab);
+        attackController.attackTime = attackController.attackKeys[0].totalTime;
         Bullet bullet = bulletObj.GetComponent<Bullet>();
-        AttackInfo attackInfo = attackController.attackInfo;
+        AttackInfo attackInfo = attackController.curAttackMethod.attackInfo;
         Vector3 attackDir = attackInfo.attackDir.normalized;
         if (bodyTrans.localScale.x < 0)
         {
             attackDir.x = -attackDir.x;
         }
-        bullet.BeShoot(this, attackController.shootPos[0].position, attackDir, attackController.shootTrack,
-            attackController.shootAlwaysTrack, attackTarget ? attackTarget : null);
+        bullet.BeShoot(this, attackController.curAttackMethod.shootPos[0].position, attackDir, attackController.curAttackMethod.shootTrack,
+            attackController.curAttackMethod.shootAlwaysTrack, attackTarget ? attackTarget : null);
     }
 
     public bool GetAttack()
@@ -107,7 +109,6 @@ public class EnemyTower : Character
                 rb.velocity = Vector3.zero;
                 break;
             case CharacterState.Attack:
-                attackController.attackTime = totalAttack_marchTime;
                 attackTarget = targetCharacter;
                 Attack_March();
                 break;

+ 7 - 6
ActionTowerDefense/Assets/Scripts/Tower/Tower.cs

@@ -15,7 +15,8 @@ public class Tower : Character
     {
         TowerMap.myTowers.Add(gameObject);
         Init();
-        attackController.ChooseAttack(0);
+        //attackController.ChooseAttack(0);
+        attackController.curAttackMethod = attackController.attackMethod_march[0];
     }
 
     public bool GetAttack()
@@ -34,16 +35,17 @@ public class Tower : Character
 
     public void Attack_March()
     {
-        GameObject bulletObj = PoolManager.Instantiate(attackController.bulletPrefab);
+        GameObject bulletObj = PoolManager.Instantiate(attackController.curAttackMethod.bulletPrefab);
+        attackController.attackTime = attackController.attackKeys[0].totalTime;
         Bullet bullet = bulletObj.GetComponent<Bullet>();
-        AttackInfo attackInfo = attackController.attackInfo;
+        AttackInfo attackInfo = attackController.curAttackMethod.attackInfo;
         Vector3 attackDir = attackInfo.attackDir.normalized;
         if (bodyTrans.localScale.x < 0)
         {
             attackDir.x = -attackDir.x;
         }
-        bullet.BeShoot(this, attackController.shootPos[0].position, attackDir, attackController.shootTrack,
-            attackController.shootAlwaysTrack, attackTarget ? attackTarget : null);
+        bullet.BeShoot(this, attackController.curAttackMethod.shootPos[0].position, attackDir, attackController.curAttackMethod.shootTrack,
+            attackController.curAttackMethod.shootAlwaysTrack, attackTarget ? attackTarget : null);
     }
 
     public override void OnState()
@@ -104,7 +106,6 @@ public class Tower : Character
                 rb.velocity = Vector3.zero;
                 break;
             case CharacterState.Attack:
-                attackController.attackTime = totalAttack_marchTime;
                 attackTarget = targetCharacter;
                 Attack_March();
                 break;