Bläddra i källkod

1.正式服务器
2.添加 ARTEMISPRO 弓箭,调整相关操作

slambb 1 år sedan
förälder
incheckning
4356de3d42

+ 471 - 0
Assets/BowArrow/Resources/Prefabs/Views/Home/SmartArcheryView.prefab

@@ -282,6 +282,7 @@ RectTransform:
   - {fileID: 6648282032371057821}
   - {fileID: 5607377240435146125}
   - {fileID: 7320365829962039339}
+  - {fileID: 5939355824258556124}
   m_Father: {fileID: 8146888902267481947}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -417,6 +418,177 @@ MonoBehaviour:
   m_ChildScaleWidth: 1
   m_ChildScaleHeight: 0
   m_ReverseArrangement: 0
+--- !u!1 &2163235355422247374
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5939355824258556124}
+  - component: {fileID: 5187416892445197605}
+  - component: {fileID: 5544986050200597741}
+  - component: {fileID: 3612813887139268570}
+  - component: {fileID: 8057255995132643880}
+  m_Layer: 5
+  m_Name: smartArcheryButton5
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5939355824258556124
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2163235355422247374}
+  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_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 6418353418276787885}
+  - {fileID: 657448356355205494}
+  m_Father: {fileID: 7822889146626897872}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5187416892445197605
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2163235355422247374}
+  m_CullTransparentMesh: 1
+--- !u!114 &5544986050200597741
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2163235355422247374}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 2100000, guid: 7d00fa0ace1d39e488d1340fc86fb1df, type: 2}
+  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: 0}
+  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 &3612813887139268570
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2163235355422247374}
+  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: 0
+  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: 5544986050200597741}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &8057255995132643880
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2163235355422247374}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 9041465d981afb74e8861a84f98f2dbd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  targetRTF: {fileID: 0}
+  targetGraphic: {fileID: 0}
+  selectedColor: {r: 1, g: 1, b: 1, a: 0.6}
+  targetButton: {fileID: 0}
+  cellObj: {fileID: 0}
+  OnStartEvent:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 156485815492543730}
+        m_TargetAssemblyTypeName: SmartArcheryView, Assembly-CSharp
+        m_MethodName: OnChangeSmartArcheryButtonState
+        m_Mode: 3
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: 4
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
+  OnEndEvent:
+    m_PersistentCalls:
+      m_Calls:
+      - m_Target: {fileID: 156485815492543730}
+        m_TargetAssemblyTypeName: SmartArcheryView, Assembly-CSharp
+        m_MethodName: OnChangeSmartArcheryButtonState
+        m_Mode: 3
+        m_Arguments:
+          m_ObjectArgument: {fileID: 0}
+          m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+          m_IntArgument: -1
+          m_FloatArgument: 0
+          m_StringArgument: 
+          m_BoolArgument: 0
+        m_CallState: 2
 --- !u!1 &2249695313038166002
 GameObject:
   m_ObjectHideFlags: 0
@@ -569,6 +741,71 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &2828175659000812383
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 657448356355205494}
+  - component: {fileID: 2361106031813543553}
+  m_Layer: 5
+  m_Name: right
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &657448356355205494
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2828175659000812383}
+  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_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 2932417901868884562}
+  - {fileID: 3283252846384014863}
+  m_Father: {fileID: 5939355824258556124}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 0.5}
+  m_AnchorMax: {x: 1, y: 0.5}
+  m_AnchoredPosition: {x: -80, y: 62}
+  m_SizeDelta: {x: 260, y: 124}
+  m_Pivot: {x: 1, y: 1}
+--- !u!114 &2361106031813543553
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2828175659000812383}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 3
+  m_Spacing: 15
+  m_ChildForceExpandWidth: 0
+  m_ChildForceExpandHeight: 1
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 1
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
 --- !u!1 &4320137467291838265
 GameObject:
   m_ObjectHideFlags: 0
@@ -1022,6 +1259,82 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &5050513262728818178
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6418353418276787885}
+  - component: {fileID: 7898192958028422825}
+  - component: {fileID: 5983848933284850196}
+  m_Layer: 5
+  m_Name: icon
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &6418353418276787885
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5050513262728818178}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1.3, y: 1.3, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 5939355824258556124}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 380, y: -62}
+  m_SizeDelta: {x: 584.61, y: 97}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7898192958028422825
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5050513262728818178}
+  m_CullTransparentMesh: 1
+--- !u!114 &5983848933284850196
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5050513262728818178}
+  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: 48b6f236b65242f468de04b7c8015bbc, 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!1 &5254273131557291429
 GameObject:
   m_ObjectHideFlags: 0
@@ -1486,6 +1799,82 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!1 &6917656528016941980
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3283252846384014863}
+  - component: {fileID: 7169222847031012737}
+  - component: {fileID: 6265412466244747710}
+  m_Layer: 5
+  m_Name: arrow
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3283252846384014863
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6917656528016941980}
+  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_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 657448356355205494}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 28, y: 28}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7169222847031012737
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6917656528016941980}
+  m_CullTransparentMesh: 1
+--- !u!114 &6265412466244747710
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6917656528016941980}
+  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: e1731412c7e5c2f43901569ae6db93b8, type: 3}
+  m_Type: 0
+  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!1 &7221806186678265994
 GameObject:
   m_ObjectHideFlags: 0
@@ -1855,6 +2244,86 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: ARTEMIS
+--- !u!1 &7737876043265953152
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2932417901868884562}
+  - component: {fileID: 8490576949502502583}
+  - component: {fileID: 2155490054136631701}
+  m_Layer: 5
+  m_Name: title
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2932417901868884562
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7737876043265953152}
+  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_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 657448356355205494}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 234, y: 124}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8490576949502502583
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7737876043265953152}
+  m_CullTransparentMesh: 1
+--- !u!114 &2155490054136631701
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7737876043265953152}
+  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, b: 0, 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: 6b6cc7ab59ef00947950b61fdca2d042, type: 3}
+    m_FontSize: 32
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 3
+    m_MaxSize: 40
+    m_Alignment: 5
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: ARTEMIS Pro
 --- !u!1 &7858837361547964834
 GameObject:
   m_ObjectHideFlags: 0
@@ -2376,6 +2845,7 @@ Canvas:
   m_OverrideSorting: 0
   m_OverridePixelPerfect: 0
   m_SortingBucketNormalizedSize: 0
+  m_VertexColorAlwaysGammaSpace: 0
   m_AdditionalShaderChannelsFlag: 0
   m_SortingLayerID: 0
   m_SortingOrder: 1
@@ -2437,6 +2907,7 @@ MonoBehaviour:
   - {fileID: 1259905374672652858}
   - {fileID: 5411581553878029809}
   - {fileID: 2506768540548212993}
+  - {fileID: 3612813887139268570}
   arrowImages:
   - {fileID: 21300000, guid: e1731412c7e5c2f43901569ae6db93b8, type: 3}
   - {fileID: 21300000, guid: 323aff41d7c659e4aa259a60ef819a9c, type: 3}

+ 16 - 2
Assets/BowArrow/Scripts/Bluetooth/AimHandler.cs

@@ -10,9 +10,9 @@ public enum AimDeviceType {
     HOUYI2 = 1,
     ARTEMIS = 2,
     HOUYIPRO = 3,
-
     //枪械类
     Gun = 4,
+    ARTEMISPRO = 5,
 }
 
 
@@ -210,7 +210,21 @@ public class AimDeviceInfos
         return _isHOUYIPRO;
     }
     #endregion
+    #region 根据设备1p或者2p 获取ARTEMISPro的状态
+    public bool isARTEMISPro(BluetoothPlayer bluetoothPlayer)
+    {
+        bool _isARTEMISPro = false;
 
+        foreach (AimDeviceInfo p in ins.aimDeviceInfos.arry)
+        {
+            if ((int)bluetoothPlayer == p.id && p.type == (int)AimDeviceType.ARTEMISPRO)
+            {
+                _isARTEMISPro = true;
+            }
+        }
+        return _isARTEMISPro;
+    }
+    #endregion
 
 
     public void ReinitAxisHandler()
@@ -456,7 +470,7 @@ public class AimDeviceInfos
     public bool bRuning9Axis() {
         //连接的设备下,对应的 Archery 是运行9轴的代码处理位置信息判断
         //弓箭类型,但是不是HOUYI Pro 情况下。运行9轴代码
-        bool bRuning = GlobalData.MyDeviceMode == DeviceMode.Archery && !BluetoothAim.ins.isMainConnectToHOUYIPRO();
+        bool bRuning = GlobalData.MyDeviceMode == DeviceMode.Archery && !BluetoothAim.ins.isMainConnectToInfraredDevice();
         return bRuning;
     }
     #endregion

+ 37 - 0
Assets/BowArrow/Scripts/Bluetooth/BluetoothAim.cs

@@ -377,6 +377,16 @@ public class BluetoothAim : MonoBehaviour
                             return;
                         }
 
+                    }
+                    else if (AimHandler.ins.aimDeviceInfo.type == (int)AimDeviceType.ARTEMISPRO)
+                    {   //需要判断是否是ARTEMISPro弓箭
+                        if (targetDeviceName.Contains(device.DeviceName))
+                        {
+                            BLEConnectByName(device.DeviceName);
+                            Log("匹配ARTEMISPro设备 " + device.DeviceName);
+                            return;
+                        }
+
                     }
                     else if (AimHandler.ins.aimDeviceInfo.type == (int)AimDeviceType.Gun)
                     {
@@ -1203,6 +1213,33 @@ public class BluetoothAim : MonoBehaviour
         }
       
     
+    }
+    #endregion
+
+
+    #region 判断是否是1p设备连接的是红外信息,有多种红外设备
+    public bool isMainConnectToInfraredDevice()
+    {
+        bool _isInfraredDevice = false;
+
+        foreach (AimDeviceInfo p in AimHandler.ins.aimDeviceInfos.arry)
+        {
+            if ((int)BluetoothPlayer.FIRST_PLAYER == p.id  && (p.type == (int)AimDeviceType.ARTEMISPRO || p.type == (int)AimDeviceType.HOUYIPRO))
+            {
+                _isInfraredDevice = true;
+            }
+        }
+        if (_isInfraredDevice)
+        {
+            //如果是。判断是否连接
+            return status == BluetoothStatusEnum.ConnectSuccess;
+        }
+        else
+        {
+            return false;
+        }
+
+
     }
     #endregion
 

+ 2 - 1
Assets/BowArrow/Scripts/CommonConfig.cs

@@ -63,7 +63,7 @@ public class CommonConfig
     public static float arrowWeight = 75;
 
     public enum ServerType { LocalTest, Produce, Test };
-    private static ServerType serverType = ServerType.Test;
+    private static ServerType serverType = ServerType.Produce;
     //网关服务器访问地址
     public static string gateServerURL
     {
@@ -71,6 +71,7 @@ public class CommonConfig
         {
             if (serverType == ServerType.Produce)
             {
+                Debug.Log("****************** 正式服务器: "+ serverIndex + " ********************");
                 if (serverIndex == 0)
                     return "https://www.xmjssvr.com/SmartBowBusinessServer";//"http://118.195.187.121/SmartBowBusinessServer";等备案再使用域名
                 else if (serverIndex == 1)

+ 1 - 1
Assets/BowArrow/Scripts/Game/CrossHairOutBoundChecker.cs

@@ -18,7 +18,7 @@ public class CrossHairOutBoundChecker : MonoBehaviour
             TextAutoLanguage2.GetTextByKey("game_crosshair_outbound_3"),
         };
 
-        if (BluetoothAim.ins && (BluetoothAim.ins.isMainConnectToHOUYIPRO() || BluetoothAim.ins.isMainConnectToGun()))
+        if (BluetoothAim.ins && (BluetoothAim.ins.isMainConnectToInfraredDevice() || BluetoothAim.ins.isMainConnectToGun()))
         {
             //当使用HOUYI Pro和枪这种红外定位方案的连接时,需在游戏中,将“瞄准方向已超出视野范围,请将弓往左移动”这种提示语去掉
             gameObject.SetActive(false);

+ 1 - 1
Assets/BowArrow/Scripts/Game/GameAssistUI.cs

@@ -73,7 +73,7 @@ public class GameAssistUI : MonoBehaviour
         });
         Button btnIdentity = this.transform.Find("Button4").GetComponent<Button>();
         //手枪不显示视角归位,连接接红外也不显示视角归位
-        if (GlobalData.MyDeviceMode == DeviceMode.Gun || BluetoothAim.ins && BluetoothAim.ins.isMainConnectToHOUYIPRO())
+        if (GlobalData.MyDeviceMode == DeviceMode.Gun || BluetoothAim.ins && BluetoothAim.ins.isMainConnectToInfraredDevice())
         {
             btnIdentity.gameObject.SetActive(false);
 

+ 1 - 1
Assets/BowArrow/Scripts/View/Home/DeviceView.cs

@@ -81,7 +81,7 @@ public class DeviceView : JCUnityLib.ViewBase, MenuBackInterface
     void Update()
     {
         //刷新按钮显示状态2P
-        if (BluetoothAim.ins && BluetoothAim.ins.isMainConnectToHOUYIPRO())
+        if (BluetoothAim.ins && BluetoothAim.ins.isMainConnectToInfraredDevice())
         {
             if (deviceViewItems[1].gameObject.activeSelf)
             {

+ 11 - 0
Assets/BowArrow/Scripts/View/Home/DeviceView_ItemShow.cs

@@ -104,6 +104,11 @@ public class DeviceView_ItemShow : MonoBehaviour
                     //直接进入红外引导界面
                     AimHandler.ins.SetTempAimDeviceType(AimDeviceType.HOUYIPRO);
                     ViewManager2.ShowView(ViewManager2.Path_InfraredView);
+                } else if (AimHandler.ins.isARTEMISPro(bluetoothPlayer)) {
+
+                    //直接进入红外引导界面
+                    AimHandler.ins.SetTempAimDeviceType(AimDeviceType.ARTEMISPRO);
+                    ViewManager2.ShowView(ViewManager2.Path_InfraredView);
                 }
                 else
                 {
@@ -417,6 +422,12 @@ public class DeviceView_ItemShow : MonoBehaviour
                 titleText.text = "Pistol";
                 bowBg.sprite = gunBgs[0];
                 break;
+
+            case AimDeviceType.ARTEMISPRO:
+                titleText.text = "ARTEMIS Pro";
+                bowBg.sprite = bowBgs[1];
+                break;
+
             default:
                 bShow = false;
                 // Debug.LogWarning("onShowDeviceInfo 没有对应设备 AimDeviceType:" + ((AimDeviceType)aimDeviceInfo.type).ToString());

+ 2 - 2
Assets/BowArrow/Scripts/View/Home/HomeView_ChallengeOption.cs

@@ -225,8 +225,8 @@ public class HomeView_ChallengeOption : MonoBehaviour
                     //连接弓箭
                     if (_startGameType == 1)
                     {
-                        //当连接HOUYI Pro时,双弓射箭也需要屏蔽掉
-                        if (BluetoothAim.ins.isMainConnectToHOUYIPRO())
+                        //当连接HOUYI Pro和其他红外设备,双弓射箭也需要屏蔽掉
+                        if (BluetoothAim.ins.isMainConnectToInfraredDevice())
                         {
                             ModeSelectView.ins.isShowButton = false;
                         }

+ 8 - 0
Assets/BowArrow/Scripts/View/Home/SmartArcheryView.cs

@@ -60,6 +60,10 @@ public class SmartArcheryView  : JCUnityLib.ViewBase
                 else if (index == 3) {
                     AimHandler.ins.SetTempAimDeviceType(AimDeviceType.HOUYIPRO);
                 }
+                else if (index == 4)
+                {
+                    AimHandler.ins.SetTempAimDeviceType(AimDeviceType.ARTEMISPRO);
+                }
                 //_white = new Color32(255, 255, 255, 255);
                 _buttonTitle = new Color32(16, 194, 198, 255);
                 _button.transform.Find("right/arrow").GetComponent<Image>().sprite = arrowImages[1];
@@ -123,6 +127,10 @@ public class SmartArcheryView  : JCUnityLib.ViewBase
 
                     AimHandler.ins.SetTempAimDeviceType(AimDeviceType.HOUYIPRO);
                 }
+                else if (index == 4)
+                {
+                    AimHandler.ins.SetTempAimDeviceType(AimDeviceType.ARTEMISPRO);
+                }
                 //_white = new Color32(255, 255, 255, 255);
                 _buttonTitle = new Color32(16, 194, 198, 255);
                 _button.transform.Find("right/arrow").GetComponent<Image>().sprite = arrowImages[1];

BIN
Assets/BowArrow/Textures/Device/bow-artemis-pro.png


+ 123 - 0
Assets/BowArrow/Textures/Device/bow-artemis-pro.png.meta

@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 48b6f236b65242f468de04b7c8015bbc
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 5, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 1537655665
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 1
Assets/DuckHunter/Scripts/GameUI.cs

@@ -33,7 +33,7 @@ namespace DuckHunter
                 UnityEngine.SceneManagement.SceneManager.LoadScene("DuckHunter");
             });
 
-            if (GlobalData.MyDeviceMode == DeviceMode.Gun || BluetoothAim.ins && BluetoothAim.ins.isMainConnectToHOUYIPRO())
+            if (GlobalData.MyDeviceMode == DeviceMode.Gun || BluetoothAim.ins && BluetoothAim.ins.isMainConnectToInfraredDevice())
             {
                 btnAim.gameObject.SetActive(false);
 

+ 1 - 1
Assets/FruitMaster/Scripts/OverallLogics.cs

@@ -39,7 +39,7 @@ public class OverallLogics : MonoBehaviour
     void Start()
     {
         // ShutdownBtn.onClick.AddListener(Shutdown);
-        if (GlobalData.MyDeviceMode == DeviceMode.Gun || BluetoothAim.ins && BluetoothAim.ins.isMainConnectToHOUYIPRO())
+        if (GlobalData.MyDeviceMode == DeviceMode.Gun || BluetoothAim.ins && BluetoothAim.ins.isMainConnectToInfraredDevice())
         {
             ResetAimBtn.gameObject.SetActive(false);
 

+ 1 - 1
Assets/InfraredProject/WebCamera/Script/PcWebCamera.cs

@@ -37,7 +37,7 @@ public class PcWebCamera : MonoBehaviour
         Debug.Log("Scene Loaded: " + scene.name);
         Debug.Log("Load Scene Mode: " + mode);
         // 在场景加载时执行的代码
-        if (BluetoothAim.ins && (BluetoothAim.ins.isMainConnectToHOUYIPRO() || BluetoothAim.ins.isMainConnectToGun()))
+        if (BluetoothAim.ins && (BluetoothAim.ins.isMainConnectToInfraredDevice() || BluetoothAim.ins.isMainConnectToGun()))
         {
             StartCoroutine(RestartWebCam());
         }

+ 6 - 2
Assets/SmartBow/Scripts/Views/ConnectGuidanceView.cs

@@ -75,7 +75,9 @@ public class ConnectGuidanceView : MonoBehaviour
             {
                 AimHandler.ins.OnSaveAimDeviceInfos();
                 BluetoothAim.ins.SetMainConnectDeviceType();
-                if (AimHandler.ins.aimDeviceInfo.type != (int)AimDeviceType.HOUYIPRO && AimHandler.ins.aimDeviceInfo.type != (int)AimDeviceType.Gun)
+                if (AimHandler.ins.aimDeviceInfo.type != (int)AimDeviceType.HOUYIPRO 
+                    && AimHandler.ins.aimDeviceInfo.type != (int)AimDeviceType.Gun
+                    && AimHandler.ins.aimDeviceInfo.type != (int)AimDeviceType.ARTEMISPRO)
                 {
                     //如果不是红外设备,才进入校准?
                     ViewManager2.HideView(ViewManager2.Path_ConnectGuidanceView);
@@ -102,7 +104,9 @@ public class ConnectGuidanceView : MonoBehaviour
             {
                 AimHandler.ins.OnSaveAimDeviceInfos();
                 BluetoothAim.ins.SetMainConnectDeviceType();
-                if (AimHandler.ins.aimDeviceInfo.type != (int)AimDeviceType.HOUYIPRO && AimHandler.ins.aimDeviceInfo.type != (int)AimDeviceType.Gun)
+                if (AimHandler.ins.aimDeviceInfo.type != (int)AimDeviceType.HOUYIPRO 
+                    && AimHandler.ins.aimDeviceInfo.type != (int)AimDeviceType.Gun
+                    && AimHandler.ins.aimDeviceInfo.type != (int)AimDeviceType.ARTEMISPRO)
                 {
                     //如果不是红外设备,才进入校准?
                     ViewManager2.HideView(ViewManager2.Path_ConnectGuidanceView);

+ 1 - 1
Assets/SmartBow/Scripts/Views/InfraredViewParts/InfraredScreenPositioningView.cs

@@ -648,7 +648,7 @@ public class InfraredScreenPositioningView : JCUnityLib.ViewBase
             Debug.Log("-----进入射箭场景!");
             NewUserGuiderManager newUserGuiderManager = FindObjectOfType<NewUserGuiderManager>();
             newUserGuiderManager.curConfigKey = "开始-红外调整";
-            newUserGuiderManager.isNewModule = AimHandler.ins.aimDeviceInfo.type == (int)AimDeviceType.HOUYIPRO || AimHandler.ins.aimDeviceInfo.type == (int)AimDeviceType.Gun;
+            newUserGuiderManager.isNewModule = AimHandler.ins.aimDeviceInfo.type == (int)AimDeviceType.HOUYIPRO || AimHandler.ins.aimDeviceInfo.type == (int)AimDeviceType.Gun || AimHandler.ins.aimDeviceInfo.type == (int)AimDeviceType.ARTEMISPRO;
             //进入射箭场景
             GlobalData.pkMatchType = PKMatchType.None;
             GameMgr.gameType = 1;

+ 9 - 0
Assets/SmartBow/SmartBowSDK/BleWinHelper.cs

@@ -159,6 +159,15 @@ namespace SmartBowSDK
                                 StopDeviceScan();
                             }
 
+                        }
+                        else if (AimHandler.ins.aimDeviceInfo.type == (int)AimDeviceType.ARTEMISPRO)
+                        {   //需要判断是否是ARTEMISPRO弓箭
+                            if (targetDeviceName.Contains(deviceList[res.id]["name"]) && deviceList[res.id]["isConnectable"] == "True")
+                            {
+                                selectedDeviceId = res.id;
+                                StopDeviceScan();
+                            }
+
                         }
                         else if (AimHandler.ins.aimDeviceInfo.type == (int)AimDeviceType.Gun) 
                         {

+ 1 - 1
Assets/WildAttack/Scripts/UI/MainPanel.cs

@@ -108,7 +108,7 @@ namespace WildAttack
             //_btnCalibrateGyr.onClick.AddListener(OnClick_CalibrateGyr);
             //_btnCalibrateMag.onClick.AddListener(OnClick_CalibrateMag);
 
-            if (BluetoothAim.ins && BluetoothAim.ins.isMainConnectToHOUYIPRO())
+            if (BluetoothAim.ins && BluetoothAim.ins.isMainConnectToInfraredDevice())
             {
                 _btnResetAim.gameObject.SetActive(false);
             }