Эх сурвалжийг харах

2.1.2,升级微信sdk到2.0.4,添加适配ipados ui

slambb 7 сар өмнө
parent
commit
59b75bd153
35 өөрчлөгдсөн 991 нэмэгдсэн , 91 устгасан
  1. 1 1
      Assets/AddressableAssetsData/link.xml.meta
  2. 40 8
      Assets/BowArrow/DoubleInfraredScene/InfraredGameDouble.unity
  3. 50 3
      Assets/BowArrow/Resources/Prefabs/Views/AgreementView.prefab
  4. 17 1
      Assets/BowArrow/Scenes/Game.unity
  5. 2 2
      Assets/BowArrow/Scenes/GameChallengeScene/GameChallenge.unity
  6. 10 10
      Assets/BowArrow/Scenes/Login.unity
  7. 17 0
      Assets/BowArrow/Scripts/View/Home/HomeView.cs
  8. 82 0
      Assets/BowArrow/Shader/OutlightForImage.mat
  9. 8 0
      Assets/BowArrow/Shader/OutlightForImage.mat.meta
  10. 74 0
      Assets/BowArrow/Shader/OutlightForImage.shader
  11. 10 0
      Assets/BowArrow/Shader/OutlightForImage.shader.meta
  12. 20 3
      Assets/FruitMaster/Scenes/FruitMaster.unity
  13. 42 19
      Assets/FruitMaster/Scripts/OverallLogics.cs
  14. 13 13
      Assets/Game_Hyperspace/Script/UIManager.cs
  15. 10 2
      Assets/Plugins/iOS/Editor/XCodePostProcessBuild.cs
  16. 36 8
      Assets/Plugins/iOS/MyAppController.mm
  17. 4 0
      Assets/Plugins/iOS/WeChatSDK/README.txt
  18. 10 0
      Assets/Plugins/iOS/WeChatSDK/WXApi.h
  19. 48 1
      Assets/Plugins/iOS/WeChatSDK/WXApi.h.meta
  20. 14 2
      Assets/Plugins/iOS/WeChatSDK/WXApiObject.h
  21. 48 1
      Assets/Plugins/iOS/WeChatSDK/WXApiObject.h.meta
  22. 48 1
      Assets/Plugins/iOS/WeChatSDK/WechatAuthSDK.h.meta
  23. BIN
      Assets/Plugins/iOS/WeChatSDK/libWeChatSDK.a
  24. 1 1
      Assets/Plugins/iOS/WeChatSDK/libWeChatSDK.a.meta
  25. 40 12
      Assets/SmartBow/Resources/SmartBow/Prefabs/Views/Home/InfraredView.prefab
  26. 76 0
      Assets/SmartBow/Scripts/AdaptUI/CameraFOVAdapter.cs
  27. 11 0
      Assets/SmartBow/Scripts/AdaptUI/CameraFOVAdapter.cs.meta
  28. 60 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/CameraFOVAdapterEditor.cs
  29. 11 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/CameraFOVAdapterEditor.cs.meta
  30. 55 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/UIFontSizeAdapterEditor.cs
  31. 11 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/UIFontSizeAdapterEditor.cs.meta
  32. 92 0
      Assets/SmartBow/Scripts/AdaptUI/UIFontSizeAdapter.cs
  33. 11 0
      Assets/SmartBow/Scripts/AdaptUI/UIFontSizeAdapter.cs.meta
  34. 17 1
      Assets/WildAttack/Scenes/WildAttack.unity
  35. 2 2
      ProjectSettings/ProjectSettings.asset

+ 1 - 1
Assets/AddressableAssetsData/link.xml.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 6b01c63b2763d9e47b6ca33c0dc8db84
+guid: 88e922b34bb703b40bfb24be07b003c5
 TextScriptImporter:
   externalObjects: {}
   userData: 

+ 40 - 8
Assets/BowArrow/DoubleInfraredScene/InfraredGameDouble.unity

@@ -1805,7 +1805,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 29.995117, y: -16.5}
+  m_AnchoredPosition: {x: 29.646412, y: -16.5}
   m_SizeDelta: {x: 39.292824, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &107716992
@@ -9224,6 +9224,7 @@ GameObject:
   - component: {fileID: 492736541}
   - component: {fileID: 492736543}
   - component: {fileID: 492736544}
+  - component: {fileID: 492736545}
   m_Layer: 0
   m_Name: Second Camera
   m_TagString: SecondCamera
@@ -9273,7 +9274,7 @@ Camera:
     height: 1
   near clip plane: 0.01
   far clip plane: 1500
-  field of view: 50
+  field of view: 70
   orthographic: 0
   orthographic size: 5
   m_Depth: -1
@@ -9304,6 +9305,21 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   playerType: 0
+--- !u!114 &492736545
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 492736540}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0309544a34be5d743abd3bcfe8989073, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultFOV: 50
+  iPhoneFOV: 50
+  iPadFOV: 70
 --- !u!1 &492791287
 GameObject:
   m_ObjectHideFlags: 0
@@ -10823,7 +10839,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 29.995117, y: -16.5}
+  m_AnchoredPosition: {x: 29.646412, y: -16.5}
   m_SizeDelta: {x: 39.292824, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &585453275
@@ -13491,7 +13507,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 29.995117, y: -16.5}
+  m_AnchoredPosition: {x: 29.646412, y: -16.5}
   m_SizeDelta: {x: 39.292824, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &745608731
@@ -14286,7 +14302,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 29.995117, y: -16.5}
+  m_AnchoredPosition: {x: 29.646412, y: -16.5}
   m_SizeDelta: {x: 39.292824, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &781839819
@@ -24223,7 +24239,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 29.995117, y: -16.5}
+  m_AnchoredPosition: {x: 29.646412, y: -16.5}
   m_SizeDelta: {x: 39.292824, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1417120762
@@ -25205,6 +25221,7 @@ GameObject:
   - component: {fileID: 1477034904}
   - component: {fileID: 1477034903}
   - component: {fileID: 1477034905}
+  - component: {fileID: 1477034906}
   m_Layer: 0
   m_Name: Main Camera
   m_TagString: MainCamera
@@ -25262,7 +25279,7 @@ Camera:
     height: 1
   near clip plane: 0.01
   far clip plane: 1500
-  field of view: 50
+  field of view: 70
   orthographic: 0
   orthographic size: 5
   m_Depth: -1
@@ -25293,6 +25310,21 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   playerType: 0
+--- !u!114 &1477034906
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1477034900}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0309544a34be5d743abd3bcfe8989073, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultFOV: 50
+  iPhoneFOV: 50
+  iPadFOV: 70
 --- !u!1 &1483561035
 GameObject:
   m_ObjectHideFlags: 0
@@ -25330,7 +25362,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 29.995117, y: -16.5}
+  m_AnchoredPosition: {x: 29.646412, y: -16.5}
   m_SizeDelta: {x: 39.292824, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1483561038

+ 50 - 3
Assets/BowArrow/Resources/Prefabs/Views/AgreementView.prefab

@@ -28,6 +28,7 @@ RectTransform:
   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: 4967192984106040738}
   m_RootOrder: 0
@@ -105,6 +106,7 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 0, y: 0, z: 0}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 4967192983746679741}
   - {fileID: 4967192984347203903}
@@ -136,6 +138,7 @@ Canvas:
   m_OverrideSorting: 0
   m_OverridePixelPerfect: 0
   m_SortingBucketNormalizedSize: 0
+  m_VertexColorAlwaysGammaSpace: 0
   m_AdditionalShaderChannelsFlag: 0
   m_SortingLayerID: 0
   m_SortingOrder: 5
@@ -220,6 +223,7 @@ RectTransform:
   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: 4967192984106040738}
   m_RootOrder: 1
@@ -296,6 +300,7 @@ RectTransform:
   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: 4967192984106040738}
   m_RootOrder: 3
@@ -427,6 +432,7 @@ RectTransform:
   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: 4967192985016981483}
   m_Father: {fileID: 4967192984106040738}
@@ -434,7 +440,7 @@ RectTransform:
   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: -30.00003}
+  m_AnchoredPosition: {x: 0, y: -30}
   m_SizeDelta: {x: 0, y: -60}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &4967192984901273811
@@ -504,6 +510,7 @@ RectTransform:
   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: 4967192985044347166}
   m_Father: {fileID: 4967192984901273812}
@@ -577,6 +584,7 @@ GameObject:
   - component: {fileID: 4967192985044347164}
   - component: {fileID: 4967192985044347167}
   - component: {fileID: 4967192985044347165}
+  - component: {fileID: 1271932102378605775}
   m_Layer: 5
   m_Name: Content
   m_TagString: Untagged
@@ -594,6 +602,7 @@ RectTransform:
   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: 4967192985016981483}
   m_RootOrder: 0
@@ -633,7 +642,7 @@ MonoBehaviour:
       m_Calls: []
   m_FontData:
     m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
-    m_FontSize: 28
+    m_FontSize: 20
     m_FontStyle: 0
     m_BestFit: 0
     m_MinSize: 2
@@ -659,6 +668,24 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 0
   m_VerticalFit: 2
+--- !u!114 &1271932102378605775
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4967192985044347153}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 48688f7aeeff0ac44bf55eaaa132f8c6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultFontSize:
+    fontSize: 28
+  iPhoneFontSize:
+    fontSize: 28
+  iPadFontSize:
+    fontSize: 20
 --- !u!1 &4967192985368401235
 GameObject:
   m_ObjectHideFlags: 0
@@ -670,6 +697,7 @@ GameObject:
   - component: {fileID: 4967192985368401232}
   - component: {fileID: 4967192985368401246}
   - component: {fileID: 4967192985368401233}
+  - component: {fileID: 3610674811013156626}
   m_Layer: 5
   m_Name: Title
   m_TagString: Untagged
@@ -687,6 +715,7 @@ RectTransform:
   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: 4967192984106040738}
   m_RootOrder: 2
@@ -726,7 +755,7 @@ MonoBehaviour:
       m_Calls: []
   m_FontData:
     m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
-    m_FontSize: 36
+    m_FontSize: 30
     m_FontStyle: 0
     m_BestFit: 0
     m_MinSize: 3
@@ -738,3 +767,21 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: "\u6807\u9898"
+--- !u!114 &3610674811013156626
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4967192985368401235}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 48688f7aeeff0ac44bf55eaaa132f8c6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultFontSize:
+    fontSize: 36
+  iPhoneFontSize:
+    fontSize: 36
+  iPadFontSize:
+    fontSize: 30

+ 17 - 1
Assets/BowArrow/Scenes/Game.unity

@@ -8403,6 +8403,7 @@ GameObject:
   - component: {fileID: 748113865}
   - component: {fileID: 748113868}
   - component: {fileID: 748113866}
+  - component: {fileID: 748113870}
   m_Layer: 0
   m_Name: Main Camera
   m_TagString: MainCamera
@@ -8435,7 +8436,7 @@ Camera:
     height: 1
   near clip plane: 0.01
   far clip plane: 1000
-  field of view: 50
+  field of view: 55
   orthographic: 0
   orthographic size: 5
   m_Depth: -1
@@ -8490,6 +8491,21 @@ Transform:
   m_Father: {fileID: 319617855}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 90, y: 0, z: 90}
+--- !u!114 &748113870
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 748113864}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0309544a34be5d743abd3bcfe8989073, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultFOV: 50
+  iPhoneFOV: 50
+  iPadFOV: 55
 --- !u!1 &758470290
 GameObject:
   m_ObjectHideFlags: 0

+ 2 - 2
Assets/BowArrow/Scenes/GameChallengeScene/GameChallenge.unity

@@ -22725,7 +22725,7 @@ Camera:
     height: 1
   near clip plane: 0.01
   far clip plane: 1000
-  field of view: 25
+  field of view: 40
   orthographic: 0
   orthographic size: 5
   m_Depth: -1
@@ -34780,7 +34780,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 1, y: 0}
   m_AnchorMax: {x: 1, y: 0}
-  m_AnchoredPosition: {x: -40, y: 21.900024}
+  m_AnchoredPosition: {x: -40, y: 21.899902}
   m_SizeDelta: {x: 120, y: 120}
   m_Pivot: {x: 1, y: 0}
 --- !u!114 &1495053854

+ 10 - 10
Assets/BowArrow/Scenes/Login.unity

@@ -8903,7 +8903,7 @@ RectTransform:
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
   m_AnchoredPosition: {x: 589.8229, y: -51.5}
-  m_SizeDelta: {x: 0, y: 0}
+  m_SizeDelta: {x: 111.21523, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &431282297
 MonoBehaviour:
@@ -19659,7 +19659,7 @@ RectTransform:
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
   m_AnchoredPosition: {x: 510.31335, y: -51.5}
-  m_SizeDelta: {x: 0, y: 0}
+  m_SizeDelta: {x: 27.803808, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1089492277
 MonoBehaviour:
@@ -20387,7 +20387,7 @@ RectTransform:
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
   m_AnchoredPosition: {x: 430.8038, y: -51.5}
-  m_SizeDelta: {x: 0, y: 0}
+  m_SizeDelta: {x: 111.21523, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1134649143
 MonoBehaviour:
@@ -24578,9 +24578,9 @@ RectTransform:
   m_Father: {fileID: 2109231682}
   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_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 160, y: -17.825}
   m_SizeDelta: {x: 160, y: 27}
   m_Pivot: {x: 1, y: 0.5}
 --- !u!114 &1417191191
@@ -37201,9 +37201,9 @@ RectTransform:
   m_Father: {fileID: 2109231682}
   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_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 0, y: -90.325}
   m_SizeDelta: {x: 760, y: 100.7}
   m_Pivot: {x: 0, y: 0.5}
 --- !u!114 &2080044274
@@ -37754,7 +37754,7 @@ RectTransform:
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
   m_AnchoredPosition: {x: 267.88287, y: -51.5}
-  m_SizeDelta: {x: 0, y: 0}
+  m_SizeDelta: {x: 194.62665, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &2095661144
 MonoBehaviour:

+ 17 - 0
Assets/BowArrow/Scripts/View/Home/HomeView.cs

@@ -6,6 +6,7 @@ using UnityEngine.SceneManagement;
 using System;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
+using AdaptUI;
 /* 主界面 */
 public class HomeView : JCUnityLib.ViewBase
 {
@@ -46,6 +47,22 @@ public class HomeView : JCUnityLib.ViewBase
 
         
         if (topBarView && challengeOption) topBarView.onChangeTypeEvent.AddListener(challengeOption.refreshList);
+
+        //设置相机视野角度,根据设备类型
+        // 25 iPhone 40 iPad
+        var deviceType = DeviceTypeHelper.DetectDeviceType();
+        switch (deviceType)
+        {
+            case DeviceTypeHelper.DeviceType.iPhone:
+                UserSettings.ins.bowRotateConvert.fieldOfView = 25;
+                break;
+            case DeviceTypeHelper.DeviceType.iPad:
+                UserSettings.ins.bowRotateConvert.fieldOfView = 40;
+                break;
+            default:
+                UserSettings.ins.bowRotateConvert.fieldOfView = 25;
+                break;
+        }
     }
 
     IEnumerator Start()

+ 82 - 0
Assets/BowArrow/Shader/OutlightForImage.mat

@@ -0,0 +1,82 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 8
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: OutlightForImage
+  m_Shader: {fileID: 4800000, guid: 2cda2198317587242987d9ecac9e62ed, type: 3}
+  m_ValidKeywords: []
+  m_InvalidKeywords: []
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BumpScale: 1
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _Size: 15
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _LightColor: {r: 1, g: 0.76862746, b: 0, a: 1}
+  m_BuildTextureStacks: []

+ 8 - 0
Assets/BowArrow/Shader/OutlightForImage.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c004e3d0d631ab340a1f1da408915187
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 74 - 0
Assets/BowArrow/Shader/OutlightForImage.shader

@@ -0,0 +1,74 @@
+Shader "UI/OutlightForImage"
+{
+    Properties
+    {
+        _MainTex("Texture", 2D) = "white" {}
+        _LightColor("Light Color", Color) = (1,1,1,1)
+        _Size("Glow Size", Float) = 1.0
+    }
+
+    SubShader
+    {
+        Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
+        LOD 100
+
+        // UI-friendly settings
+        Cull Off
+        ZWrite Off
+        ZTest Always
+        Blend SrcAlpha OneMinusSrcAlpha
+
+        Pass
+        {
+            CGPROGRAM
+            #include "UnityCG.cginc"
+            #pragma vertex vert
+            #pragma fragment frag
+            #pragma target 2.0
+
+            struct appdata_t {
+                float4 vertex : POSITION;
+                float2 texcoord : TEXCOORD0;
+            };
+
+            struct v2f {
+                float4 pos : SV_POSITION;
+                float2 uv : TEXCOORD0;
+            };
+
+            sampler2D _MainTex;
+            float4 _MainTex_TexelSize;
+            float4 _LightColor;
+            float _Size;
+
+            v2f vert(appdata_t v)
+            {
+                v2f o;
+                o.pos = UnityObjectToClipPos(v.vertex);
+                o.uv = v.texcoord;
+                return o;
+            }
+
+            fixed4 frag(v2f i) : SV_Target
+            {
+                fixed4 color = tex2D(_MainTex, i.uv);
+                fixed4 glow = _LightColor;
+                float alphaSum = color.a;
+
+                for (float j = 1.0; j <= _Size; j += 1.0)
+                {
+                    alphaSum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * float2(j, 0)).a;
+                    alphaSum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * float2(-j, 0)).a;
+                    alphaSum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * float2(0, j)).a;
+                    alphaSum += tex2D(_MainTex, i.uv + _MainTex_TexelSize.xy * float2(0, -j)).a;
+                }
+
+                glow.a = alphaSum / (4.0 * _Size + 1.0);
+
+                // 如果原图有像素就显示原图,否则显示 glow
+                return step(0.1, color.a) * color + step(0.1, 1.0 - color.a) * glow;
+            }
+            ENDCG
+        }
+    }
+}

+ 10 - 0
Assets/BowArrow/Shader/OutlightForImage.shader.meta

@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 2cda2198317587242987d9ecac9e62ed
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  preprocessorOverride: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 20 - 3
Assets/FruitMaster/Scenes/FruitMaster.unity

@@ -7384,6 +7384,7 @@ MonoBehaviour:
   CrossHairBtn: {fileID: 1531717409}
   CalibrationOffsetBtn: {fileID: 665234534}
   outlight: {fileID: 2100000, guid: 502f08d2109aaeb4d92b1b552bfed15c, type: 2}
+  myOutlightMaterial: {fileID: 2100000, guid: c004e3d0d631ab340a1f1da408915187, type: 2}
 --- !u!114 &416911652
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -7690,6 +7691,7 @@ GameObject:
   - component: {fileID: 429897967}
   - component: {fileID: 429897970}
   - component: {fileID: 429897971}
+  - component: {fileID: 429897972}
   m_Layer: 0
   m_Name: Camera
   m_TagString: MainCamera
@@ -7730,7 +7732,7 @@ Camera:
     height: 1
   near clip plane: 0.3
   far clip plane: 1000
-  field of view: 60
+  field of view: 85
   orthographic: 0
   orthographic size: 5
   m_Depth: 0
@@ -7797,6 +7799,21 @@ MonoBehaviour:
   Frost: {fileID: 2800000, guid: 210743b88c99bcf45b28c3a4a4a3e178, type: 3}
   FrostNormals: {fileID: 2800000, guid: 065247d136abaa042a330ab6a7b030fc, type: 3}
   Shader: {fileID: 4800000, guid: db8aebe950ae3794aae5ed890f38549b, type: 3}
+--- !u!114 &429897972
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 429897966}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0309544a34be5d743abd3bcfe8989073, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultFOV: 60
+  iPhoneFOV: 60
+  iPadFOV: 85
 --- !u!1001 &433412598
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -12660,7 +12677,7 @@ MonoBehaviour:
     m_SelectOnDown: {fileID: 0}
     m_SelectOnLeft: {fileID: 0}
     m_SelectOnRight: {fileID: 0}
-  m_Transition: 1
+  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}
@@ -26408,7 +26425,7 @@ MonoBehaviour:
     m_SelectOnDown: {fileID: 0}
     m_SelectOnLeft: {fileID: 0}
     m_SelectOnRight: {fileID: 0}
-  m_Transition: 1
+  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}

+ 42 - 19
Assets/FruitMaster/Scripts/OverallLogics.cs

@@ -20,6 +20,8 @@ public class OverallLogics : MonoBehaviour
 
     [SerializeField] Material outlight;
 
+    [SerializeField] Material myOutlightMaterial;
+
     private bool bPlayingGameOverAnim;
     private float TimeGameOverAnimPlayed = 0f;
     private readonly float[] StainEmergeTimes = new float[] { 0.2f, 0.5f, 1f };
@@ -51,7 +53,17 @@ public class OverallLogics : MonoBehaviour
                 bool onInitOpen = InfraredDemo._ins ? InfraredDemo._ins.bInitCrosshairShow() : true;
                 Debug.Log("onInitOpen:" + onInitOpen);
                 Image crossHairImage = CrossHairBtn.transform.Find("Image").GetComponent<Image>();
-                crossHairImage.material = onInitOpen ? outlight : null;
+                //crossHairImage.material = onInitOpen ? outlight : null;
+                if (onInitOpen)
+                {
+                    crossHairImage.material = Instantiate(myOutlightMaterial); // 防止共享材质修改
+                    crossHairImage.material.SetTexture("_MainTex", crossHairImage.mainTexture); // 确保传入
+                }
+                else
+                {
+                    crossHairImage.material = new Material(Shader.Find("UI/Default"));
+                }
+
                 //StartGame 控制 AimingCross_img
 
                 CrossHairBtn.onClick.AddListener(delegate ()
@@ -63,11 +75,13 @@ public class OverallLogics : MonoBehaviour
 
                     if (onlyShow)
                     {
-                        crossHairImage.material = outlight;
+                        //crossHairImage.material = outlight;
+                        crossHairImage.material = Instantiate(myOutlightMaterial); // 防止共享材质修改
+                        crossHairImage.material.SetTexture("_MainTex", crossHairImage.mainTexture); // 确保传入
                     }
                     else
                     {
-                        crossHairImage.material = null;
+                        crossHairImage.material = new Material(Shader.Find("UI/Default"));
                     }
                 });
 
@@ -85,10 +99,11 @@ public class OverallLogics : MonoBehaviour
                 ResetAimBtn.gameObject.AddComponent<LongPressMonitor>().onLongPress += ResetAimLongPress;
             }
         }
-        else {
+        else
+        {
             ResetAimBtn.gameObject.SetActive(false);
         }
-       
+
         //GetComponent<SmartBowManager>().OnConnectionLost += OnSmartBowConnectionLost;
         _startGameBtn.onClick.AddListener(StartGame);
         GetComponent<GamingManager>().OnGameEnd += OnGameEnd;
@@ -118,32 +133,40 @@ public class OverallLogics : MonoBehaviour
     /// <summary>
     /// 根据GetOnlyShow 设置 outlight
     /// </summary>
-    public void SetCrosshairOutLight() {
+    public void SetCrosshairOutLight()
+    {
 
         //关闭9轴按钮
         ResetAimBtn.gameObject.SetActive(false);
 
-        if (!CommonConfig.StandaloneModeOrPlatformB) 
+        if (!CommonConfig.StandaloneModeOrPlatformB)
         {
-            //显示准心控制
-            CrossHairBtn.gameObject.SetActive(true);
 
             CalibrationOffsetBtn.gameObject.SetActive(true);
 
-            Image crossHairImage = CrossHairBtn.transform.Find("Image").GetComponent<Image>();
+            if (GlobalData.MyDeviceMode == DeviceMode.Gun || BluetoothAim.ins && BluetoothAim.ins.isMainConnectToInfraredDevice())
+            {
+                //显示准心控制
+                CrossHairBtn.gameObject.SetActive(true);
 
-            bool onlyShow = JCFruitMaster.ins.GetOnlyShow();
 
-            if (onlyShow)
-            {
-                crossHairImage.material = outlight;
-            }
-            else
-            {
-                crossHairImage.material = null;
+                Image crossHairImage = CrossHairBtn.transform.Find("Image").GetComponent<Image>();
+
+                bool onlyShow = JCFruitMaster.ins.GetOnlyShow();
+
+                if (onlyShow)
+                {
+                    //crossHairImage.material = outlight;
+                    crossHairImage.material = Instantiate(myOutlightMaterial); // 防止共享材质修改
+                    crossHairImage.material.SetTexture("_MainTex", crossHairImage.mainTexture); // 确保传入
+                }
+                else
+                {
+                    crossHairImage.material = new Material(Shader.Find("UI/Default"));
+                }
             }
         }
-  
+
     }
 
     // Update is called once per frame

+ 13 - 13
Assets/Game_Hyperspace/Script/UIManager.cs

@@ -10,7 +10,7 @@ namespace HyperspaceGame
     {
         public static UIManager _ins;
         /// <summary>
-        /// 记录一个总分
+        /// 锟斤拷录一锟斤拷锟杰凤拷
         /// </summary>
         public static int mHyperspaceScore { get; set; } = 0;
 
@@ -20,7 +20,7 @@ namespace HyperspaceGame
         [SerializeField] Button _btnCrosshair;
         [SerializeField] Button _btnCalibrationOffset;
         [SerializeField] Material outlight;
-        //准心部分
+        //准锟侥诧拷锟斤拷
         private bool open = false;
         private bool visiable = false;
         private bool onlyShow = true;
@@ -31,13 +31,13 @@ namespace HyperspaceGame
         {
             if (_ins != null && _ins != this)
             {
-                //Destroy(this.gameObject); // 如果已经存在实例,则销毁当前对象
+                //Destroy(this.gameObject); // 锟斤拷锟斤拷丫锟斤拷锟斤拷锟绞碉拷锟斤拷锟斤拷锟斤拷锟斤拷俚锟角帮拷锟斤拷锟�
                 return;
             }
             _ins = this;
-            //DontDestroyOnLoad(this.gameObject); // 保证对象在场景切换时不被销毁
+            //DontDestroyOnLoad(this.gameObject); // 锟斤拷证锟斤拷锟斤拷锟节筹拷锟斤拷锟叫伙拷时锟斤拷锟斤拷锟斤拷锟斤拷
 
-            //生成时候初始化一下状态
+            //锟斤拷锟斤拷时锟斤拷锟绞硷拷锟揭伙拷锟阶刺�
             if (ShootCheck.ins) ShootCheck.ins.bluetoothDeviceStatus = SmartBowSDK.BluetoothDeviceStatus.MagazineLoading;
         }
 
@@ -45,26 +45,26 @@ namespace HyperspaceGame
         {
             if (_ins == this)
             {
-                _ins = null; // 在销毁时释放单例
+                _ins = null; // 锟斤拷锟斤拷锟斤拷时锟酵放碉拷锟斤拷
             }
             GlobalEventCenter.ins.onSimulateMouseAwakeChanged -= UpdateHideShow;
         }
         // Start is called before the first frame update
         void Start()
         {
-            //关闭原来准心
+            //锟截憋拷原锟斤拷准锟斤拷
             SimulateMouseController.ins?.RemoveOpenLocker("NotGame");
 
             image = GeneratingTarget.gm.shootingEvent.GetComponent<Image>();
 
-            //b端单人
+            //b锟剿碉拷锟斤拷
             if (CommonConfig.StandaloneModeOrPlatformB) 
             {
                 _btnCrosshair.gameObject.SetActive(false);
                 _btnCalibrationOffset.gameObject.SetActive(false);
             } else {
 
-                //获取设置值和一个存储值
+                //锟斤拷取锟斤拷锟斤拷值锟斤拷一锟斤拷锟芥储值
                 bool onInitOpen = InfraredDemo._ins ? InfraredDemo._ins.bInitCrosshairShow() : true;
                 Image crossHairImage = _btnCrosshair.GetComponentInChildren<Image>();
                 crossHairImage.material = onInitOpen ? outlight : null;
@@ -73,7 +73,7 @@ namespace HyperspaceGame
                     AudioMgr.ins.PlayBtn();
                     bool onlyShow = !GetOnlyShow();
                     SetOnlyShow(onlyShow);
-                    //记录准心
+                    //锟斤拷录准锟斤拷
                     if (InfraredDemo._ins) InfraredDemo._ins.setCrosshairValue(onlyShow);
                     if (onlyShow)
                     {
@@ -107,7 +107,7 @@ namespace HyperspaceGame
             //CrossHairOutBoundChecker1 outBoundChecker = Instantiate(Resources.Load<GameObject>("Prefabs/CrossHairOutBoundChecker1")).GetComponent<CrossHairOutBoundChecker1>();
             //outBoundChecker.crossHair = transform as RectTransform;
 
-            //读取准心
+            //锟斤拷取准锟斤拷
             if (InfraredDemo._ins) SetOnlyShow(InfraredDemo._ins.getCrosshairValue() == 1);
 
         }
@@ -127,7 +127,7 @@ namespace HyperspaceGame
         {
             //SceneManager.LoadScene("Home",LoadSceneMode.Single);
             GeneratingTarget.gm.onUploadScore();
-            //结束游戏页面
+            //锟斤拷锟斤拷锟斤拷戏页锟斤拷
             GeneratingTarget.gm.userGameAnalyse1.showResultView(() =>
             {
                 SceneManager.LoadScene("Home", LoadSceneMode.Single);
@@ -150,7 +150,7 @@ namespace HyperspaceGame
         {
             if (AutoResetView.ins != null)
             {
-                //进入校准时候,一定显示准心
+                //锟斤拷锟斤拷校准时锟斤拷一锟斤拷锟斤拷示准锟斤拷
                 SetVisiable(true);
             }
             else

+ 10 - 2
Assets/Plugins/iOS/Editor/XCodePostProcessBuild.cs

@@ -48,7 +48,14 @@ public static class XCodePostProcessBuild
         string frameworkGuid = proj.GetUnityFrameworkTargetGuid();
         Debug.Log("Target Name is " + target);
         // 设置 BuildSettings
-        proj.AddBuildProperty(target, "Other Linker Flags", "-Objc -all_load");
+        //proj.AddBuildProperty(target, "Other Linker Flags", "-Objc -all_load");
+        // 添加 Other Linker Flags
+        proj.AddBuildProperty(target, "OTHER_LDFLAGS", "-ObjC");
+        proj.AddBuildProperty(target, "OTHER_LDFLAGS", "-all_load");
+
+        proj.AddBuildProperty(frameworkGuid, "OTHER_LDFLAGS", "-ObjC");
+        proj.AddBuildProperty(frameworkGuid, "OTHER_LDFLAGS", "-all_load");
+        
         proj.SetBuildProperty(target, "ENABLE_BITCODE", "NO");
         proj.SetBuildProperty(frameworkGuid, "ENABLE_BITCODE", "NO");
 
@@ -79,8 +86,9 @@ public static class XCodePostProcessBuild
         // 在 “info”标签栏的“LSApplicationQueriesSchemes“添加weixin wechat和weixinULAPI
         PlistElementArray wxArray = plist.root.CreateArray("LSApplicationQueriesSchemes");
         wxArray.AddString("weixin");
-        wxArray.AddString("wechat");
+        //wxArray.AddString("wechat");
         wxArray.AddString("weixinULAPI");
+        wxArray.AddString("weixinURLParamsAPI");
 
         PlistElementDict ed = plist.root;
         ed.SetString("NSBluetoothAlwaysUsageDescription", "您是否允此App使用蓝牙,来搜索和连接设备?");

+ 36 - 8
Assets/Plugins/iOS/MyAppController.mm

@@ -31,21 +31,49 @@ IMPL_APP_CONTROLLER_SUBCLASS (MyAppController)
 	NSLog(@"result: %@",@"didFinishLaunchingWithOptions MyAppController初始化");
     return YES;
 }
+// - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
+// {
+//     [super application:application didFinishLaunchingWithOptions:launchOptions];
+
+//     // 启动微信SDK日志
+//     [WXApi startLogByLevel:WXLogLevelDetail logBlock:^(NSString *log) {
+//         NSLog(@"WeChatSDK: %@", log);
+//     }];
+
+//     NSString *weichatId = [NSString stringWithFormat:@"%s", "wxfe29f3f64e3c5d16"];
+//     NSString *universalLink = @"https://xmjssvr.cn/BowArrow/";
+
+//     BOOL installed = [WXApi isWXAppInstalled];
+//     NSLog(@"installed result: %@", installed ? @"true" : @"false");
+
+//     // 注册微信App
+//     BOOL result = [WXApi registerApp:weichatId universalLink:universalLink];
+//     NSLog(@"registerApp result: %@", result ? @"true" : @"false");
+
+//     // 检查UniversalLink是否配置正确
+//     [WXApi checkUniversalLinkReady:^(WXULCheckStep step, WXCheckULStepResult* result) {
+//         NSLog(@"ULCheck Step: %ld, success: %d, error: %@, suggestion: %@", (long)step, result.success, result.errorInfo, result.suggestion);
+//     }];
+
+//     NSLog(@"MyAppController 初始化完成");
+//     return YES;
+// }
+
  
-- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
-	NSLog(@"result: %@",@"handleOpenURL 执行");
-    return  [WXApi handleOpenURL:url delegate:self];
-}
+// - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
+// 	NSLog(@"result: %@",@"handleOpenURL 执行");
+//     return  [WXApi handleOpenURL:url delegate:self];
+// }
 
 - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
     NSLog(@"result: %@",@"openURL options 执行");
     return  [WXApi handleOpenURL:url delegate:self];
 }
  
-- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
-	NSLog(@"result: %@",@"openURL 执行");
-	return [WXApi handleOpenURL:url delegate:self];
-}
+// - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
+// 	NSLog(@"result: %@",@"openURL 执行");
+// 	return [WXApi handleOpenURL:url delegate:self];
+// }
  
 - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler
 {

+ 4 - 0
Assets/Plugins/iOS/WeChatSDK/README.txt

@@ -1,4 +1,8 @@
 重要!
+SDK2.0.4
+1.增加privacy manifest文件
+2.修复跳微信时可能卡顿的问题
+
 SDK2.0.2
 1. 优化XCFramework打包方式
 

+ 10 - 0
Assets/Plugins/iOS/WeChatSDK/WXApi.h

@@ -126,6 +126,16 @@ typedef BOOL(^WXGrantReadPasteBoardPermissionCompletion)(void);
 + (BOOL)isWXAppSupportStateAPI;
 
 
+#ifndef BUILD_WITHOUT_PAY
+/*! @brief 判断当前微信的版本是否支持二维码拉起微信支付
+ *
+ * @attention 需在工程LSApplicationQueriesSchemes配置中添加weixinQRCodePayAPI
+ * @return 支持返回YES,不支持返回NO。
+ */
++ (BOOL)isWXAppSupportQRCodePayAPI;
+
+#endif
+
 
 /*! @brief 获取微信的itunes安装地址
  *

+ 48 - 1
Assets/Plugins/iOS/WeChatSDK/WXApi.h.meta

@@ -11,6 +11,24 @@ PluginImporter:
   isExplicitlyReferenced: 0
   validateReferences: 1
   platformData:
+  - first:
+      : Any
+    second:
+      enabled: 0
+      settings:
+        Exclude Android: 1
+        Exclude Editor: 1
+        Exclude Linux64: 1
+        Exclude OSXUniversal: 1
+        Exclude Win: 1
+        Exclude Win64: 1
+        Exclude iOS: 0
+  - first:
+      Android: Android
+    second:
+      enabled: 0
+      settings:
+        CPU: ARMv7
   - first:
       Any: 
     second:
@@ -21,13 +39,42 @@ PluginImporter:
     second:
       enabled: 0
       settings:
+        CPU: AnyCPU
         DefaultValueInitialized: true
+        OS: AnyOS
+  - first:
+      Standalone: Linux64
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: OSXUniversal
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: Win
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: Win64
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
   - first:
       iPhone: iOS
     second:
       enabled: 1
       settings:
-        AddToEmbeddedBinaries: false
+        AddToEmbeddedBinaries: true
+        CPU: AnyCPU
+        CompileFlags: 
+        FrameworkDependencies: 
   userData: 
   assetBundleName: 
   assetBundleVariant: 

+ 14 - 2
Assets/Plugins/iOS/WeChatSDK/WXApiObject.h

@@ -164,8 +164,6 @@ typedef void(^WXCheckULCompletion)(WXULCheckStep step, WXCheckULStepResult* resu
 #pragma mark - WXMediaMessage
 @class WXMediaMessage;
 
-
-
 #pragma mark - SendAuthReq
 /*! @brief 第三方程序向微信终端请求认证的消息结构
  *
@@ -206,6 +204,9 @@ typedef void(^WXCheckULCompletion)(WXULCheckStep step, WXCheckULStepResult* resu
 @property (nonatomic, copy, nullable) NSString *code;
 /** 第三方程序发送时用来标识其请求的唯一性的标志,由第三方程序调用sendReq时传入,由微信终端回传
  * @note state字符串长度不能超过1K
+ * @note 在复杂度较高的应用程序中,可能会出现其他模块请求的响应对象被错误地回调到当前模块。
+ * 为了避免影响其他模块,建议当前模块的开发者根据SendAuthResp的内容,采用白名单的方式进行处理。
+ * 例如,SendAuthResp.state符合预期时,才对其进行处理。
  */
 @property (nonatomic, copy, nullable) NSString *state;
 @property (nonatomic, copy, nullable) NSString *lang;
@@ -751,6 +752,17 @@ typedef void(^WXCheckULCompletion)(WXULCheckStep step, WXCheckULStepResult* resu
  */
 @property (nonatomic, copy, nullable) NSString *imgDataHash;
 
+/** 分享的图片消息是否要带小程序入口,若 'entranceMiniProgramUsername' 非空则显示
+ *  仅部分小程序类目可用
+ * @note 本字段为空则发送普通app图片消息
+ */
+@property (nonatomic, copy, nullable) NSString *entranceMiniProgramUsername;
+
+/** 分享的图片消息显示的小程序入口可以跳转的小程序路径
+ * 仅当 'entranceMiniProgramUsername' 非空时生效
+ */
+@property (nonatomic, copy, nullable) NSString *entranceMiniProgramPath;
+
 @end
 
 

+ 48 - 1
Assets/Plugins/iOS/WeChatSDK/WXApiObject.h.meta

@@ -11,6 +11,24 @@ PluginImporter:
   isExplicitlyReferenced: 0
   validateReferences: 1
   platformData:
+  - first:
+      : Any
+    second:
+      enabled: 0
+      settings:
+        Exclude Android: 1
+        Exclude Editor: 1
+        Exclude Linux64: 1
+        Exclude OSXUniversal: 1
+        Exclude Win: 1
+        Exclude Win64: 1
+        Exclude iOS: 0
+  - first:
+      Android: Android
+    second:
+      enabled: 0
+      settings:
+        CPU: ARMv7
   - first:
       Any: 
     second:
@@ -21,13 +39,42 @@ PluginImporter:
     second:
       enabled: 0
       settings:
+        CPU: AnyCPU
         DefaultValueInitialized: true
+        OS: AnyOS
+  - first:
+      Standalone: Linux64
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: OSXUniversal
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: Win
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: Win64
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
   - first:
       iPhone: iOS
     second:
       enabled: 1
       settings:
-        AddToEmbeddedBinaries: false
+        AddToEmbeddedBinaries: true
+        CPU: AnyCPU
+        CompileFlags: 
+        FrameworkDependencies: 
   userData: 
   assetBundleName: 
   assetBundleVariant: 

+ 48 - 1
Assets/Plugins/iOS/WeChatSDK/WechatAuthSDK.h.meta

@@ -11,6 +11,24 @@ PluginImporter:
   isExplicitlyReferenced: 0
   validateReferences: 1
   platformData:
+  - first:
+      : Any
+    second:
+      enabled: 0
+      settings:
+        Exclude Android: 1
+        Exclude Editor: 1
+        Exclude Linux64: 1
+        Exclude OSXUniversal: 1
+        Exclude Win: 1
+        Exclude Win64: 1
+        Exclude iOS: 0
+  - first:
+      Android: Android
+    second:
+      enabled: 0
+      settings:
+        CPU: ARMv7
   - first:
       Any: 
     second:
@@ -21,13 +39,42 @@ PluginImporter:
     second:
       enabled: 0
       settings:
+        CPU: AnyCPU
         DefaultValueInitialized: true
+        OS: AnyOS
+  - first:
+      Standalone: Linux64
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: OSXUniversal
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: Win
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  - first:
+      Standalone: Win64
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
   - first:
       iPhone: iOS
     second:
       enabled: 1
       settings:
-        AddToEmbeddedBinaries: false
+        AddToEmbeddedBinaries: true
+        CPU: AnyCPU
+        CompileFlags: 
+        FrameworkDependencies: 
   userData: 
   assetBundleName: 
   assetBundleVariant: 

BIN
Assets/Plugins/iOS/WeChatSDK/libWeChatSDK.a


+ 1 - 1
Assets/Plugins/iOS/WeChatSDK/libWeChatSDK.a.meta

@@ -71,7 +71,7 @@ PluginImporter:
     second:
       enabled: 1
       settings:
-        AddToEmbeddedBinaries: false
+        AddToEmbeddedBinaries: true
         CPU: AnyCPU
         CompileFlags: 
         FrameworkDependencies: WebKit;

+ 40 - 12
Assets/SmartBow/Resources/SmartBow/Prefabs/Views/Home/InfraredView.prefab

@@ -113,7 +113,7 @@ MonoBehaviour:
     m_Top: 0
     m_Bottom: 0
   m_ChildAlignment: 4
-  m_Spacing: 50
+  m_Spacing: 40
   m_ChildForceExpandWidth: 1
   m_ChildForceExpandHeight: 1
   m_ChildControlWidth: 0
@@ -152,7 +152,7 @@ MonoBehaviour:
     paddingRight: 0
     paddingTop: 0
     paddingBottom: 0
-    spacing: 20
+    spacing: 40
     childAlignment: 4
     reverseArrangement: 0
     controlChildWidth: 0
@@ -857,7 +857,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 156.1, y: -190}
+  m_AnchoredPosition: {x: 156.1, y: -125}
   m_SizeDelta: {x: 1500, y: 78}
   m_Pivot: {x: 0, y: 0.5}
 --- !u!114 &3400640804592948125
@@ -2101,9 +2101,9 @@ RectTransform:
   m_Father: {fileID: 5651314242315564806}
   m_RootOrder: 6
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0.5, y: 1}
-  m_AnchorMax: {x: 0.5, y: 1}
-  m_AnchoredPosition: {x: 1009, y: -190}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 1009, y: 460}
   m_SizeDelta: {x: 290, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &5651314242594850832
@@ -3128,7 +3128,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 1006.465, y: -898}
+  m_AnchoredPosition: {x: 950, y: -688}
   m_SizeDelta: {x: 444, y: 96}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &3037373131455025564
@@ -3648,6 +3648,7 @@ GameObject:
   - component: {fileID: 6817529352353233077}
   - component: {fileID: 9159261030246870936}
   - component: {fileID: 8010283695002594467}
+  - component: {fileID: 541864919865326194}
   m_Layer: 5
   m_Name: Item0
   m_TagString: Untagged
@@ -3676,7 +3677,7 @@ RectTransform:
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 2012.93, y: 800}
+  m_SizeDelta: {x: 1900, y: 600}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &7644054724635316563
 CanvasRenderer:
@@ -3731,10 +3732,10 @@ MonoBehaviour:
   m_Padding:
     m_Left: 0
     m_Right: 0
-    m_Top: 150
+    m_Top: 20
     m_Bottom: 0
   m_ChildAlignment: 1
-  m_Spacing: 100
+  m_Spacing: 88
   m_ChildForceExpandWidth: 0
   m_ChildForceExpandHeight: 0
   m_ChildControlWidth: 0
@@ -3771,9 +3772,9 @@ MonoBehaviour:
   iPhoneLayout:
     paddingLeft: 0
     paddingRight: 0
-    paddingTop: 150
+    paddingTop: 20
     paddingBottom: 0
-    spacing: 40
+    spacing: 88
     childAlignment: 1
     reverseArrangement: 0
     controlChildWidth: 0
@@ -3796,6 +3797,33 @@ MonoBehaviour:
     useChildScaleHeight: 0
     childForceExpandWidth: 0
     childForceExpandHeight: 0
+--- !u!114 &541864919865326194
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7843788483479013877}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 1006.465, y: -400}
+    sizeDelta: {x: 2012.93, y: 800}
+  iPhoneLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 1006.465, y: -330}
+    sizeDelta: {x: 1900, y: 600}
+  iPadLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 1006.465, y: -400}
+    sizeDelta: {x: 2012.93, y: 800}
 --- !u!1 &8726777307050236018
 GameObject:
   m_ObjectHideFlags: 0

+ 76 - 0
Assets/SmartBow/Scripts/AdaptUI/CameraFOVAdapter.cs

@@ -0,0 +1,76 @@
+using UnityEngine;
+
+namespace AdaptUI
+{
+    [ExecuteAlways]
+    [RequireComponent(typeof(Camera))]
+    public class CameraFOVAdapter : MonoBehaviour
+    {
+        [Header("默认 FOV(记录挂载时 FOV)")]
+        public float defaultFOV = 60f;
+
+        [Header("iPhone 设备 FOV")]
+        public float iPhoneFOV = 60f;
+
+        [Header("iPad 设备 FOV")]
+        public float iPadFOV = 60f;
+
+        private Camera _camera;
+
+        private void Awake()
+        {
+            _camera = GetComponent<Camera>();
+#if !UNITY_EDITOR
+            ApplyDeviceFOV();
+#endif
+        }
+
+#if UNITY_EDITOR
+        private void Reset()
+        {
+            _camera = GetComponent<Camera>();
+            float fov = _camera.fieldOfView;
+
+            defaultFOV = fov;
+            iPhoneFOV = fov;
+            iPadFOV = fov;
+
+            Debug.Log("CameraFOVAdapter: 挂载时记录默认 FOV");
+        }
+#endif
+
+        public void ApplyDeviceFOV()
+        {
+            if (_camera == null) _camera = GetComponent<Camera>();
+
+            var deviceType = DeviceTypeHelper.DetectDeviceType();
+            switch (deviceType)
+            {
+                case DeviceTypeHelper.DeviceType.iPhone:
+                    _camera.fieldOfView = iPhoneFOV;
+                    break;
+                case DeviceTypeHelper.DeviceType.iPad:
+                    _camera.fieldOfView = iPadFOV;
+                    break;
+                default:
+                    _camera.fieldOfView = defaultFOV;
+                    break;
+            }
+
+            Debug.Log($"Camera FOV 应用完成: 设备 = {deviceType}, FOV = {_camera.fieldOfView}");
+        }
+
+        public void SetFOVForDevice(DeviceTypeHelper.DeviceType deviceType, float fov)
+        {
+            switch (deviceType)
+            {
+                case DeviceTypeHelper.DeviceType.iPhone:
+                    iPhoneFOV = fov;
+                    break;
+                case DeviceTypeHelper.DeviceType.iPad:
+                    iPadFOV = fov;
+                    break;
+            }
+        }
+    }
+}

+ 11 - 0
Assets/SmartBow/Scripts/AdaptUI/CameraFOVAdapter.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0309544a34be5d743abd3bcfe8989073
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 60 - 0
Assets/SmartBow/Scripts/AdaptUI/Editor/CameraFOVAdapterEditor.cs

@@ -0,0 +1,60 @@
+#if UNITY_EDITOR
+using UnityEditor;
+using UnityEngine;
+
+namespace AdaptUI
+{
+    [CustomEditor(typeof(CameraFOVAdapter))]
+    public class CameraFOVAdapterEditor : Editor
+    {
+        public override void OnInspectorGUI()
+        {
+            CameraFOVAdapter adapter = (CameraFOVAdapter)target;
+            Camera cam = adapter.GetComponent<Camera>();
+
+            EditorGUILayout.Space();
+            EditorGUILayout.LabelField("相机 FOV 适配", EditorStyles.boldLabel);
+
+            // 默认值只显示,不允许修改
+            EditorGUILayout.LabelField("默认 FOV(挂载时记录)", adapter.defaultFOV.ToString("F2"));
+
+            EditorGUILayout.Space();
+            adapter.iPhoneFOV = EditorGUILayout.FloatField("iPhone FOV", adapter.iPhoneFOV);
+            adapter.iPadFOV = EditorGUILayout.FloatField("iPad FOV", adapter.iPadFOV);
+
+            EditorGUILayout.Space();
+            EditorGUILayout.LabelField("操作", EditorStyles.boldLabel);
+
+            if (GUILayout.Button("根据当前设备自动应用 FOV"))
+            {
+                adapter.ApplyDeviceFOV();
+                EditorUtility.SetDirty(adapter);
+            }
+
+            if (GUILayout.Button("应用 iPhone 配置到相机"))
+            {
+                cam.fieldOfView = adapter.iPhoneFOV;
+            }
+            if (GUILayout.Button("记录当前 FOV 为 iPhone 配置"))
+            {
+                adapter.SetFOVForDevice(DeviceTypeHelper.DeviceType.iPhone, cam.fieldOfView);
+                EditorUtility.SetDirty(adapter);
+            }
+            if (GUILayout.Button("应用 iPad 配置到相机"))
+            {
+                cam.fieldOfView = adapter.iPadFOV;
+            }
+                  if (GUILayout.Button("记录当前 FOV 为 iPad 配置"))
+            {
+                adapter.SetFOVForDevice(DeviceTypeHelper.DeviceType.iPad, cam.fieldOfView);
+                EditorUtility.SetDirty(adapter);
+            }
+
+            if (GUILayout.Button("重置为默认 FOV"))
+            {
+                cam.fieldOfView = adapter.defaultFOV;
+            }
+        }
+    }
+}
+#endif

+ 11 - 0
Assets/SmartBow/Scripts/AdaptUI/Editor/CameraFOVAdapterEditor.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2db6d09ea05bdc84398249c204a42ce5
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 55 - 0
Assets/SmartBow/Scripts/AdaptUI/Editor/UIFontSizeAdapterEditor.cs

@@ -0,0 +1,55 @@
+#if UNITY_EDITOR
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace AdaptUI
+{
+    [CustomEditor(typeof(UIFontSizeAdapter))]
+    public class UIFontSizeAdapterEditor : Editor
+    {
+        public override void OnInspectorGUI()
+        {
+            var script = (UIFontSizeAdapter)target;
+            var text = script.GetComponent<Text>();
+
+            EditorGUILayout.LabelField("字体适配器", EditorStyles.boldLabel);
+
+            DrawFontEditor(script, "默认字体大小", ref script.defaultFontSize, text, false);
+            DrawFontEditor(script, "iPhone 字体大小", ref script.iPhoneFontSize, text, true);
+            DrawFontEditor(script, "iPad 字体大小", ref script.iPadFontSize, text, true);
+
+            EditorGUILayout.Space();
+            if (GUILayout.Button("自动字体适配"))
+            {
+                script.ApplyFontSize();
+            }
+        }
+
+        private void DrawFontEditor(UIFontSizeAdapter script, string title, ref FontSizeData data, Text text, bool allowGet)
+        {
+            EditorGUILayout.LabelField(title, EditorStyles.boldLabel);
+            EditorGUI.indentLevel++;
+
+            data.fontSize = EditorGUILayout.IntField("字体大小", data.fontSize);
+
+            if (GUILayout.Button("应用到 Text 组件"))
+            {
+                text.fontSize = data.fontSize;
+                Undo.RecordObject(script, "Apply Font Size");
+                EditorUtility.SetDirty(script);
+            }
+
+            if (allowGet && GUILayout.Button("获取当前字体大小"))
+            {
+                data.fontSize = text.fontSize;
+                Undo.RecordObject(script, "Get Current Font Size");
+                EditorUtility.SetDirty(script);
+            }
+
+            EditorGUI.indentLevel--;
+            EditorGUILayout.Space();
+        }
+    }
+}
+#endif

+ 11 - 0
Assets/SmartBow/Scripts/AdaptUI/Editor/UIFontSizeAdapterEditor.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2cda1c1a8e42bbc46ac1517283127147
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 92 - 0
Assets/SmartBow/Scripts/AdaptUI/UIFontSizeAdapter.cs

@@ -0,0 +1,92 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace AdaptUI
+{
+    [System.Serializable]
+    public struct FontSizeData
+    {
+        public int fontSize;
+
+        public FontSizeData(int size)
+        {
+            fontSize = size;
+        }
+
+        public bool IsValid() => fontSize > 0;
+    }
+
+    [ExecuteAlways]
+    [RequireComponent(typeof(Text))]
+    public class UIFontSizeAdapter : MonoBehaviour
+    {
+        [Header("默认字体大小")]
+        public FontSizeData defaultFontSize;
+
+        [Header("iPhone 字体大小")]
+        public FontSizeData iPhoneFontSize;
+
+        [Header("iPad 字体大小")]
+        public FontSizeData iPadFontSize;
+
+        private Text text;
+        private bool isInitialized = false;
+
+        private void Awake()
+        {
+            text = GetComponent<Text>();
+            if (!isInitialized) return;
+
+            ApplyFontSize();
+        }
+
+#if UNITY_EDITOR
+        private void Reset()
+        {
+            text = GetComponent<Text>();
+            if (!isInitialized && text != null)
+            {
+                defaultFontSize = new FontSizeData(text.fontSize);
+                iPhoneFontSize = new FontSizeData(text.fontSize);
+                iPadFontSize = new FontSizeData(text.fontSize);
+                isInitialized = true;
+                Debug.Log("UIFontSizeAdapter: 初始化默认字体大小为 " + text.fontSize);
+            }
+        }
+#endif
+
+        public void ApplyFontSize()
+        {
+            if (text == null) return;
+
+            var type = DeviceTypeHelper.DetectDeviceType();
+            int size = defaultFontSize.fontSize;
+
+            switch (type)
+            {
+                case DeviceTypeHelper.DeviceType.iPhone:
+                    size = iPhoneFontSize.fontSize;
+                    break;
+                case DeviceTypeHelper.DeviceType.iPad:
+                    size = iPadFontSize.fontSize;
+                    break;
+            }
+
+            text.fontSize = size;
+            Debug.Log($"📌 应用字体大小: {size} (设备: {type})");
+        }
+
+        public void SetFontSize(bool isIpad, int size)
+        {
+            if (isIpad)
+                iPadFontSize = new FontSizeData(size);
+            else
+                iPhoneFontSize = new FontSizeData(size);
+        }
+
+        public FontSizeData GetFontSize(bool isIpad)
+        {
+            return isIpad ? iPadFontSize : iPhoneFontSize;
+        }
+    }
+}

+ 11 - 0
Assets/SmartBow/Scripts/AdaptUI/UIFontSizeAdapter.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 48688f7aeeff0ac44bf55eaaa132f8c6
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 17 - 1
Assets/WildAttack/Scenes/WildAttack.unity

@@ -35077,6 +35077,7 @@ GameObject:
   - component: {fileID: 274814417}
   - component: {fileID: 274814420}
   - component: {fileID: 274814421}
+  - component: {fileID: 274814422}
   m_Layer: 0
   m_Name: Main Camera
   m_TagString: MainCamera
@@ -35117,7 +35118,7 @@ Camera:
     height: 1
   near clip plane: 0.01
   far clip plane: 1000
-  field of view: 60
+  field of view: 80
   orthographic: 0
   orthographic size: 5
   m_Depth: -1
@@ -35264,6 +35265,21 @@ MonoBehaviour:
     serializedVersion: 2
     m_Bits: 4294967295
   m_MaxRayIntersections: 0
+--- !u!114 &274814422
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 274814416}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 0309544a34be5d743abd3bcfe8989073, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultFOV: 60
+  iPhoneFOV: 60
+  iPadFOV: 80
 --- !u!1 &275646101
 GameObject:
   m_ObjectHideFlags: 0

+ 2 - 2
ProjectSettings/ProjectSettings.asset

@@ -137,7 +137,7 @@ PlayerSettings:
     16:10: 1
     16:9: 1
     Others: 1
-  bundleVersion: 2.1.0
+  bundleVersion: 2.1.2
   preloadedAssets: []
   metroInputSource: 0
   wsaTransparentSwapchain: 0
@@ -231,7 +231,7 @@ PlayerSettings:
   metalAPIValidation: 1
   iOSRenderExtraFrameOnPause: 0
   iosCopyPluginsCodeInsteadOfSymlink: 0
-  appleDeveloperTeamID: 7M2LZ4HF3C
+  appleDeveloperTeamID: WR7WD35237
   iOSManualSigningProvisioningProfileID: 
   tvOSManualSigningProvisioningProfileID: 
   iOSManualSigningProvisioningProfileType: 1