瀏覽代碼

玩家在基地时不会被法师锁定;即使被锁定后将法师技能带回基地,也不会被漂浮。

SZAND\msx_2 1 年之前
父節點
當前提交
3b219f5aba

+ 4 - 1
ActionTowerDefense/Assets/Resources/Prefab/Enemy_Arrow.prefab

@@ -390,7 +390,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 0
+  m_IsActive: 1
 --- !u!4 &3215317859961215224
 Transform:
   m_ObjectHideFlags: 0
@@ -919,6 +919,8 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: c42213c575288a148b692aad7ab56bab, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  rb: {fileID: 0}
+  haveGravity: 1
   trigGroundList: []
 --- !u!1 &8639832132491289359
 GameObject:
@@ -1103,6 +1105,7 @@ MonoBehaviour:
   soulStartSpeed: 1
   isInvisible: 0
   invisibleTime: 0
+  velocityAddition: 0
   easyToGetHit: 0.2
   id: 0
   jumpSpeed: 10

+ 7 - 0
ActionTowerDefense/Assets/Scripts/MoveCharacter.cs

@@ -191,6 +191,13 @@ public class MoveCharacter : Character
             {
                 return;
             }
+            if (GetComponent<PlayerController>())
+            {
+                if (GetComponent<PlayerController>().isBaseBtnOut)
+                {
+                    return;
+                }
+            }
             if (canMove)
             {
                 canMove = false;

+ 17 - 14
ActionTowerDefense/Assets/Scripts/Spirits/ESpirits_Float.cs

@@ -25,8 +25,8 @@ public class ESpirits_Float : MonoBehaviour
     private GameObject curLock;
     private float pastTime;           //已经经过的时间
 
-    private GameObject player1;
-    private GameObject player2;
+    private PlayerController player1;
+    private PlayerController player2;
 
     private GameObject target;
     private bool isDoing = false;
@@ -44,8 +44,8 @@ public class ESpirits_Float : MonoBehaviour
         curFe.GetComponent<FloatEffect>().isEnemy = true;
         curFe.SetActive(false);
         curLock.SetActive(false);
-        player1 = PlayersInput.instance[0].gameObject;
-        player2 = PlayersInput.instance[1].gameObject;
+        player1 = PlayersInput.instance[0];
+        player2 = PlayersInput.instance[1];
     }
 
     private void Start()
@@ -77,19 +77,26 @@ public class ESpirits_Float : MonoBehaviour
 
     private void ChoosePlayer()
     {
-        player1 = PlayersInput.instance[0].gameObject;
-        player2 = PlayersInput.instance[1].gameObject;
+        player1 = PlayersInput.instance[0];
+        player2 = PlayersInput.instance[1];
         float dis1 = Vector2.Distance(player1.transform.position, transform.position);
         float dis2 = Vector2.Distance(player2.transform.position, transform.position);
-        if (dis1 < dis2)
+        if (!player1.isBaseBtnOut && !player1.isDie && (player2.isBaseBtnOut || player2.isDie || player2 == player1 || dis1 < dis2))
         {
-            target = player1;
+            target = player1.gameObject;
+        }
+        else if (!player2.isBaseBtnOut && !player2.isDie && (player1.isBaseBtnOut || player1.isDie || dis2 <= dis1))
+        {
+            target = player2.gameObject;
         }
         else
         {
-            target = player2;
+            return;
         }
-        //target = player1;
+        isDoing = true;
+        isFollow = true;
+        pastTime = 0;
+        curLock.SetActive(true);
     }
 
     private void FollowPlayer()
@@ -132,10 +139,6 @@ public class ESpirits_Float : MonoBehaviour
             if (pastTime >= intervalTime)
             {
                 ChoosePlayer();
-                isDoing = true;
-                isFollow = true;
-                pastTime = 0;
-                curLock.SetActive(true);
             }
         }
         //跟随玩家

+ 0 - 31
ActionTowerDefense/Assets/Scripts/Spirits/FloatData.cs

@@ -1,31 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class FloatData : MonoBehaviour
-{
-    static public List<Demonic> demIsFloating = new List<Demonic>();
-    static public List<Enemy> eneIsFloating = new List<Enemy>();
-
-    static public void Clear(int id)
-    {
-        switch (id)
-        {
-            //清空友方所有漂浮记录
-            case 0:
-                demIsFloating = new List<Demonic>();
-                break;
-            //清空敌方所有漂浮记录
-            case 1:
-                eneIsFloating = new List<Enemy>();
-                break;
-            //清空所有漂浮记录
-            case 2:
-                demIsFloating = new List<Demonic>();
-                eneIsFloating = new List<Enemy>();
-                break;
-            default:
-                break;
-        }
-    }
-}

+ 0 - 11
ActionTowerDefense/Assets/Scripts/Spirits/FloatData.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 893fd9fefa9cb974c857eccc657637ce
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 3
ActionTowerDefense/Assets/Scripts/Spirits/FloatEffect.cs

@@ -26,8 +26,6 @@ public class FloatEffect : MonoBehaviour
         {
             Enemy ene = other.GetComponentInParent<Enemy>();
             ene.FloatStateOn();
-            FloatData.eneIsFloating.Add(ene);
-
         }
         else if(isEnemy && other.gameObject.layer == 7)
         {
@@ -42,7 +40,6 @@ public class FloatEffect : MonoBehaviour
                 dem.soulCollector.enabled = false;
             }
             dem.FloatStateOn();
-            FloatData.demIsFloating.Add(dem);
         }
         else if(isEnemy && other.gameObject.layer == 6)
         {