소스 검색

1.点击状态下不计算分数

slambb 2 년 전
부모
커밋
4804543ea2

+ 2 - 0
Assets/BowArrow/Scripts/Bluetooth/ShootCheck.cs

@@ -363,9 +363,11 @@ public class ShootCheck : MonoBehaviour
         } else if (ArmBow.ins) {
             ArmBow.ins.ADS_fire(true);
         } else if (DuckHunter.SmartBowController.Instance) {
+            //野鸭射击
             DuckHunter.SmartBowController.Instance.OnShooting(shootSpeed);
         } else if (WildAttack.SmartBowController.Instance)
         {
+            //荒野射击
             WildAttack.SmartBowController.Instance.OnShooting(shootSpeed);
         } else {
             OnGameShoot?.Invoke(shootSpeed);

+ 17 - 7
Assets/DuckHunter/Scripts/GameManager.cs

@@ -92,6 +92,8 @@ namespace DuckHunter
         private static bool AutoNextLevel = false;
         [System.NonSerialized] public int hitScore; //得分
         private int uploadScore;//上传服务器的分数
+        private bool bAddCountScore = false;
+
         [System.NonSerialized] public int level = 1;
         /// <summary>
         /// 通关需要击落的鸭子数量
@@ -258,17 +260,23 @@ namespace DuckHunter
             _lastFallDownTime = Time.time;
         }
         [System.NonSerialized] public int hitCount = 0;
+        private int bowHitCount = 0;
         void HandleOnHitDead(Duck duck)
         {
             hitCount++;
             int scoreToPlus = duck.config.type * 500;
             hitScore += scoreToPlus;
             GameUI.Instance.RenderHitDuckCount(duck.config.type);
-            // GameUI.Instance.RenderHitScore(hitScore, GetBestScore());
-            _CumulativeScore += scoreToPlus;
-            uploadScore += scoreToPlus; //击杀野鸭分数
-            GameUI.Instance.RenderHitScore(_CumulativeScore, GetBestScore());
-            GameUI.Instance.ShowTextHitScore(scoreToPlus, duck.transform.position);
+
+            //射击状态下,刷新添加分数
+            if (bAddCountScore) {
+                bowHitCount++;
+                _CumulativeScore += scoreToPlus;
+                uploadScore += scoreToPlus; //击杀野鸭分数
+                GameUI.Instance.RenderHitScore(_CumulativeScore, GetBestScore());
+                GameUI.Instance.ShowTextHitScore(scoreToPlus, duck.transform.position);
+            }
+           
             RemoveArrows(duck);
         }
 
@@ -380,12 +388,11 @@ namespace DuckHunter
             else
             {
                 //完美通关
-                if (needCreateDuckCount == hitCount)
+                if (needCreateDuckCount == hitCount && needCreateDuckCount == bowHitCount)
                 {
                     //奖励额外积分
                     int plusScore = 10000;
                     hitScore += plusScore;
-                    // GameUI.Instance.RenderHitScore(hitScore, GetBestScore());
                     _CumulativeScore += plusScore;
                     uploadScore += plusScore;
                     GameUI.Instance.RenderHitScore(_CumulativeScore, GetBestScore());
@@ -468,6 +475,9 @@ namespace DuckHunter
 
         bool UseOneArrow(bool bAddCount = false)
         {
+            //根据射箭状态赋值
+            bAddCountScore = bAddCount;
+
             if (arrowCount > 0)
             {
                 // foreach (var e in _duckCanShootCountList)

+ 11 - 2
Assets/FruitMaster/Scripts/GamingManager.cs

@@ -88,6 +88,9 @@ public class GamingManager : MonoBehaviour
 
 
     UserGameAnalyse1 userGameAnalyse1;
+
+    //射箭状态下
+    private bool bAddCountScore = false;
     private void Awake()
     {
         audioManager = gameObject.GetComponent<AudioManager>();
@@ -551,6 +554,8 @@ public class GamingManager : MonoBehaviour
 
     private void FireArrow(float speed, Vector3 dir,bool bAddCount = false)
     {
+        bAddCountScore = bAddCount;
+
         if (bGameStarted && !bGamePaused && FireCooldownTime_Current == 0f)
         {
             FireCooldownTime_Current = FireCooldownTime;
@@ -703,8 +708,12 @@ public class GamingManager : MonoBehaviour
     private bool GainScore(int score)
     {
         int last_scores = Scores;
-        Scores += score;
-        uploadScore += score;
+
+        //射箭状态下添加分数
+        if (bAddCountScore) {
+            Scores += score;
+            uploadScore += score;
+        }
         ScoreText.text = "Scores : " + Scores; // update socres display
         return ((Scores / 100) == (last_scores / 100) + 1);
     }

+ 9 - 1
Assets/WildAttack/Scripts/Manager/GameMananger.cs

@@ -67,6 +67,9 @@ namespace WildAttack
         JCUnityLib.TouchChecker touchChecker = new JCUnityLib.TouchChecker();
 
         UserGameAnalyse1 userGameAnalyse1;
+
+        //游戏计算的分数只有射箭出来算
+        bool bAddCountScore = false;
         #endregion
 
         #region Function
@@ -231,6 +234,9 @@ namespace WildAttack
         /// <param name="score"></param>
         public void AddScore(int score)
         {
+            //在射箭状态下触发的才计算分数,手点触发射箭后不计算分数
+            if (!bAddCountScore) return;
+
             totalScore += score;
             //只记录一个上传的分数
             uploadScore += score;
@@ -575,7 +581,9 @@ namespace WildAttack
         void ShootOut(float speed,bool bAddCount = false)
         {
             if (isOver) return;
-            if(bAddCount)userGameAnalyse1.changeShootingCount(1);
+            //根据射箭状态赋值
+            bAddCountScore = bAddCount;
+            if (bAddCount)userGameAnalyse1.changeShootingCount(1);
 
             bow.Shoot(speed);
         }