Эх сурвалжийг харах

敌方在防御塔顶端不会抽搐

LAPTOP-OM1V99U2\永远de小亡灵 1 жил өмнө
parent
commit
3e25470c96

+ 4 - 4
ActionTowerDefense/Assets/Scenes/SampleScene.unity

@@ -394,7 +394,7 @@ MonoBehaviour:
   rb: {fileID: 0}
   feet: []
   edgeDistance: 0
-  canDown: 0
+  canDown: 1
 --- !u!1 &317380082
 GameObject:
   m_ObjectHideFlags: 0
@@ -11053,7 +11053,7 @@ MonoBehaviour:
   rb: {fileID: 0}
   feet: []
   edgeDistance: 0
-  canDown: 0
+  canDown: 1
 --- !u!1 &815407864
 GameObject:
   m_ObjectHideFlags: 0
@@ -17673,7 +17673,7 @@ MonoBehaviour:
   rb: {fileID: 0}
   feet: []
   edgeDistance: 0
-  canDown: 0
+  canDown: 1
 --- !u!1 &1500161231
 GameObject:
   m_ObjectHideFlags: 0
@@ -28021,7 +28021,7 @@ MonoBehaviour:
   rb: {fileID: 0}
   feet: []
   edgeDistance: 0
-  canDown: 0
+  canDown: 1
 --- !u!1 &2051679828
 GameObject:
   m_ObjectHideFlags: 0

+ 11 - 5
ActionTowerDefense/Assets/Scripts/Enemy.cs

@@ -123,12 +123,18 @@ public class Enemy : MoveCharacter
                         moveDir = Vector3.right;
                         break;
                     }
-                    float minDistance =
-                        Vector3.Distance(transform.position, TowerMap.myTowers[0].transform.position);
-                    int id = 0;
-                    for(int i = 1; i < TowerMap.myTowers.Count; i++)
+                    float minDistance = Mathf.Infinity;
+                    int id = -1;
+                    for (int i = 0; i < TowerMap.myTowers.Count; i++)
                     {
-                        float distance = Vector3.Distance(transform.position, TowerMap.myTowers[i].transform.position);
+                        Tower myTower = TowerMap.myTowers[i].GetComponent<Tower>();
+                        if (transform.position.y >
+                            myTower.transform.position.y + myTower.height)
+                        {
+                            continue;
+                        }
+                        float distance = Vector3.Distance(transform.position, 
+                            TowerMap.myTowers[i].transform.position);
                         if (distance < minDistance)
                         {
                             minDistance = distance;