Explorar o código

讨论结论同步:为大胖子预设一个【值】,在计算距离时,会用实际距离减去这个值。
目标:表现为体型大的物体更容易被锁定的效果。

wulifu hai 10 meses
pai
achega
da26acdda4

+ 1 - 0
ActionTowerDefense/Assets/Scripts/Character.cs

@@ -119,6 +119,7 @@ public class Character : MonoBehaviour
     public Character targetCharacter;
     public Character attackTarget;
     public List<Character> beTargetCharacter = new List<Character>(); //被哪些锁定
+    public float getDistanceOffset = 0f;
 
     [Header("是否为英灵、是否为变身形态英灵")]
     public bool isSpirit;

+ 4 - 1
ActionTowerDefense/Assets/Scripts/SearchTrigger.cs

@@ -199,12 +199,15 @@ public class SearchTrigger : MonoBehaviour
         List<Character> list = GetAllTargets(targetTypes, canHitFly);
 
         Character minDisChar = null;
+        float minDistance = -1;
         for (int i = 0; i < list.Count; i++)
         {
             Character character = list[i];
-            if (minDisChar == null || Mathf.Abs(minDisChar.transform.position.x - owner.transform.position.x) > Mathf.Abs(character.transform.position.x - owner.transform.position.x))
+            float distance = Mathf.Abs(character.transform.position.x - owner.transform.position.x) - character.getDistanceOffset * character.transform.localScale.y;
+            if (minDisChar == null || minDistance == -1 || minDistance > distance)
             {
                 minDisChar = character;
+                minDistance = distance;
             }
         }
         return minDisChar;