Parcourir la source

Y轴随机出生位置

wulifu il y a 1 an
Parent
commit
7a867af801

+ 8 - 1
ActionTowerDefense/Assets/Gen/SingleCreateEnemyConfig.cs

@@ -24,12 +24,13 @@ public sealed partial class SingleCreateEnemyConfig :  Bright.Config.BeanBase
         { if(!_json["Time"].IsNumber) { throw new SerializationException(); }  Time = _json["Time"]; }
         { if(!_json["TimeInterval"].IsNumber) { throw new SerializationException(); }  TimeInterval = _json["TimeInterval"]; }
         { var __json0 = _json["Position"]; if(!__json0.IsArray) { throw new SerializationException(); } Position = new System.Collections.Generic.List<float>(__json0.Count); foreach(JSONNode __e0 in __json0.Children) { float __v0;  { if(!__e0.IsNumber) { throw new SerializationException(); }  __v0 = __e0; }  Position.Add(__v0); }   }
+        { if(!_json["YRandomRange"].IsNumber) { throw new SerializationException(); }  YRandomRange = _json["YRandomRange"]; }
         { if(!_json["AttackRatio"].IsNumber) { throw new SerializationException(); }  AttackRatio = _json["AttackRatio"]; }
         { if(!_json["HPRatio"].IsNumber) { throw new SerializationException(); }  HPRatio = _json["HPRatio"]; }
         PostInit();
     }
 
-    public SingleCreateEnemyConfig(int ID, int EnemyID, int Count, float Time, float TimeInterval, System.Collections.Generic.List<float> Position, float AttackRatio, float HPRatio ) 
+    public SingleCreateEnemyConfig(int ID, int EnemyID, int Count, float Time, float TimeInterval, System.Collections.Generic.List<float> Position, float YRandomRange, float AttackRatio, float HPRatio ) 
     {
         this.ID = ID;
         this.EnemyID = EnemyID;
@@ -37,6 +38,7 @@ public sealed partial class SingleCreateEnemyConfig :  Bright.Config.BeanBase
         this.Time = Time;
         this.TimeInterval = TimeInterval;
         this.Position = Position;
+        this.YRandomRange = YRandomRange;
         this.AttackRatio = AttackRatio;
         this.HPRatio = HPRatio;
         PostInit();
@@ -72,6 +74,10 @@ public sealed partial class SingleCreateEnemyConfig :  Bright.Config.BeanBase
     /// </summary>
     public System.Collections.Generic.List<float> Position { get; private set; }
     /// <summary>
+    /// Y轴随机范围
+    /// </summary>
+    public float YRandomRange { get; private set; }
+    /// <summary>
     /// 攻击力倍率
     /// </summary>
     public float AttackRatio { get; private set; }
@@ -101,6 +107,7 @@ public sealed partial class SingleCreateEnemyConfig :  Bright.Config.BeanBase
         + "Time:" + Time + ","
         + "TimeInterval:" + TimeInterval + ","
         + "Position:" + Bright.Common.StringUtil.CollectionToString(Position) + ","
+        + "YRandomRange:" + YRandomRange + ","
         + "AttackRatio:" + AttackRatio + ","
         + "HPRatio:" + HPRatio + ","
         + "}";

+ 21 - 1
ActionTowerDefense/Assets/Scripts/EnemyCreater.cs

@@ -57,7 +57,7 @@ public class EnemyCreater : MonoBehaviour
             {
                 return;
             }
-            Vector3 pos = new Vector3(singleCreateEnemy.Position[0], singleCreateEnemy.Position[1], singleCreateEnemy.Position[2]);
+            Vector3 pos = new Vector3(singleCreateEnemy.Position[0], singleCreateEnemy.Position[1] + Random.Range(-singleCreateEnemy.YRandomRange/2, singleCreateEnemy.YRandomRange / 2), singleCreateEnemy.Position[2]);
             CreateEnemy(singleCreateEnemy.EnemyID, pos, singleCreateEnemy.HPRatio, singleCreateEnemy.AttackRatio);
             await Task.Delay((int)(singleCreateEnemy.TimeInterval * 1000));
         }
@@ -104,4 +104,24 @@ public class EnemyCreater : MonoBehaviour
             enemyDic[enemy.id][i].SetSortingOrder(cfgEnemy.SortingOrder + i);
         }
     }
+
+    public Enemy GetMinDisOtherEnemy(Enemy self)
+    {
+        Enemy minDisEnemy = null;
+        foreach (var item in enemyDic)
+        {
+            for (int i = 0; i < item.Value.Count; i++)
+            {
+                if (item.Value[i] != self && !item.Value[i].isDie && item.Value[i].gameObject.activeInHierarchy)
+                {
+                    if (!minDisEnemy || (minDisEnemy.transform.position - self.transform.position).magnitude 
+                        > (item.Value[i].transform.position - self.transform.position).magnitude)
+                    {
+                        minDisEnemy = item.Value[i];
+                    }
+                }
+            }
+        }
+        return minDisEnemy;
+    }
 }

+ 8 - 1
ActionTowerDefense/Assets/Scripts/SprintLinkTrigger.cs

@@ -27,7 +27,14 @@ public class SprintLinkTrigger : MonoBehaviour
         }
         if (PlayerController.instance.lastLinkedEnemy)
         {
-            LinkEnemy(enemy, PlayerController.instance.lastLinkedEnemy);
+            if (PlayerController.instance.lastLinkedEnemy.isDie || !PlayerController.instance.lastLinkedEnemy.gameObject.activeInHierarchy)
+            {
+                LinkEnemy(enemy, EnemyCreater.instance.GetMinDisOtherEnemy(enemy));
+            }
+            else
+            {
+                LinkEnemy(enemy, PlayerController.instance.lastLinkedEnemy);
+            }
         }
         LinkPlayer(enemy);
     }

+ 16 - 6
ActionTowerDefense/GenerateDatas/json/cfgcreateenemy.json

@@ -10,6 +10,7 @@
       0,
       0
     ],
+    "YRandomRange": 0,
     "AttackRatio": 1,
     "HPRatio": 1
   },
@@ -21,9 +22,10 @@
     "TimeInterval": 2,
     "Position": [
       0,
-      0,
+      3,
       0
     ],
+    "YRandomRange": 4,
     "AttackRatio": 1.2,
     "HPRatio": 1.1
   },
@@ -38,6 +40,7 @@
       0,
       0
     ],
+    "YRandomRange": 0,
     "AttackRatio": 1.4,
     "HPRatio": 1.2
   },
@@ -52,6 +55,7 @@
       0,
       0
     ],
+    "YRandomRange": 0,
     "AttackRatio": 1.6,
     "HPRatio": 1.3
   },
@@ -63,23 +67,25 @@
     "TimeInterval": 2,
     "Position": [
       0,
-      0,
+      3,
       0
     ],
+    "YRandomRange": 4,
     "AttackRatio": 1.8,
     "HPRatio": 1.4
   },
   {
     "ID": 6,
     "EnemyID": 2,
-    "Count": 4,
+    "Count": 50,
     "Time": 100,
-    "TimeInterval": 2,
+    "TimeInterval": 0.5,
     "Position": [
       0,
-      0,
+      3,
       0
     ],
+    "YRandomRange": 4,
     "AttackRatio": 2,
     "HPRatio": 1.5
   },
@@ -94,6 +100,7 @@
       0,
       0
     ],
+    "YRandomRange": 0,
     "AttackRatio": 2.2,
     "HPRatio": 1.6
   },
@@ -108,6 +115,7 @@
       0,
       0
     ],
+    "YRandomRange": 0,
     "AttackRatio": 2.4,
     "HPRatio": 1.7
   },
@@ -122,6 +130,7 @@
       0,
       0
     ],
+    "YRandomRange": 0,
     "AttackRatio": 2.6,
     "HPRatio": 1.8
   },
@@ -133,9 +142,10 @@
     "TimeInterval": 2,
     "Position": [
       0,
-      0,
+      3,
       0
     ],
+    "YRandomRange": 4,
     "AttackRatio": 2.8,
     "HPRatio": 1.9
   }

+ 12 - 12
ActionTowerDefense/Luban/.cache.meta

@@ -1,12 +1,12 @@
-C:/ActionTowerDefense/ActionTowerDefense/Assets/Gen/CfgCreateEnemy.cs,3A9B470F9A1FA351330EA275C82C399,1404,1711769724306
-C:/ActionTowerDefense/ActionTowerDefense/Assets/Gen/CfgEnemy.cs,FDE1CE1B09C67F343EE84B2F88F27A6,1820,1711769724301
-C:/ActionTowerDefense/ActionTowerDefense/Assets/Gen/SingleCreateEnemyConfig.cs,A4477C595E7DF3FF2861CE739014897E,4015,1711769724277
-C:/ActionTowerDefense/ActionTowerDefense/Assets/Gen/SingleEnemyConfig.cs,52D50AA62346441E5CF6FB54B178584,3703,1711769724284
-C:/ActionTowerDefense/ActionTowerDefense/Assets/Gen/Tables.cs,912B477615DA4F7C6B7D4A0EE96B27A,1296,1711769724292
-C:/ActionTowerDefense/ActionTowerDefense/GenerateDatas/json/cfgcreateenemy.json,805045F3331B3D354FD170D2898CBB2,2034,1714398198777
-C:/ActionTowerDefense/ActionTowerDefense/GenerateDatas/json/cfgenemy.json,136B6127249F9487CA3B7A3DA2AE54B2,548,1711769724277
-C:/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/__beans__.xlsx,98987DA7288FEE34BCD08EA883D425E,9603,1711190247467
-C:/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/__enums__.xlsx,647733322F7261DFA483C2DBE2D1F9A4,10293,1711190247467
-C:/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/__tables__.xlsx,D1BC5823EBCE916872405D2DCDC896D,10232,1711372939546
-C:/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/出怪表.xlsx,C6B7CC8A24992066F6B5FF5B61475C6A,10273,1714398180681
-C:/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/怪物表.xlsx,E4D91D5BD20BD4CB11078A943BF63,9736,1713282964606
+H:/UnityProject/ActionTowerDefense/ActionTowerDefense/Assets/Gen/CfgCreateEnemy.cs,3A9B470F9A1FA351330EA275C82C399,1404,1711097150748
+H:/UnityProject/ActionTowerDefense/ActionTowerDefense/Assets/Gen/CfgEnemy.cs,FDE1CE1B09C67F343EE84B2F88F27A6,1820,1711369259455
+H:/UnityProject/ActionTowerDefense/ActionTowerDefense/Assets/Gen/SingleCreateEnemyConfig.cs,C7FC1E458E49806699423B1E827969,4365,1715603297245
+H:/UnityProject/ActionTowerDefense/ActionTowerDefense/Assets/Gen/SingleEnemyConfig.cs,52D50AA62346441E5CF6FB54B178584,3703,1711462762532
+H:/UnityProject/ActionTowerDefense/ActionTowerDefense/Assets/Gen/Tables.cs,912B477615DA4F7C6B7D4A0EE96B27A,1296,1711097150748
+H:/UnityProject/ActionTowerDefense/ActionTowerDefense/GenerateDatas/json/cfgcreateenemy.json,2C96AD358B8A92F9C01A1D576FA5A,2277,1715603297245
+H:/UnityProject/ActionTowerDefense/ActionTowerDefense/GenerateDatas/json/cfgenemy.json,136B6127249F9487CA3B7A3DA2AE54B2,548,1713152292685
+H:/UnityProject/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/__beans__.xlsx,98987DA7288FEE34BCD08EA883D425E,9603,1711095806628
+H:/UnityProject/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/__enums__.xlsx,647733322F7261DFA483C2DBE2D1F9A4,10293,1711095790814
+H:/UnityProject/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/__tables__.xlsx,D1BC5823EBCE916872405D2DCDC896D,10232,1711369251824
+H:/UnityProject/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/出怪表.xlsx,BAE1C9E122CA46EAB9914DE3D3B7BCE,10905,1715603290859
+H:/UnityProject/ActionTowerDefense/ActionTowerDefense/Luban/Config/Datas/怪物表.xlsx,E4D91D5BD20BD4CB11078A943BF63,9736,1713745044511

BIN
ActionTowerDefense/Luban/Config/Datas/出怪表.xlsx