lvjincheng před 3 roky
rodič
revize
d94fdcbd4c

+ 380 - 6
Assets/BowArrow/Resources/Prefabs/Views/DeviceCalibrateView.prefab

@@ -1,5 +1,163 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
+--- !u!1 &897971974499562174
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 31122222153839118}
+  - component: {fileID: 4121953030105551723}
+  - component: {fileID: 7519002518980430387}
+  m_Layer: 5
+  m_Name: MagTip1
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &31122222153839118
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 897971974499562174}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 6984168368599178995}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 822.04443, y: 41.244446}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4121953030105551723
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 897971974499562174}
+  m_CullTransparentMesh: 1
+--- !u!114 &7519002518980430387
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 897971974499562174}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 1ad2cf6c2f09744489d8c60b3fe3bab2, type: 3}
+    m_FontSize: 32
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: "\u8BF7\u5C06\u6A21\u5757\u7ED5XYZ\u8F74\u5404\u65CB\u8F6C\u81F3\u5C11\u4E00\u5708\uFF0C\u76F4\u5230\u63D0\u793A\u6821\u51C6\u5B8C\u6210\u4E3A\u6B62\uFF01"
+--- !u!1 &1848034465720062135
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1315163913953585888}
+  - component: {fileID: 3297102788406750563}
+  - component: {fileID: 8902158665750265119}
+  m_Layer: 5
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1315163913953585888
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1848034465720062135}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 422015738313018617}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 3.449997}
+  m_SizeDelta: {x: 0, y: -0.9000001}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &3297102788406750563
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1848034465720062135}
+  m_CullTransparentMesh: 1
+--- !u!114 &8902158665750265119
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1848034465720062135}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0, g: 0.3529412, b: 0.7137255, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 1ad2cf6c2f09744489d8c60b3fe3bab2, type: 3}
+    m_FontSize: 24
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u91CD\u65B0\u6821\u51C6"
 --- !u!1 &3143278146965190397
 GameObject:
   m_ObjectHideFlags: 0
@@ -110,6 +268,7 @@ MonoBehaviour:
   textID: 120
   layoutRebuildObject: {fileID: 0}
   textFormatArgs: []
+  languageFontSizes: []
 --- !u!1 &3245592320226212658
 GameObject:
   m_ObjectHideFlags: 0
@@ -185,6 +344,127 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &4295382300116116190
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 422015738313018617}
+  - component: {fileID: 2457803467517142196}
+  - component: {fileID: 1078973097816403762}
+  - component: {fileID: 2671286861583544749}
+  m_Layer: 5
+  m_Name: MagReset
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &422015738313018617
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4295382300116116190}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1315163913953585888}
+  m_Father: {fileID: 6984168368599178995}
+  m_RootOrder: 6
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: -74}
+  m_SizeDelta: {x: 165, y: 60}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2457803467517142196
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4295382300116116190}
+  m_CullTransparentMesh: 1
+--- !u!114 &1078973097816403762
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4295382300116116190}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 1d745dd9e0569e84ebb0065d8cd1cf72, type: 3}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &2671286861583544749
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4295382300116116190}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 1078973097816403762}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
 --- !u!1 &6344043926272941954
 GameObject:
   m_ObjectHideFlags: 0
@@ -507,6 +787,7 @@ MonoBehaviour:
   textID: 79
   layoutRebuildObject: {fileID: 0}
   textFormatArgs: []
+  languageFontSizes: []
 --- !u!1 &6984168368174673572
 GameObject:
   m_ObjectHideFlags: 0
@@ -602,6 +883,7 @@ MonoBehaviour:
   textID: 80
   layoutRebuildObject: {fileID: 0}
   textFormatArgs: []
+  languageFontSizes: []
 --- !u!1 &6984168368273229286
 GameObject:
   m_ObjectHideFlags: 0
@@ -697,6 +979,7 @@ MonoBehaviour:
   textID: 77
   layoutRebuildObject: {fileID: 0}
   textFormatArgs: []
+  languageFontSizes: []
 --- !u!1 &6984168368394668792
 GameObject:
   m_ObjectHideFlags: 0
@@ -1098,6 +1381,9 @@ MonoBehaviour:
   btnFinish: {fileID: 6984168369596222398}
   deviceCalibrateItem: 0
   guide: 1
+  tipMag1: {fileID: 897971974499562174}
+  tipMag2: {fileID: 8286164872813824460}
+  magReset: {fileID: 4295382300116116190}
 --- !u!1 &6984168368495152322
 GameObject:
   m_ObjectHideFlags: 0
@@ -1314,6 +1600,7 @@ MonoBehaviour:
   textID: 82
   layoutRebuildObject: {fileID: 0}
   textFormatArgs: []
+  languageFontSizes: []
 --- !u!1 &6984168368568621763
 GameObject:
   m_ObjectHideFlags: 0
@@ -1424,6 +1711,7 @@ MonoBehaviour:
   textID: 81
   layoutRebuildObject: {fileID: 6984168368426564390}
   textFormatArgs: []
+  languageFontSizes: []
 --- !u!1 &6984168368599178994
 GameObject:
   m_ObjectHideFlags: 0
@@ -1455,6 +1743,9 @@ RectTransform:
   - {fileID: 6984168368743123379}
   - {fileID: 6984168369897369987}
   - {fileID: 1611860986899252675}
+  - {fileID: 31122222153839118}
+  - {fileID: 8073365554632566914}
+  - {fileID: 422015738313018617}
   m_Father: {fileID: 6984168368486957087}
   m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1551,7 +1842,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!224 &6984168368743123379
 RectTransform:
   m_ObjectHideFlags: 0
@@ -1865,6 +2156,7 @@ MonoBehaviour:
   textID: 85
   layoutRebuildObject: {fileID: 0}
   textFormatArgs: []
+  languageFontSizes: []
 --- !u!1 &6984168368986335551
 GameObject:
   m_ObjectHideFlags: 0
@@ -2798,6 +3090,7 @@ MonoBehaviour:
   textID: 86
   layoutRebuildObject: {fileID: 6984168369111700103}
   textFormatArgs: []
+  languageFontSizes: []
 --- !u!1 &6984168369480428207
 GameObject:
   m_ObjectHideFlags: 0
@@ -2817,7 +3110,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!224 &6984168369480428192
 RectTransform:
   m_ObjectHideFlags: 0
@@ -2837,7 +3130,7 @@ RectTransform:
   m_AnchorMin: {x: 0.5, y: 1}
   m_AnchorMax: {x: 0.5, y: 1}
   m_AnchoredPosition: {x: 0, y: -120}
-  m_SizeDelta: {x: 746, y: 100}
+  m_SizeDelta: {x: 743.0222, y: 100}
   m_Pivot: {x: 0.5, y: 1}
 --- !u!222 &6984168369480428196
 CanvasRenderer:
@@ -3012,6 +3305,7 @@ MonoBehaviour:
   textID: 78
   layoutRebuildObject: {fileID: 0}
   textFormatArgs: []
+  languageFontSizes: []
 --- !u!1 &6984168369596222396
 GameObject:
   m_ObjectHideFlags: 0
@@ -3321,8 +3615,8 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 403, y: -50}
-  m_SizeDelta: {x: 606, y: 26.666666}
+  m_AnchoredPosition: {x: 401.5111, y: -50}
+  m_SizeDelta: {x: 603.0222, y: 27.022223}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &6984168369721823361
 CanvasRenderer:
@@ -3395,6 +3689,7 @@ MonoBehaviour:
   textID: 84
   layoutRebuildObject: {fileID: 6984168369480428192}
   textFormatArgs: []
+  languageFontSizes: []
 --- !u!1 &6984168369897369986
 GameObject:
   m_ObjectHideFlags: 0
@@ -3413,7 +3708,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!224 &6984168369897369987
 RectTransform:
   m_ObjectHideFlags: 0
@@ -3664,3 +3959,82 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &8286164872813824460
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8073365554632566914}
+  - component: {fileID: 700732531410769236}
+  - component: {fileID: 8303942291223141081}
+  m_Layer: 5
+  m_Name: MagTip2
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &8073365554632566914
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8286164872813824460}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 6984168368599178995}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 250.31111, y: 41.244446}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &700732531410769236
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8286164872813824460}
+  m_CullTransparentMesh: 1
+--- !u!114 &8303942291223141081
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8286164872813824460}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.2584905, g: 1, b: 0.2584905, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: 1ad2cf6c2f09744489d8c60b3fe3bab2, type: 3}
+    m_FontSize: 32
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 4
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 1
+    m_LineSpacing: 1
+  m_Text: "\u5730\u78C1\u8BA1\u6821\u51C6\u5DF2\u5B8C\u6210"

+ 7 - 7
Assets/BowArrow/Scripts/Bluetooth/AimHandler.cs

@@ -146,7 +146,6 @@ public class AimHandler : MonoBehaviour
 
     [NonSerialized] public bool isCalibrateMagPerfect = false;
      public void CalibrateMag(bool calibration) {
-        isCalibrateMagPerfect = MagCalibrater.Complete;
         // try {
         //     if (calibration)
         //     {
@@ -323,12 +322,6 @@ public class AimHandler : MonoBehaviour
             Acc = new Vector3(-az, ay, -ax) / 32768 * 16;
             Gyr = new Vector3(yaw, -pitch, roll) / 32768 * 2;
             Mag = new Vector3(-z, y, x) / 32768 * 256; //旧版
-            mag0o = UnityVectorTo0o(Mag);
-            if (!MagCalibrater.Update(mag0o)) {
-                return;
-            }
-            mag0o = MagCalibrater.EllipsoidFitting.Map(mag0o);
-            Mag = o0VectorToUnity(mag0o);
         } else if (CommonConfig.devicePlan == 1) {
             Acc = new Vector3(ax, ay, az) / 32768 * 16;
             Gyr = new Vector3(roll, pitch, yaw) / 32768 * 2;
@@ -384,6 +377,12 @@ public class AimHandler : MonoBehaviour
         //     }
            
         // }
+        mag0o = UnityVectorTo0o(Mag);
+        if (!MagCalibrater.Update(mag0o)) {
+            return;
+        }
+        mag0o = MagCalibrater.EllipsoidFitting.Map(mag0o);
+        Mag = o0VectorToUnity(mag0o);
         MagObj.transform.GetChild(0).localPosition = Mag;
 
         var ms = (((long)bytes[1]) *60 + bytes[2])*1000 + (long)TwoByteToFloat(bytes[3], bytes[4]);
@@ -445,6 +444,7 @@ public class AimHandler : MonoBehaviour
         }
         if (!magComplete && MagCalibrater.Complete) {
             PlayerPrefs.SetString("new_mag_record", MagCalibrater.ToJson());
+            PopupMgr.ins.ShowTipTop("地磁计校准成功");
         }
         magComplete = MagCalibrater.Complete;
     }

+ 3 - 1
Assets/BowArrow/Scripts/Game/ArmBow.cs

@@ -135,7 +135,9 @@ public class ArmBow : MonoBehaviour
     void Update()
     {
         UpdatePhase();
-        if (Input.GetKeyDown(KeyCode.Q)) this.ADS_fire();
+        #if UNITY_EDITOR
+            if (Input.GetKeyDown(KeyCode.Q)) this.ADS_fire();
+        #endif
     }
 
     void FixedUpdate()

+ 19 - 1
Assets/BowArrow/Scripts/View/DeviceCalibrateView.cs

@@ -39,6 +39,10 @@ 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(() => {
+            AimHandler.ins.MagCalibrater = new o0._9Axis.MagnetometerAutoCalibrater();
+            PlayerPrefs.DeleteKey("new_mag_record");
+        });
         btnBack.GetComponent<Button>().onClick.AddListener(delegate() {
             guideIndex--;
             RefreshPage();
@@ -58,7 +62,7 @@ public class DeviceCalibrateView : MonoBehaviour
             if (string.IsNullOrEmpty(PlayerPrefs.GetString("o0GyrCalibrater", null))) {
                 guideList.Add(DeviceCalibrateItem.Gyr);
             }
-            if (string.IsNullOrEmpty(PlayerPrefs.GetString("o0MagneticCalibrater", null))) {
+            if (string.IsNullOrEmpty(PlayerPrefs.GetString("new_mag_record", null))) {
                 guideList.Add(DeviceCalibrateItem.Mag);
             }
             deviceCalibrateItemForGuide = guideList.ToArray();
@@ -95,7 +99,21 @@ public class DeviceCalibrateView : MonoBehaviour
                 FinishGyrCalibrate();
             }
         }
+        if (deviceCalibrateItem == DeviceCalibrateItem.Mag) {
+            if (!AimHandler.ins.MagCalibrater.Complete) {
+                tipMag1.SetActive(true);
+                tipMag2.SetActive(false);
+                magReset.SetActive(false);
+            } else {
+                tipMag1.SetActive(false);
+                tipMag2.SetActive(true);
+                magReset.SetActive(true);
+            }
+        }
     }
+    [SerializeField] GameObject tipMag1;
+    [SerializeField] GameObject tipMag2;
+    [SerializeField] GameObject magReset;
 
     void RefreshPage() {
         if (guide) {