| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 | 
							- using System.Collections;
 
- using System.Collections.Generic;
 
- using UnityEngine;
 
- using UnityEngine.UI;
 
- using DG.Tweening;
 
- namespace DuckHunter
 
- {
 
-     public class GameUI : MonoBehaviour
 
-     {
 
-         [SerializeField] Text textScore;
 
-         [SerializeField] Text textScoreBest;
 
-         [SerializeField] Text textHitScore;
 
-         [SerializeField] Button btnReset;
 
-         [SerializeField] Button btnAim;
 
-         [SerializeField] Button btnCrosshair;
 
-         [SerializeField] Button btnBack;
 
-         [SerializeField] Button btnCalibrationOffset;
 
-         [SerializeField] RectTransform duckForGameStart;
 
-         [SerializeField] GameObject textGameOver;
 
-         [SerializeField] GameObject textGameCompleted;
 
-         [SerializeField] GameObject bottomBox;
 
-         [SerializeField] Slider levelSlider;
 
-         [SerializeField] Material outlight;
 
-         public static GameUI Instance;
 
-         void Awake()
 
-         {
 
-             Instance = this;
 
-             btnReset.onClick.AddListener(() =>
 
-             {
 
-                 AudioManager.Instance.PlayBtn();
 
-                 UnityEngine.SceneManagement.SceneManager.LoadScene("DuckHunter");
 
-             });
 
-             if (!CommonConfig.StandaloneModeOrPlatformB) {
 
-                 if (GlobalData.MyDeviceMode == DeviceMode.Gun || BluetoothAim.ins && BluetoothAim.ins.isMainConnectToInfraredDevice())
 
-                 {
 
-                     //btnAim.gameObject.SetActive(false);
 
-                     btnCrosshair.gameObject.SetActive(true);
 
-                     //获取设置值和一个存储值
 
-                     bool onInitOpen = InfraredDemo._ins ? InfraredDemo._ins.bInitCrosshairShow() : true;
 
-                     Image crossHairImage = btnCrosshair.GetComponentInChildren<Image>();
 
-                     crossHairImage.material = onInitOpen ? outlight : null;
 
-                     btnCrosshair.onClick.AddListener(delegate () {
 
-                         AudioManager.Instance.PlayBtn();
 
-                         bool onlyShow = !CrossHair.Instance.GetOnlyShow();
 
-                         CrossHair.Instance.SetOnlyShow(onlyShow);
 
-                         //记录准心值
 
-                         if (InfraredDemo._ins) InfraredDemo._ins.setCrosshairValue(onlyShow);
 
-                         if (onlyShow)
 
-                         {
 
-                             crossHairImage.material = outlight;
 
-                         }
 
-                         else
 
-                         {
 
-                             crossHairImage.material = null;
 
-                         }
 
-                     });
 
-                     //校准
 
-                     btnCalibrationOffset.gameObject.SetActive(true);
 
-                     btnCalibrationOffset.onClick.AddListener(delegate () {
 
-                         AudioMgr.ins.PlayBtn();
 
-                         SmartBowController.Instance.ResetAim();
 
-                     });
 
-                 }
 
-                 else
 
-                 {
 
-                     btnAim.gameObject.SetActive(true);
 
-                     btnAim.onClick.AddListener(() =>
 
-                     {
 
-                         if (btnAim.GetComponent<LongPressMonitor>().isLongPress) return;
 
-                         AudioManager.Instance.PlayBtn();
 
-                         SmartBowController.Instance.ResetAim();
 
-                     });
 
-                     btnAim.gameObject.AddComponent<LongPressMonitor>().onLongPress += () =>
 
-                     {
 
-                         AudioManager.Instance.PlayBtn();
 
-                         if (SB_EventSystem.ins) SB_EventSystem.ins.AwakenSimulateMouse();
 
-                     };
 
-                 }
 
-             }
 
-                
 
-             btnBack.onClick.AddListener(() => {
 
-                 AudioManager.Instance.PlayBtn();
 
-                 // UnityEngine.SceneManagement.SceneManager.LoadScene("Home", UnityEngine.SceneManagement.LoadSceneMode.Single);
 
-                 //野鸭退出时候操作一次分数
 
-                 Debug.Log("野鸭btnBack上传的积分:" );
 
-                 GameManager.Instance.onUploadScore();
 
-                 //结束游戏页面
 
-                 GameManager.Instance.userGameAnalyse1.showResultView(() => {
 
-                     UnityEngine.SceneManagement.SceneManager.LoadScene("Home", UnityEngine.SceneManagement.LoadSceneMode.Single);
 
-                 });
 
-             });
 
-             InitLevelSlider();
 
-             levelSlider.onValueChanged.AddListener(OnLevelSliderUpdate);
 
-             //根据模式切换图标
 
-             tempRTF = GlobalData.MyDeviceMode == DeviceMode.Archery ? arrowsRTF : bulletRTF;
 
-             tempRTF.gameObject.SetActive(true);
 
-         }
 
-         void OnDestroy()
 
-         {
 
-             if (Instance == this) Instance = null;
 
-             DOTween.KillAll(false);
 
-         }
 
-         // Update is called once per frame
 
-         void Update()
 
-         {
 
-             GameManager gm = GameManager.Instance;
 
-             if (!gm) return;
 
-             // int t = (int)(Time.time - startTime);
 
-             // int m = t / 60;
 
-             // int s = t % 60;
 
-             // string mStr = m < 10 ? "0" + m : m.ToString();
 
-             // string sStr = s < 10 ? "0" + s : s.ToString();
 
-             // textTime.text = $"{mStr}:{sStr}";
 
-         }
 
-         void InitLevelSlider()
 
-         {
 
-             RenderLevelSliderText();
 
-             levelSlider.SetValueWithoutNotify(GameManager.Instance.level);
 
-         }
 
-         void OnLevelSliderUpdate(float v)
 
-         {
 
-             GameManager.DefaultLevel = GameManager.Instance.level = (int)v;
 
-             RenderLevelSliderText();
 
-         }
 
-         void RenderLevelSliderText()
 
-         {
 
-             var tal2 = levelSlider.transform.Find("Text").GetComponent<TextAutoLanguage2>();
 
-             tal2.textFormatArgs = new object[] { GameManager.Instance.level };
 
-             tal2.ApplyToText();
 
-         }
 
-         int _renderHitScore = 0;
 
-         Tween _sequenceRenderHitScore;
 
-         public void RenderHitScore(int score, int bestScore)
 
-         {
 
-             if (!GameManager.Instance) return;
 
-             if (_sequenceRenderHitScore != null)
 
-             {
 
-                 _sequenceRenderHitScore.Kill();
 
-                 _sequenceRenderHitScore = null;
 
-             }
 
-             _sequenceRenderHitScore = DOTween.To(() => _renderHitScore, v =>
 
-             {
 
-                 _renderHitScore = v;
 
-                 textScore.text = _renderHitScore.ToString();
 
-             }, score, 0.5f);
 
-             if (bestScore > 0)
 
-             {
 
-                 textScoreBest.gameObject.SetActive(true);
 
-                 var tal2 = textScoreBest.GetComponent<TextAutoLanguage2>();
 
-                 tal2.textFormatArgs = new object[] { bestScore };
 
-                 tal2.ApplyToText();
 
-             }
 
-         }
 
-         public bool CheckHitDuckForGameStart(Vector2 screenPosition)
 
-         {
 
-             return RectTransformUtility.RectangleContainsScreenPoint(duckForGameStart, screenPosition);
 
-         }
 
-         public void HandleGameStart(System.Action callback, bool startImmediate)
 
-         {
 
-             if (startImmediate) TextGameScreenCenter.Instance.ShowText(TextGameScreenCenter.TextName.GAME_START_HIDE);
 
-             else TextGameScreenCenter.Instance.ShowText(TextGameScreenCenter.TextName.GAME_START_FADEOUT);
 
-             TweenCallback cb = () =>
 
-             {
 
-                 bottomBox.SetActive(true);
 
-                 duckForGameStart.gameObject.SetActive(false);
 
-                 levelSlider.gameObject.SetActive(false);
 
-                 callback?.Invoke();
 
-             };
 
-             if (startImmediate) cb.Invoke();
 
-             else
 
-             {
 
-                 Sequence sequence = DOTween.Sequence();
 
-                 sequence.Append(duckForGameStart.transform.DOMoveX(Screen.width * 1.125f, 1f));
 
-                 sequence.AppendCallback(cb);
 
-             }
 
-         }
 
-         List<Sequence> arrowsFadeSeqList = new List<Sequence>();
 
-         [SerializeField] RectTransform arrowsRTF;
 
-         [SerializeField] RectTransform bulletRTF;
 
-         RectTransform tempRTF;
 
-         public void RenderArrowCount(int count)
 
-         {
 
-             if (count == 0 && arrowsFadeSeqList.Count > 0) return;
 
-             if (arrowsFadeSeqList.Count > 0)
 
-             {
 
-                 for (int i = arrowsFadeSeqList.Count - 1; i >= 0; i--)
 
-                 {
 
-                     var seq = arrowsFadeSeqList[i];
 
-                     arrowsFadeSeqList.RemoveAt(i);
 
-                     seq.Kill();
 
-                 }
 
-             }
 
-        
 
-             for (int i = 1; i < tempRTF.childCount; i++)
 
-             {
 
-                 RectTransform iconRTF = tempRTF.GetChild(i) as RectTransform;
 
-                 Image iconIMG = iconRTF.GetComponent<Image>();
 
-                 iconIMG.color = Color.white;
 
-                 iconRTF.gameObject.SetActive(i <= count);
 
-                 if (count == 0)
 
-                 {
 
-                     if (i <= 3) iconRTF.gameObject.SetActive(true);
 
-                     var seq = DOTween.Sequence();
 
-                     arrowsFadeSeqList.Add(seq);
 
-                     seq.Append(iconIMG.DOFade(0.5f, 0.2f));
 
-                     seq.Append(iconIMG.DOFade(1f, 0f));
 
-                     seq.SetLoops(-1);
 
-                 }
 
-             }
 
-         }
 
-         [SerializeField] RectTransform duckCountRTF;
 
-         int _renderHitDuckCount = 0;
 
-         List<Sequence> _duckIconListSequences = new List<Sequence>();
 
-         /// <summary>
 
-         /// 渲染鸭子的状态图标列表
 
-         /// </summary>
 
-         public void RenderHitDuckCount(int duckType)
 
-         {
 
-             if (duckType > 0)
 
-             {
 
-                 _renderHitDuckCount++;
 
-                 RectTransform iconRTF = duckCountRTF.GetChild(_renderHitDuckCount) as RectTransform;
 
-                 Image iconIMG = iconRTF.GetComponent<Image>();
 
-                 iconIMG.sprite = Resources.Load<Sprite>("DuckHunter/Textures/Icons/Duck" + duckType);
 
-             }
 
-             else if (duckType == 0)
 
-             {
 
-                 _renderHitDuckCount++;
 
-                 RectTransform iconRTF = duckCountRTF.GetChild(_renderHitDuckCount) as RectTransform;
 
-                 Image iconIMG = iconRTF.GetComponent<Image>();
 
-                 var seq = DOTween.Sequence();
 
-                 _duckIconListSequences.ForEach(e => e.Restart());
 
-                 _duckIconListSequences.Add(seq);
 
-                 seq.AppendCallback(() =>
 
-                 {
 
-                     Color c = iconIMG.color;
 
-                     c.a = 1;
 
-                     iconIMG.color = c;
 
-                 });
 
-                 seq.Append(iconIMG.DOFade(0.2f, 0.2f));
 
-                 seq.Append(iconIMG.DOFade(1f, 0f));
 
-                 seq.SetLoops(-1);
 
-             }
 
-             else
 
-             {
 
-                 _duckIconListSequences.ForEach(e => e.Kill());
 
-                 for (int i = 1; i < duckCountRTF.childCount; i++)
 
-                 {
 
-                     RectTransform iconRTF = duckCountRTF.GetChild(i) as RectTransform;
 
-                     Image iconIMG = iconRTF.GetComponent<Image>();
 
-                     var seq = DOTween.Sequence();
 
-                     Color c = iconIMG.color;
 
-                     c.a = 1;
 
-                     iconIMG.color = c;
 
-                     seq.Append(iconIMG.DOFade(0.5f, 0.2f));
 
-                     seq.Append(iconIMG.DOFade(1f, 0f));
 
-                     seq.SetLoops(-1);
 
-                 }
 
-             }
 
-         }
 
-         Sequence _sequenceShowTextHitScore;
 
-         public void ShowTextHitScore(int score, Vector2 screenPosition)
 
-         {
 
-             if (_sequenceShowTextHitScore != null)
 
-             {
 
-                 _sequenceShowTextHitScore.Kill();
 
-                 _sequenceShowTextHitScore = null;
 
-             }
 
-             textHitScore.gameObject.SetActive(true);
 
-             textHitScore.text = score.ToString();
 
-             textHitScore.transform.position = screenPosition;
 
-             _sequenceShowTextHitScore = DOTween.Sequence();
 
-             _sequenceShowTextHitScore.Append(textHitScore.DOFade(0.8f, 0));
 
-             float lpy = textHitScore.transform.localPosition.y;
 
-             _sequenceShowTextHitScore.Append(textHitScore.transform.DOLocalMoveY(lpy + 100, 0.5f));
 
-             _sequenceShowTextHitScore.AppendInterval(1.5f);
 
-             _sequenceShowTextHitScore.Append(textHitScore.DOFade(0, 0.5f));
 
-             _sequenceShowTextHitScore.AppendCallback(() => textHitScore.gameObject.SetActive(false));
 
-         }
 
-         [SerializeField] Text textLevel;
 
-         public void RenderLevel(int level)
 
-         {
 
-             var tal2 = textLevel.GetComponent<TextAutoLanguage2>();
 
-             tal2.textFormatArgs = new object[] { level };
 
-             tal2.ApplyToText();
 
-         }
 
-         [SerializeField] RectTransform arrowBox;
 
-         public void AddArrowOnScreen(Vector2 screenPosition)
 
-         {
 
-             //arrowBox.GetChild(0)
 
-             var o = Instantiate(arrowBox.GetChild((int)GlobalData.MyDeviceMode).gameObject, arrowBox);
 
-             var tf = o.transform;
 
-             tf.position = screenPosition;
 
-             tf.gameObject.SetActive(true);
 
-             Image img = tf.GetComponent<Image>();
 
-             Sequence seq = DOTween.Sequence();
 
-             seq.AppendInterval(2.5f);
 
-             seq.Append(img.DOFade(0, 0.5f));
 
-             seq.AppendCallback(() => Destroy(o));
 
-         }
 
-     }
 
- }
 
 
  |