|
|
@@ -41,11 +41,8 @@ public class DeviceCalibrateView : MonoBehaviour
|
|
|
btnGyrCalibrate.GetComponent<Button>().onClick.AddListener(ClickGyrCalibrate);
|
|
|
btnMagCalibrate.GetComponent<Button>().onClick.AddListener(ClickMagCalibrate);
|
|
|
btnIdentityCalibrate.GetComponent<Button>().onClick.AddListener(ClickIdentityCalibrate);
|
|
|
- magReset.GetComponent<Button>().onClick.AddListener(() => {
|
|
|
- ResetCalibrateMagTimeout();
|
|
|
- AimHandler.ins.MagCalibrater = new o0._9Axis.MagnetometerAutoCalibrater();
|
|
|
- PlayerPrefs.DeleteKey("new_mag_record");
|
|
|
- });
|
|
|
+ magReset.GetComponent<Button>().onClick.AddListener(ClickResetMag);
|
|
|
+ RefreshResetMagBtn();
|
|
|
btnBack.GetComponent<Button>().onClick.AddListener(delegate() {
|
|
|
guideIndex--;
|
|
|
RefreshPage();
|
|
|
@@ -96,7 +93,6 @@ public class DeviceCalibrateView : MonoBehaviour
|
|
|
bool canUpdateGyrCalibrateProgress = false;
|
|
|
|
|
|
float calibrateMagStartTime = 0; //地磁校准开始时刻
|
|
|
- bool calibrateMagTimeoutTipShowed = false; //地磁校准超时后,是否已提示
|
|
|
|
|
|
void Update()
|
|
|
{
|
|
|
@@ -107,25 +103,7 @@ public class DeviceCalibrateView : MonoBehaviour
|
|
|
FinishGyrCalibrate();
|
|
|
}
|
|
|
}
|
|
|
- if (deviceCalibrateItem == DeviceCalibrateItem.Mag) {
|
|
|
- if (!AimHandler.ins.MagCalibrater.Complete) {
|
|
|
- tipMag1.SetActive(true);
|
|
|
- tipMag2.SetActive(false);
|
|
|
- magReset.SetActive(true);
|
|
|
-
|
|
|
- if ( //地磁校准超时提示
|
|
|
- !calibrateMagTimeoutTipShowed &&
|
|
|
- Time.realtimeSinceStartup - calibrateMagStartTime > 20
|
|
|
- ) {
|
|
|
- calibrateMagTimeoutTipShowed = true;
|
|
|
- PopupMgr.ins.ShowTipTop("存在磁场干扰,请远离电子设备后点击重新校准!");
|
|
|
- }
|
|
|
- } else {
|
|
|
- tipMag1.SetActive(false);
|
|
|
- tipMag2.SetActive(true);
|
|
|
- magReset.SetActive(true);
|
|
|
- }
|
|
|
- }
|
|
|
+ UpdateForMag();
|
|
|
}
|
|
|
[SerializeField] GameObject tipMag1;
|
|
|
[SerializeField] GameObject tipMag2;
|
|
|
@@ -161,19 +139,58 @@ public class DeviceCalibrateView : MonoBehaviour
|
|
|
this.transform.Find("Gyr").gameObject.SetActive(deviceCalibrateItem == DeviceCalibrateItem.Gyr);
|
|
|
this.transform.Find("Mag").gameObject.SetActive(deviceCalibrateItem == DeviceCalibrateItem.Mag);
|
|
|
this.transform.Find("Identity").gameObject.SetActive(deviceCalibrateItem == DeviceCalibrateItem.Identity);
|
|
|
- OnRefreshPage();
|
|
|
}
|
|
|
|
|
|
- void OnRefreshPage() {
|
|
|
+ /* ------ 新地磁计校准(2022-10-3) ------ */
|
|
|
+ bool calibrateMagDoing = false;
|
|
|
+ void RefreshResetMagBtn()
|
|
|
+ {
|
|
|
+ if (calibrateMagDoing) {
|
|
|
+ magReset.GetComponentInChildren<Text>().color = Color.red;
|
|
|
+ magReset.GetComponentInChildren<Text>().text = "取消校准";
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Color outColor;
|
|
|
+ ColorUtility.TryParseHtmlString("#005AB6", out outColor);
|
|
|
+ magReset.GetComponentInChildren<Text>().color = outColor;
|
|
|
+ if (AimHandler.ins.MagCalibrater.Complete) {
|
|
|
+ magReset.GetComponentInChildren<Text>().text = "重新校准";
|
|
|
+ } else {
|
|
|
+ magReset.GetComponentInChildren<Text>().text = "开始校准";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ void ClickResetMag()
|
|
|
+ {
|
|
|
+ calibrateMagDoing = !calibrateMagDoing;
|
|
|
+ if (calibrateMagDoing) {
|
|
|
+ calibrateMagStartTime = Time.realtimeSinceStartup;
|
|
|
+ AimHandler.ins.MagCalibrater = new o0._9Axis.MagnetometerAutoCalibrater();
|
|
|
+ PlayerPrefs.DeleteKey("new_mag_record");
|
|
|
+ }
|
|
|
+ RefreshResetMagBtn();
|
|
|
+ }
|
|
|
+ void UpdateForMag() {
|
|
|
if (deviceCalibrateItem == DeviceCalibrateItem.Mag) {
|
|
|
- ResetCalibrateMagTimeout();
|
|
|
+ if (!AimHandler.ins.MagCalibrater.Complete) {
|
|
|
+ tipMag1.SetActive(true);
|
|
|
+ tipMag2.SetActive(false);
|
|
|
+ magReset.SetActive(true);
|
|
|
+ //地磁校准超时提示
|
|
|
+ if (calibrateMagDoing && Time.realtimeSinceStartup - calibrateMagStartTime > 20) {
|
|
|
+ calibrateMagDoing = false;
|
|
|
+ RefreshResetMagBtn();
|
|
|
+ PopupMgr.ins.ShowTipTop("存在磁场干扰,请远离电子设备后再进行校准!");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ tipMag1.SetActive(false);
|
|
|
+ tipMag2.SetActive(true);
|
|
|
+ magReset.SetActive(true);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//重置地磁校准超时检测
|
|
|
public void ResetCalibrateMagTimeout() {
|
|
|
calibrateMagStartTime = Time.realtimeSinceStartup;
|
|
|
- calibrateMagTimeoutTipShowed = false;
|
|
|
}
|
|
|
|
|
|
// ------ 陀螺仪校准 ------
|