浏览代码

隐身隐藏血条

LAPTOP-OM1V99U2\永远de小亡灵 1 年之前
父节点
当前提交
2cbde2b0dc

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

@@ -1461,6 +1461,7 @@ public class PlayerController : MoveCharacter
         playerMats = mats;
         playerOut = outlineMats;
         bodyTrans.gameObject.SetActive(true);
+        uiHp.gameObject.SetActive(true);
         spiritObj.transform.parent = null;
         spiritObj.SetActive(false);
         Summon(id);

+ 22 - 8
ActionTowerDefense/Assets/Scripts/Spirits/Spirits_Invisible.cs

@@ -30,6 +30,7 @@ public class Spirits_Invisible : MonoBehaviour
         
         player = PlayersInput.instance[demonic.playerID].gameObject;
         playerController = player.GetComponent<PlayerController>();
+        playerController.uiHp.gameObject.SetActive(false);
         playerController.isInvisible = true;
         playerController.mp += addMp;
         playerController.canfly = true;
@@ -64,11 +65,7 @@ public class Spirits_Invisible : MonoBehaviour
             time += Time.deltaTime;
             if (time > interval)
             {
-                GameObject smoke = Instantiate(smokeEffect);
-                smoke.transform.position = transform.position;
-                smoke.GetComponent<SmokeDestroy>().stayTime = stayTime;
-                lastSmokePos = transform.position;
-                time = 0;
+                AttackK();
             }
             
         }
@@ -81,14 +78,31 @@ public class Spirits_Invisible : MonoBehaviour
         GameObject soulObj = Instantiate(soulPrefab);
         Soul soul = soulObj.GetComponent<Soul>();
         soul.from = shootPos.transform.position;
-        if(body.localScale.x > 0)
+        if (playerController.rb.velocity == Vector3.zero)
         {
-            soul.to = transform.position + Vector3.left * distance;
+            if (body.localScale.x > 0)
+            {
+                soul.to = transform.position + Vector3.left * distance;
+            }
+            else
+            {
+                soul.to = transform.position + Vector3.right * distance;
+            }
         }
         else
         {
-            soul.to = transform.position + Vector3.right * distance;
+            soul.to = transform.position + playerController.rb.velocity.normalized * distance;
         }
+
         soul.isShoot = true;
     }
+    void AttackK()
+    {
+        GameObject smoke = Instantiate(smokeEffect);
+        smoke.transform.position = transform.position;
+        smoke.GetComponent<SmokeDestroy>().stayTime = stayTime;
+        lastSmokePos = transform.position;
+        time = 0;
+
+    }
 }