Преглед изворни кода

DASH改为CD恢复充能机制

WGL пре 2 месеци
родитељ
комит
728f5b1766

Разлика између датотеке није приказан због своје велике величине
+ 309 - 550
ActionTowerDefense/Assets/Resources/Prefab/GameUI/Game_UI.prefab


+ 5 - 3
ActionTowerDefense/Assets/Resources/Prefab/Player.prefab

@@ -5755,6 +5755,7 @@ MonoBehaviour:
   canJump: 1
   aniCollider: {fileID: 5072770566235913242}
   uiMp: {fileID: 8465211090008398057}
+  uiRush: {fileID: 0}
   soulCollector: {fileID: 3739918129319493242}
   skeletonMecanim: {fileID: 6843453365888964567}
   wallTrigger: {fileID: 6725358484711746229}
@@ -5789,14 +5790,16 @@ MonoBehaviour:
   moveVec: {x: 0, y: 0}
   leftDir: {x: 0, y: 0}
   rushSpeed: 30
-  rushCostMp: 20
+  rushChargeTotalNums: 3
+  rushChargeNums: 0
+  rushChargeAddTime: 3
+  rushChargeTime: 0
   rushDir: {x: 0, y: 0, z: 0}
   rushInvincibleTime: 1
   rushTime: 0
   totalRushTime: 0.2
   cacheRushTime: 0
   totalCacheRushTime: 0.1
-  sprintCostMp: 20
   jumpSpeed: 20
   airJumpSpeed: 14
   airJumped: 0
@@ -6272,7 +6275,6 @@ MeshRenderer:
   m_Materials:
   - {fileID: 2100000, guid: 1b17f7962e0b9be49bb10e99c6bd95a6, type: 2}
   - {fileID: 2100000, guid: 0c319badfe2307a48b8810d891649565, type: 2}
-  - {fileID: 2100000, guid: 1b17f7962e0b9be49bb10e99c6bd95a6, type: 2}
   - {fileID: 2100000, guid: 8f08601a75fbb72488593cad9f89acca, type: 2}
   - {fileID: 2100000, guid: 0c319badfe2307a48b8810d891649565, type: 2}
   m_StaticBatchInfo:

+ 30 - 103
ActionTowerDefense/Assets/Scenes/Game.unity

@@ -10173,11 +10173,6 @@ Transform:
   m_CorrespondingSourceObject: {fileID: 1500161235, guid: 956ff4379e83d3c49a9c10310dbf7cc7, type: 3}
   m_PrefabInstance: {fileID: 347892488}
   m_PrefabAsset: {fileID: 0}
---- !u!1 &389289662 stripped
-GameObject:
-  m_CorrespondingSourceObject: {fileID: 6486017610739919877, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
-  m_PrefabInstance: {fileID: 6486017610891705019}
-  m_PrefabAsset: {fileID: 0}
 --- !u!1 &450992229
 GameObject:
   m_ObjectHideFlags: 0
@@ -10272,17 +10267,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
---- !u!114 &476509424 stripped
-MonoBehaviour:
-  m_CorrespondingSourceObject: {fileID: 6486017610558623307, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
-  m_PrefabInstance: {fileID: 6486017610891705019}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
 --- !u!1 &485731078
 GameObject:
   m_ObjectHideFlags: 0
@@ -10376,6 +10360,11 @@ MonoBehaviour:
     showNormalsHelpInfo: 0
     tabIndex: 0
   initialized: 1
+--- !u!4 &490464920 stripped
+Transform:
+  m_CorrespondingSourceObject: {fileID: 3767022587350658646, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
+  m_PrefabInstance: {fileID: 6486017610891705019}
+  m_PrefabAsset: {fileID: 0}
 --- !u!1 &490846384
 GameObject:
   m_ObjectHideFlags: 0
@@ -11086,17 +11075,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
---- !u!114 &738314639 stripped
-MonoBehaviour:
-  m_CorrespondingSourceObject: {fileID: 6486017611361514292, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
-  m_PrefabInstance: {fileID: 6486017610891705019}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
 --- !u!114 &741372831 stripped
 MonoBehaviour:
   m_CorrespondingSourceObject: {fileID: 8077449059558042474, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
@@ -11113,28 +11091,6 @@ Transform:
   m_CorrespondingSourceObject: {fileID: 973089825946997993, guid: 8e99578d43abbeb4d95b0ae7f30a436a, type: 3}
   m_PrefabInstance: {fileID: 973089827856785591}
   m_PrefabAsset: {fileID: 0}
---- !u!114 &881260898 stripped
-MonoBehaviour:
-  m_CorrespondingSourceObject: {fileID: 6486017611236000729, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
-  m_PrefabInstance: {fileID: 6486017610891705019}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
---- !u!114 &889449321 stripped
-MonoBehaviour:
-  m_CorrespondingSourceObject: {fileID: 6486017611244196306, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
-  m_PrefabInstance: {fileID: 6486017610891705019}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
 --- !u!1 &918154792
 GameObject:
   m_ObjectHideFlags: 0
@@ -16010,15 +15966,15 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   p1: {fileID: 3490440114869015111}
-  p2: {fileID: 1861954883}
+  p2: {fileID: 0}
   p1Orig: {fileID: 1456551981}
   p2Orig: {fileID: 1789286033}
   p1To: {fileID: 1079295322}
   p2To: {fileID: 1656440122}
   p1WordOrig: {fileID: 1729202002}
   p1WordTo: {fileID: 2145343893}
-  p2WordOrig: {fileID: 2143411851}
-  p2WordTo: {fileID: 992338365}
+  p2WordOrig: {fileID: 0}
+  p2WordTo: {fileID: 0}
   uiSpeed: 0.2
   player1cards:
   - {fileID: 3490440115696085268}
@@ -16032,16 +15988,16 @@ MonoBehaviour:
   - {fileID: 458011474}
   - {fileID: 37158195}
   player2cards:
-  - {fileID: 1426925761}
-  - {fileID: 889449321}
-  - {fileID: 738314639}
-  choose2: {fileID: 389289662}
+  - {fileID: 0}
+  - {fileID: 0}
+  - {fileID: 0}
+  choose2: {fileID: 0}
   P2CardChangeTotalTime: 0.3
-  P2icon: {fileID: 1277794032}
+  P2icon: {fileID: 0}
   P2nums:
-  - {fileID: 1485560492}
-  - {fileID: 881260898}
-  - {fileID: 476509424}
+  - {fileID: 0}
+  - {fileID: 0}
+  - {fileID: 0}
   floatHead: {fileID: 21300000, guid: 443c5ff65ec217344a2d85f838fdefdd, type: 3}
   CookHead: {fileID: 21300000, guid: 46a621b8eb8186d47ac47f08328c09c5, type: 3}
   AssassinHead: {fileID: 21300000, guid: 2fb512b8cf27fa94a8536d877c95554e, type: 3}
@@ -16065,11 +16021,6 @@ Transform:
   m_Father: {fileID: 0}
   m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!224 &992338365 stripped
-RectTransform:
-  m_CorrespondingSourceObject: {fileID: 8077449059206478152, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
-  m_PrefabInstance: {fileID: 6486017610891705019}
-  m_PrefabAsset: {fileID: 0}
 --- !u!1001 &1015519865
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -16811,11 +16762,6 @@ MonoBehaviour:
     showNormalsHelpInfo: 0
     tabIndex: 0
   initialized: 1
---- !u!1 &1277794032 stripped
-GameObject:
-  m_CorrespondingSourceObject: {fileID: 8077449061170204165, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
-  m_PrefabInstance: {fileID: 6486017610891705019}
-  m_PrefabAsset: {fileID: 0}
 --- !u!1 &1280226699
 GameObject:
   m_ObjectHideFlags: 0
@@ -17186,17 +17132,6 @@ MeshFilter:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1421027323}
   m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
---- !u!114 &1426925761 stripped
-MonoBehaviour:
-  m_CorrespondingSourceObject: {fileID: 6486017611781739130, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
-  m_PrefabInstance: {fileID: 6486017610891705019}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
 --- !u!1 &1436711196 stripped
 GameObject:
   m_CorrespondingSourceObject: {fileID: 8077449060792345065, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
@@ -22024,17 +21959,6 @@ GameObject:
   m_CorrespondingSourceObject: {fileID: 8077449060747116732, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
   m_PrefabInstance: {fileID: 6486017610891705019}
   m_PrefabAsset: {fileID: 0}
---- !u!114 &1485560492 stripped
-MonoBehaviour:
-  m_CorrespondingSourceObject: {fileID: 6486017611571879959, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
-  m_PrefabInstance: {fileID: 6486017610891705019}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
 --- !u!1 &1487216550
 GameObject:
   m_ObjectHideFlags: 0
@@ -22511,6 +22435,7 @@ MonoBehaviour:
   totalGameTime: 0
   p1uiHP: {fileID: 2035765039221954013}
   p1uiMP: {fileID: 7582378586151668411}
+  p1uiRush: {fileID: 490464920}
   demonicNum:
   - {fileID: 1436711196}
   - {fileID: 1464883273}
@@ -22581,7 +22506,7 @@ MonoBehaviour:
   levelIdA_debug: 8
   levelIdB_debug: 2
   curLevel: {fileID: 741372831}
-  curLevelID: 0
+  curLevelID: 5
   levels:
   - "0:9\u54081\u5173\u5361\u5C1D\u8BD5"
   - "1:\u6C34\u9762\u5173\u53612"
@@ -22719,11 +22644,6 @@ Transform:
   m_CorrespondingSourceObject: {fileID: 8077449060540419684, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
   m_PrefabInstance: {fileID: 6486017610891705019}
   m_PrefabAsset: {fileID: 0}
---- !u!4 &1861954883 stripped
-Transform:
-  m_CorrespondingSourceObject: {fileID: 8077449060603033014, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
-  m_PrefabInstance: {fileID: 6486017610891705019}
-  m_PrefabAsset: {fileID: 0}
 --- !u!1 &1934719935 stripped
 GameObject:
   m_CorrespondingSourceObject: {fileID: 8077449060143080266, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
@@ -23098,11 +23018,6 @@ Transform:
   m_CorrespondingSourceObject: {fileID: 1500161235, guid: 956ff4379e83d3c49a9c10310dbf7cc7, type: 3}
   m_PrefabInstance: {fileID: 7247696832750845}
   m_PrefabAsset: {fileID: 0}
---- !u!224 &2143411851 stripped
-RectTransform:
-  m_CorrespondingSourceObject: {fileID: 8077449060353869438, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
-  m_PrefabInstance: {fileID: 6486017610891705019}
-  m_PrefabAsset: {fileID: 0}
 --- !u!224 &2145343893 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 8077449060353180000, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
@@ -23834,6 +23749,18 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 4732896275965495917, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
+      propertyPath: m_Color.a
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 5161451779337451545, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7518353233404985044, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 8077449060321285305, guid: 8f38420ea6472ad41b71c9ea20aa1683, type: 3}
       propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
       value: 

+ 76 - 68
ActionTowerDefense/Assets/Scripts/Characters/PlayerController.cs

@@ -1,10 +1,10 @@
+using Sirenix.OdinInspector;
+using Spine.Unity;
 using System.Collections.Generic;
+using TMPro;
 using UnityEngine;
-using Spine.Unity;
-using Sirenix.OdinInspector;
 using UnityEngine.InputSystem;
-using TMPro;
-
+using UnityEngine.UI;
 
 public enum PlayerAttackState
 {
@@ -21,8 +21,10 @@ public class PlayerController : MoveCharacter
     [LabelText("主角刷新位置")] public Vector2 refreshPos;
     public bool canJump;
     public Animator aniCollider;
+ 
     //
-    [FoldoutGroup("组件", order:-1)] public UIHP uiMp;    
+    [HideInInspector] public UIHP uiMp;
+    [HideInInspector] public Transform uiRush;
     [FoldoutGroup("组件")] public Collider soulCollector;
     [FoldoutGroup("组件")] public SkeletonMecanim skeletonMecanim;
     [FoldoutGroup("组件")] public WallTrigger wallTrigger;
@@ -31,6 +33,7 @@ public class PlayerController : MoveCharacter
     private ScreenShake ss;
     private ConductController conductController;
     //
+
     [FoldoutGroup("召唤属性", order:-1)] public float totalSummonTime;
     [HideInInspector]
     public float summonTime;
@@ -70,18 +73,20 @@ public class PlayerController : MoveCharacter
     [HideInInspector]
     public Vector2 leftDir;
 
-    [Header("冲刺属性")]
-    public float rushSpeed = 100;
-    public float rushCostMp = 5;
-    public Vector3 rushDir;
-    public float rushInvincibleTime = 0.2f;
-    [HideInInspector]
-    public float rushTime;
-    public float totalRushTime = 0.5f;
-    [HideInInspector]
-    public float cacheRushTime; //无法Rush时按下Rush键不会Rush,手感不好,缓存几帧,在这几帧内落地会立即Rush;
-    public float totalCacheRushTime = 0.1f;
-    public float sprintCostMp = 5;
+    //
+    [FoldoutGroup("冲刺属性", order: -1)] public float rushSpeed = 100;
+    //public float rushCostMp = 5;
+    [FoldoutGroup("冲刺属性")] [LabelText("充能槽总数")]public int rushChargeTotalNums;
+    [FoldoutGroup("冲刺属性")] [DisplayOnly] public int rushChargeNums;
+    [FoldoutGroup("冲刺属性")] [LabelText("充能一次所需时间")] public float rushChargeAddTime;
+    [FoldoutGroup("冲刺属性")] [DisplayOnly] public float rushChargeTime;
+    [FoldoutGroup("冲刺属性")] public Vector3 rushDir;
+    [FoldoutGroup("冲刺属性")] public float rushInvincibleTime = 0.2f;
+    [HideInInspector] public float rushTime;
+    [FoldoutGroup("冲刺属性")] public float totalRushTime = 0.5f;
+    [HideInInspector] public float cacheRushTime; //无法Rush时按下Rush键不会Rush,手感不好,缓存几帧,在这几帧内落地会立即Rush;
+    [FoldoutGroup("冲刺属性")] public float totalCacheRushTime = 0.1f;
+    //
 
     [Header("跳跃属性")]
     public float jumpSpeed = 10;
@@ -278,9 +283,16 @@ public class PlayerController : MoveCharacter
         base.Init();
         uiHp = GameManager.instance.p1uiHP;
         uiMp = GameManager.instance.p1uiMP;
+        uiRush = GameManager.instance.p1uiRush;
         uiMp.pc = this;
         mp = totalMp;
+        rushChargeNums = rushChargeTotalNums;
         uiMp.Show(mp, totalMp);
+        for(int i = 0; i < rushChargeTotalNums; i++)
+        {
+            UIController.ChangeImageFill(uiRush.GetChild(i).GetComponent<Image>(), 1);
+        }
+        
         demonicNums = new TextMeshProUGUI[3];
         for (int i = 0; i < 3; i++)
         {
@@ -723,26 +735,31 @@ public class PlayerController : MoveCharacter
     //角色处于可自由活动状态时的通用切换状态逻辑,如Idle、Run状态,以及别的状态结束时准备回到Idle状态前
     public bool CheckPlayerChangeState(CharacterState excludeState = CharacterState.None)
     {
-        if (!foot.TrigGround)
+        if (btnRushPress || cacheRushTime > 0 || cacheRush)
         {
-            if (excludeState != CharacterState.Summon)
+            if (excludeState != CharacterState.Rush)
             {
-                if (CheckSummon())
+                //if(mp >= rushCostMp)
+                if (rushChargeNums > 0)
                 {
+                    restSummonTime = 0;
+                    summonTime = 0;
+                    cacheRush = false;
+                    ChangeState(CharacterState.Rush);
                     return true;
                 }
             }
-            if ((btnRushPress || cacheRushTime > 0 || cacheRush) && mp >= rushCostMp)
+        }
+        if (!foot.TrigGround)
+        {
+            if (excludeState != CharacterState.Summon)
             {
-                if (excludeState != CharacterState.Rush)
+                if (CheckSummon())
                 {
-                    restSummonTime = 0;
-                    summonTime = 0;
-                    cacheRush = false;
-                    ChangeState(CharacterState.Rush);
                     return true;
                 }
             }
+
             if (rb.velocity.y > 0)
             {
                 if (excludeState != CharacterState.Rise && restSummonTime <= 0)
@@ -780,17 +797,6 @@ public class PlayerController : MoveCharacter
                 }
                 return true;
             }
-            if ((btnRushPress || cacheRushTime > 0 || cacheRush) && mp >= rushCostMp)
-            {
-                if (excludeState != CharacterState.Rush)
-                {
-                    restSummonTime = 0;
-                    summonTime = 0;
-                    cacheRush = false;
-                    ChangeState(CharacterState.Rush);
-                    return true;
-                }
-            }
             if (btnJumpPress || cacheJumpTime > 0)
             {
                 if (excludeState != CharacterState.Rise && restSummonTime <= 0)
@@ -851,6 +857,7 @@ public class PlayerController : MoveCharacter
             }
             
         }
+
         return false;
     }
 
@@ -903,6 +910,7 @@ public class PlayerController : MoveCharacter
         {
             return;
         }
+
         cacheJumpTime -= Time.deltaTime;
         cacheSummonTime -= Time.deltaTime;
         canJumpTime -= Time.deltaTime;
@@ -912,9 +920,29 @@ public class PlayerController : MoveCharacter
         rushTime -= Time.deltaTime;
         cacheRushTime -= Time.deltaTime;
         dieKeepTime -= Time.deltaTime;
-        if (nowConductButton != -1) conductTime += Time.deltaTime;
-        if (AttackSummonChangeTime <= 0) nowAttackSummonID = 0;
-        else AttackSummonChangeTime -= Time.deltaTime;
+        if (nowConductButton != -1) 
+        {
+            conductTime += Time.deltaTime;
+        }
+        if (AttackSummonChangeTime <= 0) 
+        {
+            nowAttackSummonID = 0;
+        }
+        else
+        {
+            AttackSummonChangeTime -= Time.deltaTime;
+        }
+        if (rushChargeNums < rushChargeTotalNums) 
+        {
+            rushChargeTime += Time.deltaTime;
+            UIController.ChangeImageFill(uiRush.GetChild(rushChargeNums).GetComponent<Image>(), rushChargeTime, rushChargeAddTime);
+            if (rushChargeTime > rushChargeAddTime)
+            {
+                rushChargeNums++;
+                rushChargeTime = 0;
+            }
+        }
+
         CachedPlayerInput();
         Vector3 velocity = rb.velocity;
         bool isToWall = false;
@@ -996,15 +1024,10 @@ public class PlayerController : MoveCharacter
 
                 break;
             case CharacterState.Rise:
-                if (CheckSummon())
+                if (CheckPlayerChangeState(CharacterState.Rise))
                 {
                     break;
                 }
-                if ((btnRushPress || cacheRushTime > 0) && mp >= rushCostMp)
-                {
-                    ChangeState(CharacterState.Rush);
-                    break;
-                }
                 if (btnJumpPress || cacheJumpTime > 0)
                 {
                     if (airJumped < airJumpNumber && rb.velocity.y < canAirJumpSpeed)
@@ -1027,22 +1050,10 @@ public class PlayerController : MoveCharacter
                 }
                 break;
             case CharacterState.Fall:
-                if (CheckSummon())
+                if (CheckPlayerChangeState(CharacterState.Fall))
                 {
                     break;
                 }
-                if ((btnRushPress || cacheRushTime > 0) && mp >= rushCostMp)
-                {
-                    ChangeState(CharacterState.Rush);
-                    break;
-                }
-                if (foot.TrigGround)
-                {
-                    if (CheckPlayerChangeState(CharacterState.Fall))
-                    {
-                        break;
-                    }
-                }
                 if (btnJumpPress || cacheJumpTime > 0)
                 {
                     if (canJumpTime > 0)
@@ -1106,14 +1117,6 @@ public class PlayerController : MoveCharacter
                         break;
                     }
                 }
-                if (mp < sprintCostMp * Time.deltaTime)
-                {
-                    if (CheckPlayerChangeState(CharacterState.Sprint))
-                    {
-                        break;
-                    }
-                }
-                mp -= sprintCostMp * Time.deltaTime;
                 uiMp.Show(mp, totalMp);
                 rb.velocity = rushDir * rushSpeed;
                 break;
@@ -1406,7 +1409,12 @@ public class PlayerController : MoveCharacter
                     rushDir = Vector3.right;
                 }
                 velocity = rushDir * rushSpeed;
-                mp -= rushCostMp;
+                //mp -= rushCostMp;
+                rushChargeNums--;
+                if(rushChargeNums != 2)
+                {
+                    UIController.ChangeImageFill(uiRush.GetChild(rushChargeNums + 1).GetComponent<Image>(), 0);
+                }
                 uiMp.Show(mp, totalMp);
                 break;
             case CharacterState.Sprint:

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

@@ -23,6 +23,7 @@ public class GameManager : MonoBehaviour
     public Tables allCfgData;
     public UIHP p1uiHP;
     public UIHP p1uiMP;
+    public Transform p1uiRush;
     public GameObject[] demonicNum;
     public TextMeshProUGUI text;
     static public SoldierType[] curSoldiers;   //本局游戏选择的三个士兵

+ 0 - 1
ActionTowerDefense/Assets/Scripts/Spirits/Base_Spirits/SpiritSystem.cs

@@ -92,7 +92,6 @@ public class SpiritSystem : MonoBehaviour
     private void Start()
     {
         p1.position = p1Orig.position;
-        p2.position = p2Orig.position;
         XbtnKeepTime = keepTime;
     }
 

+ 8 - 0
ActionTowerDefense/Assets/Scripts/UI.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 80dd57ad3914fe9468cba6ef7d96f9d6
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 15 - 0
ActionTowerDefense/Assets/Scripts/UI/UIController.cs

@@ -0,0 +1,15 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+public class UIController
+{
+    public static void ChangeImageFill(Image image, float data, float totalData)
+    {
+        float amount = Mathf.Clamp(data / totalData, 0, 1);
+        image.fillAmount = amount;
+    }
+    public static void ChangeImageFill(Image image, float amount)
+    {
+        image.fillAmount = amount;
+    }
+}

+ 11 - 0
ActionTowerDefense/Assets/Scripts/UI/UIController.cs.meta

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

Неке датотеке нису приказане због велике количине промена