| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using System;
- public class MagGuidanceView : MonoBehaviour
- {
- [SerializeField] Button btnMagCalibrate;
- [SerializeField] GameObject prefab_MagInterferenceTipView;
- TextAutoLanguage2 _TextAutoLanguage2;
- [SerializeField] List<GameObject> layouts;
- bool bStartResetMag = false;
- //bool bAutoNext = false;
- void Start()
- {
- btnMagCalibrate.GetComponent<Button>().onClick.AddListener(() =>
- {
- if (BluetoothAim.ins.getBLEPlayer() == BluetoothPlayer.FIRST_PLAYER)
- {
- ClickResetMag();
- }
- else if (BluetoothAim.ins.getBLEPlayer() == BluetoothPlayer.SECONDE_PLAYER)
- {
- ClickResetMag2P();
- }
- });
- _TextAutoLanguage2 = btnMagCalibrate.transform.Find("Text").GetComponent<TextAutoLanguage2>();
- if (BluetoothAim.ins.getBLEPlayer() == BluetoothPlayer.FIRST_PLAYER)
- {
- if (AimHandler.ins.IsMagCompleted() && PlayerPrefs.GetInt("entry-guider-one-" + LoginMgr.myUserInfo.id, 0) == 1)
- {
- //本机已经初始化流程第一次后
- _TextAutoLanguage2.SetTextKey("Mag_Reinitialize");
- }
- else
- {
- _TextAutoLanguage2.SetTextKey("Mag_Initialization");
- }
- }
- else if (BluetoothAim.ins.getBLEPlayer() == BluetoothPlayer.SECONDE_PLAYER)
- {
- if (BluetoothAim.ins.getSmartBowHelper2P().IsMagCompleted())
- {
- //本机已经初始化流程第一次后
- _TextAutoLanguage2.SetTextKey("Mag_Reinitialize");
- }
- else
- {
- _TextAutoLanguage2.SetTextKey("Mag_Initialization");
- }
- }
- if (AimHandler.ins.aimDeviceInfo.type == (int)AimDeviceType.ARTEMIS)
- {
- ShowDeviceLayout(1);
- }
- else
- {
- ShowDeviceLayout(0);
- }
- }
- void ShowDeviceLayout(int index)
- {
- for (int i = 0; i < layouts.Count; i++)
- {
- GameObject _button = layouts[i];
- _button.SetActive(index == i);
- }
- }
- void Update()
- {
- if (BluetoothAim.ins.getBLEPlayer() == BluetoothPlayer.FIRST_PLAYER)
- {
- UpdateForMag();
- }
- else if (BluetoothAim.ins.getBLEPlayer() == BluetoothPlayer.SECONDE_PLAYER)
- {
- UpdateForMag2P();
- }
-
- }
- public void OnClick_Back()
- {
- AudioMgr.ins.PlayBtn();
- //ViewMgr.Instance.DestroyView<SmartArcheryView>();
- ViewManager2.HideView(ViewManager2.Path_MagGuidanceView);
- }
- #region 地磁计校准逻辑
- /* ------ 新地磁计校准(2022-10-3) ------ */
- [NonSerialized] public bool calibrateMagDoing = false;
- float calibrateMagStartTime = 0; //地磁校准开始时刻
- //在当前页面中,用户是否点击了开始校准并校准成功;有则flag=1
- [NonSerialized] public int flag_MagCalibarateOperateAndFinish = -1;
- public Action action_MagCalibarateOperateAndFinish;
- public Func<bool> action_OnClickMagCalibrateInterceptor;
- void ClickResetMag()
- {
- if (action_OnClickMagCalibrateInterceptor != null)
- {
- if (action_OnClickMagCalibrateInterceptor.Invoke()) return;
- }
- if (!calibrateMagDoing && BluetoothAim.ins.status != BluetoothStatusEnum.ConnectSuccess)
- {
- PopupMgr.ins.ShowTipTop(TextAutoLanguage2.GetTextByKey("device-calibrate_n-connect"));
- return;
- }
- calibrateMagDoing = !calibrateMagDoing;
- if (calibrateMagDoing)
- {
- calibrateMagStartTime = Time.realtimeSinceStartup;
- AimHandler.ins.ResetMag();
- flag_MagCalibarateOperateAndFinish = 0;
- }
- else
- {
- Axis9CalibrateRecord.ResumeCalibrateRecord(LoginMgr.myUserInfo.mac);
- Axis9CalibrateRecord.SetCalibrateOkRecord(LoginMgr.myUserInfo.mac, false);
- }
- //开始校准
- bStartResetMag = true;
- }
- //取消地磁计校准(仅用在UpdateForMag中)
- void CancelResetMag()
- {
- calibrateMagDoing = false;
- }
- void UpdateForMag()
- {
- if (!bStartResetMag) return;
- //假如还未初始化成功
- if (!AimHandler.ins.IsMagCompleted())
- {
- //地磁校准超时提示
- if (calibrateMagDoing)
- {
- float doingTime = Time.realtimeSinceStartup - calibrateMagStartTime;
- float progress = Mathf.FloorToInt(doingTime / 20 * 100);
- if (progress >= 100)
- {
- //初始化超时
- _TextAutoLanguage2.SetTextKey("Mag_Fail");
- CancelResetMag();
- //地磁干扰提示页面-start
- GameObject o = Instantiate(prefab_MagInterferenceTipView);
- var nug = FindObjectOfType<NewUserGuider>(); //判断是否处于引导界面
- if (nug && nug.gameObject && nug.gameObject.activeSelf)
- {
- JCUnityLib.CanvasUtils.PlusSortOrder(nug.gameObject, o, 1);
- }
- else
- {
- JCUnityLib.CanvasUtils.PlusSortOrder(gameObject, o, 1);
- }
- //地磁干扰提示页面-end
- PopupMgr.ins.ShowTipTop(TextAutoLanguage2.GetTextByKey("tip_mag-calibrate_please-leave-interfere"));
- bStartResetMag = false;
- }
- else
- {
- //模拟一个进度
- _TextAutoLanguage2.textFormatArgs = new object[] { progress };
- _TextAutoLanguage2.SetTextKey("Mag_Initializing2");
- }
- }
- else
- {
- _TextAutoLanguage2.SetTextKey("Mag_Initialization");
- bStartResetMag = false;
- }
- }
- else
- {
- _TextAutoLanguage2.SetTextKey("Mag_Success");
- if (calibrateMagDoing)
- {
- CancelResetMag();
- }
- if (flag_MagCalibarateOperateAndFinish == 0)
- {
- flag_MagCalibarateOperateAndFinish = 1;
- action_MagCalibarateOperateAndFinish?.Invoke();
- //添加进入射箭场景
- if (PlayerPrefs.GetInt("entry-guider-one-" + LoginMgr.myUserInfo.id, 0) != 1)
- {
- Debug.Log("-----进入射箭场景!");
- //FindObjectOfType<NewUserGuiderManager>().curConfigKey = "限时游戏-选择距离";
- NewUserGuiderManager newUserGuiderManager = FindObjectOfType<NewUserGuiderManager>();
- newUserGuiderManager.curConfigKey = "视角归位-触发";
- newUserGuiderManager.isNewModule = AimHandler.ins.aimDeviceInfo.type == (int)AimDeviceType.ARTEMIS;
- //进入射箭场景
- GlobalData.pkMatchType = PKMatchType.None;
- GameMgr.gameType = 1;
- //射一箭回到连接页面,Device.view
- GameMgr.bNavBack = true;
- GameMgr.bShowDistance = false;
- AimHandler.ins.bInitOne = true;
- UnityEngine.SceneManagement.SceneManager.LoadScene(
- "Game", UnityEngine.SceneManagement.LoadSceneMode.Single);
- PlayerPrefs.SetInt("entry-guider-one-" + LoginMgr.myUserInfo.id, 1);
- }
- else
- {
- //如不是第一次,则应该跳转回连接界面
- ViewMgr.Instance.DestroyView<SmartArcheryView>();
- ViewManager2.HideView(ViewManager2.Path_MagGuidanceView);
- }
- }
- bStartResetMag = false;
- }
- }
- #endregion
- #region SmartBowSDK 地磁计校准逻辑,目前用于2p
- void ClickResetMag2P()
- {
- if (!calibrateMagDoing && BluetoothAim.ins.getSmartBowHelper2P().GetBluetoothStatus() != SmartBowSDK.BluetoothStatusEnum.Connected)
- {
- PopupMgr.ins.ShowTipTop(TextAutoLanguage2.GetTextByKey("device-calibrate_n-connect"));
- return;
- }
- calibrateMagDoing = !calibrateMagDoing;
- if (calibrateMagDoing)
- {
- calibrateMagStartTime = Time.realtimeSinceStartup;
- BluetoothAim.ins.OnCalibrateMag2P();
- flag_MagCalibarateOperateAndFinish = 0;
- }
- //开始校准
- bStartResetMag = true;
- }
- void UpdateForMag2P()
- {
- if (!bStartResetMag) return;
- //假如还未初始化成功
- if (!BluetoothAim.ins.getSmartBowHelper2P().IsMagCompleted())
- {
- //地磁校准超时提示
- if (calibrateMagDoing)
- {
- float doingTime = Time.realtimeSinceStartup - calibrateMagStartTime;
- float progress = Mathf.FloorToInt(doingTime / 20 * 100);
- if (progress >= 100)
- {
- //初始化超时
- _TextAutoLanguage2.SetTextKey("Mag_Fail");
- CancelResetMag();
- //地磁干扰提示页面-start
- GameObject o = Instantiate(prefab_MagInterferenceTipView);
- var nug = FindObjectOfType<NewUserGuider>(); //判断是否处于引导界面
- if (nug && nug.gameObject && nug.gameObject.activeSelf)
- {
- JCUnityLib.CanvasUtils.PlusSortOrder(nug.gameObject, o, 1);
- }
- else
- {
- JCUnityLib.CanvasUtils.PlusSortOrder(gameObject, o, 1);
- }
- //地磁干扰提示页面-end
- PopupMgr.ins.ShowTipTop(TextAutoLanguage2.GetTextByKey("tip_mag-calibrate_please-leave-interfere"));
- bStartResetMag = false;
- }
- else
- {
- //模拟一个进度
- _TextAutoLanguage2.textFormatArgs = new object[] { progress };
- _TextAutoLanguage2.SetTextKey("Mag_Initializing2");
- }
- }
- else
- {
- _TextAutoLanguage2.SetTextKey("Mag_Initialization");
- bStartResetMag = false;
- }
- }
- else
- {
- _TextAutoLanguage2.SetTextKey("Mag_Success");
- if (calibrateMagDoing)
- {
- CancelResetMag();
- }
- if (flag_MagCalibarateOperateAndFinish == 0)
- {
- flag_MagCalibarateOperateAndFinish = 1;
- action_MagCalibarateOperateAndFinish?.Invoke();
- //如不是第一次,则应该跳转回连接界面
- ViewMgr.Instance.DestroyView<SmartArcheryView>();
- ViewManager2.HideView(ViewManager2.Path_MagGuidanceView);
- }
- bStartResetMag = false;
- }
- }
- #endregion
- }
|