slambb 7 mesi fa
parent
commit
32c87554ad
100 ha cambiato i file con 4295 aggiunte e 1712 eliminazioni
  1. 8 0
      Assets/AddressableAssetsData.meta
  2. 136 0
      Assets/AddressableAssetsData/AddressableAssetSettings.asset
  3. 8 0
      Assets/AddressableAssetsData/AddressableAssetSettings.asset.meta
  4. 8 0
      Assets/AddressableAssetsData/AssetGroupTemplates.meta
  5. 76 0
      Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset
  6. 8 0
      Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset.meta
  7. 8 0
      Assets/AddressableAssetsData/AssetGroups.meta
  8. 32 0
      Assets/AddressableAssetsData/AssetGroups/Built In Data.asset
  9. 8 0
      Assets/AddressableAssetsData/AssetGroups/Built In Data.asset.meta
  10. 25 0
      Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset
  11. 8 0
      Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset.meta
  12. 8 0
      Assets/AddressableAssetsData/AssetGroups/Schemas.meta
  13. 17 0
      Assets/AddressableAssetsData/AssetGroups/Schemas/Built In Data_PlayerDataGroupSchema.asset
  14. 8 0
      Assets/AddressableAssetsData/AssetGroups/Schemas/Built In Data_PlayerDataGroupSchema.asset.meta
  15. 45 0
      Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset
  16. 8 0
      Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset.meta
  17. 16 0
      Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset
  18. 8 0
      Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset.meta
  19. 45 0
      Assets/AddressableAssetsData/AssetGroups/Schemas/Textures_BundledAssetGroupSchema.asset
  20. 8 0
      Assets/AddressableAssetsData/AssetGroups/Schemas/Textures_BundledAssetGroupSchema.asset.meta
  21. 16 0
      Assets/AddressableAssetsData/AssetGroups/Schemas/Textures_ContentUpdateGroupSchema.asset
  22. 8 0
      Assets/AddressableAssetsData/AssetGroups/Schemas/Textures_ContentUpdateGroupSchema.asset.meta
  23. 25 0
      Assets/AddressableAssetsData/AssetGroups/Textures.asset
  24. 8 0
      Assets/AddressableAssetsData/AssetGroups/Textures.asset.meta
  25. 8 0
      Assets/AddressableAssetsData/DataBuilders.meta
  26. 20 0
      Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset
  27. 8 0
      Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset.meta
  28. 20 0
      Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset
  29. 8 0
      Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset.meta
  30. 20 0
      Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset
  31. 8 0
      Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset.meta
  32. 20 0
      Assets/AddressableAssetsData/DataBuilders/BuildScriptVirtualMode.asset
  33. 8 0
      Assets/AddressableAssetsData/DataBuilders/BuildScriptVirtualMode.asset.meta
  34. 15 0
      Assets/AddressableAssetsData/DefaultObject.asset
  35. 8 0
      Assets/AddressableAssetsData/DefaultObject.asset.meta
  36. 27 0
      Assets/AddressableAssetsData/ProfileDataSourceSettings.asset
  37. 8 0
      Assets/AddressableAssetsData/ProfileDataSourceSettings.asset.meta
  38. 8 0
      Assets/AddressableAssetsData/iOS.meta
  39. BIN
      Assets/AddressableAssetsData/iOS/addressables_content_state.bin
  40. 7 0
      Assets/AddressableAssetsData/iOS/addressables_content_state.bin.meta
  41. 10 0
      Assets/AddressableAssetsData/link.xml
  42. 7 0
      Assets/AddressableAssetsData/link.xml.meta
  43. 87 21
      Assets/BowArrow/DoubleInfraredScene/InfraredGameDouble.unity
  44. 24 2
      Assets/BowArrow/DoubleScene/Resources/DoublePKGameView.prefab
  45. 112 67
      Assets/BowArrow/InfraredCamera/InfraredDemo.cs
  46. 25 2
      Assets/BowArrow/Resources/Prefabs/Popups/PKInviteNotice.prefab
  47. 35 5
      Assets/BowArrow/Resources/Prefabs/Popups/PopupRoot.prefab
  48. 238 14
      Assets/BowArrow/Resources/Prefabs/Views/Home/DeviceViewInfrared.prefab
  49. 63 12
      Assets/BowArrow/Resources/Prefabs/Views/Home/ModeSelectView.prefab
  50. 63 7
      Assets/BowArrow/Resources/Prefabs/Views/Home/SmartArcheryView.prefab
  51. 63 7
      Assets/BowArrow/Resources/Prefabs/Views/Home/SmartGunView.prefab
  52. 24 2
      Assets/BowArrow/Resources/Prefabs/Views/PKGameView.prefab
  53. 63 6
      Assets/BowArrow/Resources/Prefabs/Views/PKMatchingView.prefab
  54. 23 1
      Assets/BowArrow/Resources/Prefabs/Views/TimeLimitGameDistanceSelectView.prefab
  55. 31 9
      Assets/BowArrow/Resources/Prefabs/Views/TimeLimitGameSettleView.prefab
  56. 53 3
      Assets/BowArrow/Resources/Prefabs/Views/TimeLimitGameView.prefab
  57. 89 5
      Assets/BowArrow/Resources/Textures/GameIcon/Prefabs/Views/Home/HomeView.prefab
  58. 122 10
      Assets/BowArrow/Resources/Textures/GameIcon/Prefabs/Views/Home/PKMatchView.prefab
  59. 92 7
      Assets/BowArrow/Resources/Textures/GameIcon/Prefabs/Views/Home/RoleSelectView.prefab
  60. 130 22
      Assets/BowArrow/Scenes/Game.unity
  61. 124 149
      Assets/BowArrow/Scenes/GameChallengeScene/GameChallenge.unity
  62. 375 419
      Assets/BowArrow/Scenes/Login.unity
  63. 44 4
      Assets/BowArrow/Scripts/Manager/LoginMgr/LoginMgr.cs
  64. 1 1
      Assets/BowArrow/Scripts/Manager/LoginMgr/WeChatLoginHelper.cs
  65. 23 1
      Assets/DuckHunter/Scenes/DuckHunter.unity
  66. 0 150
      Assets/InfraredProject/InfraredCamera/Scripts/UVCInterface.cs
  67. 0 388
      Assets/InfraredProject/InfraredCamera/Scripts/UVCInterface_Android.cs
  68. 0 350
      Assets/InfraredProject/InfraredCamera/Scripts/UVCInterface_IOS.cs
  69. 8 0
      Assets/InfraredProject/uvc.meta
  70. BIN
      Assets/InfraredProject/uvc/UVCInfrared.dll
  71. 33 0
      Assets/InfraredProject/uvc/UVCInfrared.dll.meta
  72. BIN
      Assets/Plugins/iOS/libuvccamera.a
  73. 1 1
      Assets/Plugins/iOS/libuvccamera.a.meta
  74. 164 14
      Assets/SmartBow/Resources/SmartBow/Prefabs/Views/GameResultView.prefab
  75. 210 14
      Assets/SmartBow/Resources/SmartBow/Prefabs/Views/Home/ConnectGuidanceView.prefab
  76. 182 16
      Assets/SmartBow/Resources/SmartBow/Prefabs/Views/Home/InfraredView.prefab
  77. 8 0
      Assets/SmartBow/Scripts/AdaptUI.meta
  78. 87 0
      Assets/SmartBow/Scripts/AdaptUI/AddressableImageLoader.cs
  79. 1 1
      Assets/SmartBow/Scripts/AdaptUI/AddressableImageLoader.cs.meta
  80. 69 0
      Assets/SmartBow/Scripts/AdaptUI/DeviceTypeHelper.cs
  81. 1 1
      Assets/SmartBow/Scripts/AdaptUI/DeviceTypeHelper.cs.meta
  82. 8 0
      Assets/SmartBow/Scripts/AdaptUI/Editor.meta
  83. 100 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/AddressableImageLoaderEditor.cs
  84. 1 1
      Assets/SmartBow/Scripts/AdaptUI/Editor/AddressableImageLoaderEditor.cs.meta
  85. 78 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/AddressableImageLoaderWindow.cs
  86. 11 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/AddressableImageLoaderWindow.cs.meta
  87. 91 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/UIAdaptiveRectEditor.cs
  88. 11 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/UIAdaptiveRectEditor.cs.meta
  89. 82 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/UIAdaptiveTransformEditor.cs
  90. 11 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/UIAdaptiveTransformEditor.cs.meta
  91. 81 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/UICanvasScalerAdaptiveEditor.cs
  92. 11 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/UICanvasScalerAdaptiveEditor.cs.meta
  93. 94 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/UIHorizomtalLayoutGroupEditor.cs
  94. 11 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/UIHorizomtalLayoutGroupEditor.cs.meta
  95. 90 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/UIVerticalLayoutGroupEditor.cs
  96. 11 0
      Assets/SmartBow/Scripts/AdaptUI/Editor/UIVerticalLayoutGroupEditor.cs.meta
  97. 35 0
      Assets/SmartBow/Scripts/AdaptUI/GameViewSizeHelper.cs
  98. 11 0
      Assets/SmartBow/Scripts/AdaptUI/GameViewSizeHelper.cs.meta
  99. 124 0
      Assets/SmartBow/Scripts/AdaptUI/UIAdaptiveRect.cs
  100. 11 0
      Assets/SmartBow/Scripts/AdaptUI/UIAdaptiveRect.cs.meta

+ 8 - 0
Assets/AddressableAssetsData.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 45ed5cc14336b5b418714c168dcf6193
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 136 - 0
Assets/AddressableAssetsData/AddressableAssetSettings.asset

@@ -0,0 +1,136 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 468a46d0ae32c3544b7d98094e6448a9, type: 3}
+  m_Name: AddressableAssetSettings
+  m_EditorClassIdentifier: 
+  m_DefaultGroup: a05bbd0806036e54c9779184721ad741
+  m_CachedHash:
+    serializedVersion: 2
+    Hash: 00000000000000000000000000000000
+  m_OptimizeCatalogSize: 0
+  m_BuildRemoteCatalog: 0
+  m_BundleLocalCatalog: 0
+  m_CatalogRequestsTimeout: 0
+  m_DisableCatalogUpdateOnStart: 0
+  m_IgnoreUnsupportedFilesInBuild: 0
+  m_UniqueBundleIds: 0
+  m_NonRecursiveBuilding: 1
+  m_CCDEnabled: 0
+  m_maxConcurrentWebRequests: 500
+  m_ContiguousBundles: 1
+  m_StripUnityVersionFromBundleBuild: 0
+  m_DisableVisibleSubAssetRepresentations: 0
+  m_ShaderBundleNaming: 0
+  m_ShaderBundleCustomNaming: 
+  m_MonoScriptBundleNaming: 0
+  m_MonoScriptBundleCustomNaming: 
+  m_RemoteCatalogBuildPath:
+    m_Id: 
+  m_RemoteCatalogLoadPath:
+    m_Id: 
+  m_ContentStateBuildPath: 
+  m_BuildAddressablesWithPlayerBuild: 0
+  m_overridePlayerVersion: 
+  m_GroupAssets:
+  - {fileID: 11400000, guid: 1c3efe1c3ea7ac74592e9b6cda0b7eea, type: 2}
+  - {fileID: 11400000, guid: d939d362aa615af4a80ebb7addecc3c0, type: 2}
+  - {fileID: 11400000, guid: 7ffc596730379b140be42b89b043cb3a, type: 2}
+  m_BuildSettings:
+    m_CompileScriptsInVirtualMode: 0
+    m_CleanupStreamingAssetsAfterBuilds: 1
+    m_LogResourceManagerExceptions: 1
+    m_BundleBuildPath: Temp/com.unity.addressables/AssetBundles
+  m_ProfileSettings:
+    m_Profiles:
+    - m_InheritedParent: 
+      m_Id: 660f9434e9c8bd340abd9c83ddb19caa
+      m_ProfileName: Default
+      m_Values:
+      - m_Id: da76aaeead6fdf849b92080d9c25d2de
+        m_Value: '[UnityEditor.EditorUserBuildSettings.activeBuildTarget]'
+      - m_Id: 515ba9cb3af7f224086fee63f6b39a33
+        m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]'
+      - m_Id: 4a2d8366a1943894ab9af160cc87eb30
+        m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]'
+      - m_Id: faaff44f7da8a404898af142e0cfb794
+        m_Value: ServerData/[BuildTarget]
+      - m_Id: 9acd7af12b77cda48a2d1109cbf5224c
+        m_Value: http://[PrivateIpAddress]:[HostingServicePort]
+    - m_InheritedParent: 
+      m_Id: c11e83ba7492b0440b2902ecc2550a82
+      m_ProfileName: iPhone_Profile
+      m_Values:
+      - m_Id: da76aaeead6fdf849b92080d9c25d2de
+        m_Value: '[UnityEditor.EditorUserBuildSettings.activeBuildTarget]'
+      - m_Id: 515ba9cb3af7f224086fee63f6b39a33
+        m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]'
+      - m_Id: 4a2d8366a1943894ab9af160cc87eb30
+        m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]'
+      - m_Id: faaff44f7da8a404898af142e0cfb794
+        m_Value: ServerData/[BuildTarget]
+      - m_Id: 9acd7af12b77cda48a2d1109cbf5224c
+        m_Value: http://[PrivateIpAddress]:[HostingServicePort]
+    - m_InheritedParent: 
+      m_Id: 80b0a7e5cf87c0249a4b8c1fd3fd4abc
+      m_ProfileName: iPad_Profile
+      m_Values:
+      - m_Id: da76aaeead6fdf849b92080d9c25d2de
+        m_Value: '[UnityEditor.EditorUserBuildSettings.activeBuildTarget]'
+      - m_Id: 515ba9cb3af7f224086fee63f6b39a33
+        m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]'
+      - m_Id: 4a2d8366a1943894ab9af160cc87eb30
+        m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]'
+      - m_Id: faaff44f7da8a404898af142e0cfb794
+        m_Value: ServerData/[BuildTarget]
+      - m_Id: 9acd7af12b77cda48a2d1109cbf5224c
+        m_Value: http://[PrivateIpAddress]:[HostingServicePort]
+    m_ProfileEntryNames:
+    - m_Id: da76aaeead6fdf849b92080d9c25d2de
+      m_Name: BuildTarget
+      m_InlineUsage: 0
+    - m_Id: 515ba9cb3af7f224086fee63f6b39a33
+      m_Name: Local.BuildPath
+      m_InlineUsage: 0
+    - m_Id: 4a2d8366a1943894ab9af160cc87eb30
+      m_Name: Local.LoadPath
+      m_InlineUsage: 0
+    - m_Id: faaff44f7da8a404898af142e0cfb794
+      m_Name: Remote.BuildPath
+      m_InlineUsage: 0
+    - m_Id: 9acd7af12b77cda48a2d1109cbf5224c
+      m_Name: Remote.LoadPath
+      m_InlineUsage: 0
+    m_ProfileVersion: 1
+  m_LabelTable:
+    m_LabelNames:
+    - default
+    - iPhone
+    - iPad
+  m_SchemaTemplates: []
+  m_GroupTemplateObjects:
+  - {fileID: 11400000, guid: c1b3aeb59125ce74e8495205be03a70e, type: 2}
+  m_InitializationObjects: []
+  m_CertificateHandlerType:
+    m_AssemblyName: 
+    m_ClassName: 
+  m_ActivePlayerDataBuilderIndex: 3
+  m_DataBuilders:
+  - {fileID: 11400000, guid: 008d7e350676ba541bc013e212dae85d, type: 2}
+  - {fileID: 11400000, guid: e631e71e6622d7f4592d070f5083631f, type: 2}
+  - {fileID: 11400000, guid: 3e4ffd30a8aa0ea459d188ce273e1ae0, type: 2}
+  - {fileID: 11400000, guid: c70040eafb48b1f4db76577bd838d471, type: 2}
+  m_ActiveProfileId: 660f9434e9c8bd340abd9c83ddb19caa
+  m_HostingServicesManager:
+    m_HostingServiceInfos: []
+    m_Settings: {fileID: 11400000}
+    m_NextInstanceId: 0
+    m_RegisteredServiceTypeRefs: []

+ 8 - 0
Assets/AddressableAssetsData/AddressableAssetSettings.asset.meta

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

+ 8 - 0
Assets/AddressableAssetsData/AssetGroupTemplates.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 848017f325004934baacb50874eaa6d3
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 76 - 0
Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset

@@ -0,0 +1,76 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-1525918746319802696
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
+  m_Name: BundledAssetGroupSchema
+  m_EditorClassIdentifier: 
+  m_Group: {fileID: 0}
+  m_InternalBundleIdMode: 1
+  m_Compression: 1
+  m_IncludeAddressInCatalog: 1
+  m_IncludeGUIDInCatalog: 1
+  m_IncludeLabelsInCatalog: 1
+  m_InternalIdNamingMode: 0
+  m_CacheClearBehavior: 0
+  m_IncludeInBuild: 1
+  m_BundledAssetProviderType:
+    m_AssemblyName: 
+    m_ClassName: 
+  m_ForceUniqueProvider: 0
+  m_UseAssetBundleCache: 1
+  m_UseAssetBundleCrc: 1
+  m_UseAssetBundleCrcForCachedBundles: 1
+  m_UseUWRForLocalBundles: 0
+  m_Timeout: 0
+  m_ChunkedTransfer: 0
+  m_RedirectLimit: -1
+  m_RetryCount: 0
+  m_BuildPath:
+    m_Id: 
+  m_LoadPath:
+    m_Id: 
+  m_BundleMode: 0
+  m_AssetBundleProviderType:
+    m_AssemblyName: 
+    m_ClassName: 
+  m_BundleNaming: 0
+  m_AssetLoadMode: 0
+--- !u!114 &-925333244780370168
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
+  m_Name: ContentUpdateGroupSchema
+  m_EditorClassIdentifier: 
+  m_Group: {fileID: 0}
+  m_StaticContent: 0
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 1a3c5d64ac83548c09dd1678b9f6f1cd, type: 3}
+  m_Name: Packed Assets
+  m_EditorClassIdentifier: 
+  m_SchemaObjects:
+  - {fileID: -1525918746319802696}
+  - {fileID: -925333244780370168}
+  m_Description: Pack assets into asset bundles.
+  m_Settings: {fileID: 0}

+ 8 - 0
Assets/AddressableAssetsData/AssetGroupTemplates/Packed Assets.asset.meta

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

+ 8 - 0
Assets/AddressableAssetsData/AssetGroups.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 65114fef75e0be14da9b9900c426279f
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 32 - 0
Assets/AddressableAssetsData/AssetGroups/Built In Data.asset

@@ -0,0 +1,32 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
+  m_Name: Built In Data
+  m_EditorClassIdentifier: 
+  m_GroupName: Built In Data
+  m_Data:
+    m_SerializedData: []
+  m_GUID: 8be9cb065ac12a6448a06da031983dec
+  m_SerializeEntries:
+  - m_GUID: Resources
+    m_Address: Resources
+    m_ReadOnly: 1
+    m_SerializedLabels: []
+  - m_GUID: EditorSceneList
+    m_Address: EditorSceneList
+    m_ReadOnly: 1
+    m_SerializedLabels: []
+  m_ReadOnly: 1
+  m_Settings: {fileID: 11400000, guid: bd4aee83274041848a614d70134e40ee, type: 2}
+  m_SchemaSet:
+    m_Schemas:
+    - {fileID: 11400000, guid: 749a60b6e7404fa4c81ce356fc80b3ee, type: 2}

+ 8 - 0
Assets/AddressableAssetsData/AssetGroups/Built In Data.asset.meta

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

+ 25 - 0
Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset

@@ -0,0 +1,25 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
+  m_Name: Default Local Group
+  m_EditorClassIdentifier: 
+  m_GroupName: Default Local Group
+  m_Data:
+    m_SerializedData: []
+  m_GUID: a05bbd0806036e54c9779184721ad741
+  m_SerializeEntries: []
+  m_ReadOnly: 0
+  m_Settings: {fileID: 11400000, guid: bd4aee83274041848a614d70134e40ee, type: 2}
+  m_SchemaSet:
+    m_Schemas:
+    - {fileID: 11400000, guid: 130b82026403030448c3345ce84d077e, type: 2}
+    - {fileID: 11400000, guid: ec768f583ce31764d8c6188ecc46dd61, type: 2}

+ 8 - 0
Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset.meta

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

+ 8 - 0
Assets/AddressableAssetsData/AssetGroups/Schemas.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e072fe40dde50e7428286aa6b584e9ee
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 17 - 0
Assets/AddressableAssetsData/AssetGroups/Schemas/Built In Data_PlayerDataGroupSchema.asset

@@ -0,0 +1,17 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: b1487f5d688e4f94f828f879d599dbdc, type: 3}
+  m_Name: Built In Data_PlayerDataGroupSchema
+  m_EditorClassIdentifier: 
+  m_Group: {fileID: 11400000, guid: 1c3efe1c3ea7ac74592e9b6cda0b7eea, type: 2}
+  m_IncludeResourcesFolders: 1
+  m_IncludeBuildSettingsScenes: 1

+ 8 - 0
Assets/AddressableAssetsData/AssetGroups/Schemas/Built In Data_PlayerDataGroupSchema.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 749a60b6e7404fa4c81ce356fc80b3ee
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 45 - 0
Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset

@@ -0,0 +1,45 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
+  m_Name: Default Local Group_BundledAssetGroupSchema
+  m_EditorClassIdentifier: 
+  m_Group: {fileID: 11400000, guid: d939d362aa615af4a80ebb7addecc3c0, type: 2}
+  m_InternalBundleIdMode: 1
+  m_Compression: 1
+  m_IncludeAddressInCatalog: 1
+  m_IncludeGUIDInCatalog: 1
+  m_IncludeLabelsInCatalog: 1
+  m_InternalIdNamingMode: 0
+  m_CacheClearBehavior: 0
+  m_IncludeInBuild: 1
+  m_BundledAssetProviderType:
+    m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+    m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
+  m_ForceUniqueProvider: 0
+  m_UseAssetBundleCache: 1
+  m_UseAssetBundleCrc: 1
+  m_UseAssetBundleCrcForCachedBundles: 1
+  m_UseUWRForLocalBundles: 0
+  m_Timeout: 0
+  m_ChunkedTransfer: 0
+  m_RedirectLimit: -1
+  m_RetryCount: 0
+  m_BuildPath:
+    m_Id: 515ba9cb3af7f224086fee63f6b39a33
+  m_LoadPath:
+    m_Id: 4a2d8366a1943894ab9af160cc87eb30
+  m_BundleMode: 0
+  m_AssetBundleProviderType:
+    m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+    m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
+  m_BundleNaming: 0
+  m_AssetLoadMode: 0

+ 8 - 0
Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_BundledAssetGroupSchema.asset.meta

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

+ 16 - 0
Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset

@@ -0,0 +1,16 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
+  m_Name: Default Local Group_ContentUpdateGroupSchema
+  m_EditorClassIdentifier: 
+  m_Group: {fileID: 11400000, guid: d939d362aa615af4a80ebb7addecc3c0, type: 2}
+  m_StaticContent: 0

+ 8 - 0
Assets/AddressableAssetsData/AssetGroups/Schemas/Default Local Group_ContentUpdateGroupSchema.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 130b82026403030448c3345ce84d077e
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 45 - 0
Assets/AddressableAssetsData/AssetGroups/Schemas/Textures_BundledAssetGroupSchema.asset

@@ -0,0 +1,45 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
+  m_Name: Textures_BundledAssetGroupSchema
+  m_EditorClassIdentifier: 
+  m_Group: {fileID: 11400000, guid: 7ffc596730379b140be42b89b043cb3a, type: 2}
+  m_InternalBundleIdMode: 1
+  m_Compression: 1
+  m_IncludeAddressInCatalog: 1
+  m_IncludeGUIDInCatalog: 1
+  m_IncludeLabelsInCatalog: 1
+  m_InternalIdNamingMode: 0
+  m_CacheClearBehavior: 0
+  m_IncludeInBuild: 1
+  m_BundledAssetProviderType:
+    m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+    m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
+  m_ForceUniqueProvider: 0
+  m_UseAssetBundleCache: 1
+  m_UseAssetBundleCrc: 1
+  m_UseAssetBundleCrcForCachedBundles: 1
+  m_UseUWRForLocalBundles: 0
+  m_Timeout: 0
+  m_ChunkedTransfer: 0
+  m_RedirectLimit: -1
+  m_RetryCount: 0
+  m_BuildPath:
+    m_Id: 515ba9cb3af7f224086fee63f6b39a33
+  m_LoadPath:
+    m_Id: 4a2d8366a1943894ab9af160cc87eb30
+  m_BundleMode: 0
+  m_AssetBundleProviderType:
+    m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+    m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
+  m_BundleNaming: 0
+  m_AssetLoadMode: 0

+ 8 - 0
Assets/AddressableAssetsData/AssetGroups/Schemas/Textures_BundledAssetGroupSchema.asset.meta

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

+ 16 - 0
Assets/AddressableAssetsData/AssetGroups/Schemas/Textures_ContentUpdateGroupSchema.asset

@@ -0,0 +1,16 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
+  m_Name: Textures_ContentUpdateGroupSchema
+  m_EditorClassIdentifier: 
+  m_Group: {fileID: 11400000, guid: 7ffc596730379b140be42b89b043cb3a, type: 2}
+  m_StaticContent: 0

+ 8 - 0
Assets/AddressableAssetsData/AssetGroups/Schemas/Textures_ContentUpdateGroupSchema.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 84ded5d4bd698f245a33c11519f85daf
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 25 - 0
Assets/AddressableAssetsData/AssetGroups/Textures.asset

@@ -0,0 +1,25 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
+  m_Name: Textures
+  m_EditorClassIdentifier: 
+  m_GroupName: Textures
+  m_Data:
+    m_SerializedData: []
+  m_GUID: 7856a83aaf934fe4e960676dd78b4def
+  m_SerializeEntries: []
+  m_ReadOnly: 0
+  m_Settings: {fileID: 11400000, guid: bd4aee83274041848a614d70134e40ee, type: 2}
+  m_SchemaSet:
+    m_Schemas:
+    - {fileID: 11400000, guid: fe2b8e75f5e41bf44b4d681f42c67204, type: 2}
+    - {fileID: 11400000, guid: 84ded5d4bd698f245a33c11519f85daf, type: 2}

+ 8 - 0
Assets/AddressableAssetsData/AssetGroups/Textures.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7ffc596730379b140be42b89b043cb3a
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/AddressableAssetsData/DataBuilders.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 004e87fc0731fa243b8e52d35ab8b472
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 20 - 0
Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset

@@ -0,0 +1,20 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 88d21199f5d473f4db36845f2318f180, type: 3}
+  m_Name: BuildScriptFastMode
+  m_EditorClassIdentifier: 
+  instanceProviderType:
+    m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+    m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider
+  sceneProviderType:
+    m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+    m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider

+ 8 - 0
Assets/AddressableAssetsData/DataBuilders/BuildScriptFastMode.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 008d7e350676ba541bc013e212dae85d
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 20 - 0
Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset

@@ -0,0 +1,20 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3e2e0ffa088c91d41a086d0b8cb16bdc, type: 3}
+  m_Name: BuildScriptPackedMode
+  m_EditorClassIdentifier: 
+  instanceProviderType:
+    m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+    m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider
+  sceneProviderType:
+    m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+    m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider

+ 8 - 0
Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedMode.asset.meta

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

+ 20 - 0
Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset

@@ -0,0 +1,20 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ad8c280d42ee0ed41a27db23b43dd2bf, type: 3}
+  m_Name: BuildScriptPackedPlayMode
+  m_EditorClassIdentifier: 
+  instanceProviderType:
+    m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+    m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider
+  sceneProviderType:
+    m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+    m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider

+ 8 - 0
Assets/AddressableAssetsData/DataBuilders/BuildScriptPackedPlayMode.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3e4ffd30a8aa0ea459d188ce273e1ae0
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 20 - 0
Assets/AddressableAssetsData/DataBuilders/BuildScriptVirtualMode.asset

@@ -0,0 +1,20 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: bb0e4994b34add1409fd8ccaf4a82de5, type: 3}
+  m_Name: BuildScriptVirtualMode
+  m_EditorClassIdentifier: 
+  instanceProviderType:
+    m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+    m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider
+  sceneProviderType:
+    m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+    m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.SceneProvider

+ 8 - 0
Assets/AddressableAssetsData/DataBuilders/BuildScriptVirtualMode.asset.meta

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

+ 15 - 0
Assets/AddressableAssetsData/DefaultObject.asset

@@ -0,0 +1,15 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3a189bb168d8d90478a09ea08c2f3d72, type: 3}
+  m_Name: DefaultObject
+  m_EditorClassIdentifier: 
+  m_AddressableAssetSettingsGuid: bd4aee83274041848a614d70134e40ee

+ 8 - 0
Assets/AddressableAssetsData/DefaultObject.asset.meta

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

+ 27 - 0
Assets/AddressableAssetsData/ProfileDataSourceSettings.asset

@@ -0,0 +1,27 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7e3976da977cb49238499ea3b4c237ae, type: 3}
+  m_Name: ProfileDataSourceSettings
+  m_EditorClassIdentifier: 
+  profileGroupTypes:
+  - m_GroupTypePrefix: Built-In
+    m_Variables:
+    - m_Suffix: BuildPath
+      m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]'
+    - m_Suffix: LoadPath
+      m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]'
+  - m_GroupTypePrefix: Editor Hosted
+    m_Variables:
+    - m_Suffix: BuildPath
+      m_Value: ServerData/[BuildTarget]
+    - m_Suffix: LoadPath
+      m_Value: http://[PrivateIpAddress]:[HostingServicePort]

+ 8 - 0
Assets/AddressableAssetsData/ProfileDataSourceSettings.asset.meta

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

+ 8 - 0
Assets/AddressableAssetsData/iOS.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 47d02088ea1b17a4783b6fae2cbc506c
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/AddressableAssetsData/iOS/addressables_content_state.bin


+ 7 - 0
Assets/AddressableAssetsData/iOS/addressables_content_state.bin.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 2b8589bce6384044db8045e93aae7b90
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 10 - 0
Assets/AddressableAssetsData/link.xml

@@ -0,0 +1,10 @@
+<linker>
+  <assembly fullname="Unity.Addressables, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
+    <type fullname="UnityEngine.AddressableAssets.Addressables" preserve="all" />
+  </assembly>
+  <assembly fullname="Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider" preserve="all" />
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.LegacyResourcesProvider" preserve="all" />
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.SceneProvider" preserve="all" />
+  </assembly>
+</linker>

+ 7 - 0
Assets/AddressableAssetsData/link.xml.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 6b01c63b2763d9e47b6ca33c0dc8db84
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 87 - 21
Assets/BowArrow/DoubleInfraredScene/InfraredGameDouble.unity

@@ -1805,8 +1805,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: 29.692308, y: -16.5}
-  m_SizeDelta: {x: 39.384617, y: 33}
+  m_AnchoredPosition: {x: 29.995117, y: -16.5}
+  m_SizeDelta: {x: 39.292824, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &107716992
 MonoBehaviour:
@@ -4347,6 +4347,7 @@ GameObject:
   - component: {fileID: 228329868}
   - component: {fileID: 228329867}
   - component: {fileID: 228329871}
+  - component: {fileID: 228329872}
   m_Layer: 5
   m_Name: DistanceSelectView
   m_TagString: Untagged
@@ -4424,7 +4425,7 @@ MonoBehaviour:
   m_ScaleFactor: 1
   m_ReferenceResolution: {x: 1280, y: 720}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -4464,6 +4465,27 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 3abaa439cff15994799346bba0a64ed6, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+--- !u!114 &228329872
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 228329865}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 0
 --- !u!1 &232453697
 GameObject:
   m_ObjectHideFlags: 0
@@ -10801,8 +10823,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: 29.692308, y: -16.5}
-  m_SizeDelta: {x: 39.384617, y: 33}
+  m_AnchoredPosition: {x: 29.995117, y: -16.5}
+  m_SizeDelta: {x: 39.292824, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &585453275
 MonoBehaviour:
@@ -13469,8 +13491,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: 29.692308, y: -16.5}
-  m_SizeDelta: {x: 39.384617, y: 33}
+  m_AnchoredPosition: {x: 29.995117, y: -16.5}
+  m_SizeDelta: {x: 39.292824, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &745608731
 MonoBehaviour:
@@ -14264,8 +14286,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: 29.692308, y: -16.5}
-  m_SizeDelta: {x: 39.384617, y: 33}
+  m_AnchoredPosition: {x: 29.995117, y: -16.5}
+  m_SizeDelta: {x: 39.292824, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &781839819
 MonoBehaviour:
@@ -17388,7 +17410,7 @@ RectTransform:
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
   m_AnchoredPosition: {x: 0, y: 7.7}
-  m_SizeDelta: {x: 157.27454, y: 57.71543}
+  m_SizeDelta: {x: 158.36017, y: 57.62811}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &991273717
 MonoBehaviour:
@@ -18050,8 +18072,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: 35.3507, y: -34.26854}
-  m_SizeDelta: {x: 71.38461, y: 47.384617}
+  m_AnchoredPosition: {x: 35.607613, y: -33.96779}
+  m_SizeDelta: {x: 71.215225, y: 47.32064}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1017634273
 MonoBehaviour:
@@ -24201,8 +24223,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: 29.692308, y: -16.5}
-  m_SizeDelta: {x: 39.384617, y: 33}
+  m_AnchoredPosition: {x: 29.995117, y: -16.5}
+  m_SizeDelta: {x: 39.292824, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1417120762
 MonoBehaviour:
@@ -25308,8 +25330,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: 29.692308, y: -16.5}
-  m_SizeDelta: {x: 39.384617, y: 33}
+  m_AnchoredPosition: {x: 29.995117, y: -16.5}
+  m_SizeDelta: {x: 39.292824, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1483561038
 MonoBehaviour:
@@ -30825,6 +30847,7 @@ GameObject:
   - component: {fileID: 1764796841}
   - component: {fileID: 1764796840}
   - component: {fileID: 1764796843}
+  - component: {fileID: 1764796844}
   m_Layer: 0
   m_Name: GameCanvas
   m_TagString: Untagged
@@ -30896,9 +30919,9 @@ MonoBehaviour:
   m_UiScaleMode: 1
   m_ReferencePixelsPerUnit: 100
   m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 1280, y: 720}
+  m_ReferenceResolution: {x: 2532, y: 1170}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0.5
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -30948,6 +30971,27 @@ MonoBehaviour:
   btnScaleShoot2P: {fileID: 1056588267}
   btnCrosshair2P: {fileID: 1243958362}
   btnDoIdentity2P: {fileID: 265073468}
+--- !u!114 &1764796844
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1764796838}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 2532, y: 1170}
+    matchWidthOrHeight: 0.5
 --- !u!1 &1767217350
 GameObject:
   m_ObjectHideFlags: 0
@@ -32035,6 +32079,7 @@ GameObject:
   - component: {fileID: 1829528560}
   - component: {fileID: 1829528563}
   - component: {fileID: 1829528559}
+  - component: {fileID: 1829528564}
   m_Layer: 5
   m_Name: PKGameSettleView
   m_TagString: Untagged
@@ -32127,7 +32172,7 @@ MonoBehaviour:
   m_ScaleFactor: 1
   m_ReferenceResolution: {x: 1280, y: 720}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -32167,6 +32212,27 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 81f472fb7b868b34394e844273f59967, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+--- !u!114 &1829528564
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1829528556}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 0
 --- !u!1 &1844383158
 GameObject:
   m_ObjectHideFlags: 0
@@ -33271,8 +33337,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: 113.987976, y: -28.857716}
-  m_SizeDelta: {x: 87.38461, y: 57.846153}
+  m_AnchoredPosition: {x: 114.7877, y: -28.814054}
+  m_SizeDelta: {x: 87.14494, y: 57.62811}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1896393110
 MonoBehaviour:

+ 24 - 2
Assets/BowArrow/DoubleScene/Resources/DoublePKGameView.prefab

@@ -1555,6 +1555,7 @@ GameObject:
   - component: {fileID: 2120877171394070519}
   - component: {fileID: 2120877171394070518}
   - component: {fileID: 73474554106660090}
+  - component: {fileID: 1189330358708883076}
   m_Layer: 5
   m_Name: DoublePKGameView
   m_TagString: Untagged
@@ -1622,9 +1623,9 @@ MonoBehaviour:
   m_UiScaleMode: 1
   m_ReferencePixelsPerUnit: 100
   m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 1280, y: 720}
+  m_ReferenceResolution: {x: 2352, y: 1170}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0.5
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -1664,6 +1665,27 @@ MonoBehaviour:
   timeText: {fileID: 2120877170295618109}
   Battery1P: {fileID: 3751120811132684782}
   Battery2P: {fileID: 2944537274288217766}
+--- !u!114 &1189330358708883076
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2120877171394070515}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 2352, y: 1170}
+    matchWidthOrHeight: 0.5
 --- !u!1 &2120877171554691213
 GameObject:
   m_ObjectHideFlags: 0

+ 112 - 67
Assets/BowArrow/InfraredCamera/InfraredDemo.cs

@@ -54,7 +54,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
     {
         //生成一个控制台
         GameObject obj = UserPlayer.InitReturnLogReporter() as GameObject;
-        if (obj != null) {
+        if (obj != null)
+        {
             reporter = obj.GetComponent<Reporter>();
             Application.logMessageReceived += HandleLog;
             // 模拟错误日志
@@ -72,7 +73,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
         {
             mBtnSee.gameObject.SetActive(false);
         }
-        else {
+        else
+        {
             mBtnSee.interactable = false;
             mBtnSee.transform.Find("Text").GetComponent<Text>().text = TextAutoLanguage2.GetTextByKey("WaitingForInitialization"); // "等待初始化..";
         }
@@ -91,7 +93,7 @@ public class InfraredDemo : JCUnityLib.ViewBase
     }
     void OnDestroy()
     {
-        if(reporter!= null) Application.logMessageReceived -= HandleLog;
+        if (reporter != null) Application.logMessageReceived -= HandleLog;
     }
 
     void Update()
@@ -99,7 +101,7 @@ public class InfraredDemo : JCUnityLib.ViewBase
         UpdateInfraredCamera();
         //UpdateDebugScreenPoint();
 
-        if(reporter!=null) FPSText.text = "FPS:" + reporter.fps;
+        if (reporter != null) FPSText.text = "FPS:" + reporter.fps;
     }
 
     public void OnClick_See()
@@ -122,15 +124,17 @@ public class InfraredDemo : JCUnityLib.ViewBase
             mBtnSee.gameObject.SetActive(value);
         }
         updateBtnSee();
-        Action<Text> onApplyToNext = (t) => {
+        Action<Text> onApplyToNext = (t) =>
+        {
             updateBtnSee();
         };
         mBtnSee.GetComponentInChildren<TextAutoLanguage2>().onApplyToNext += onApplyToNext;
         //if (value) InitInfraredCamera();
 
         //刷新翻译的Dropdown
-        if (value) {
-            UpdateLanguage(); 
+        if (value)
+        {
+            UpdateLanguage();
             updateDropdownResolution2();
         }
 
@@ -142,10 +146,11 @@ public class InfraredDemo : JCUnityLib.ViewBase
         //    Debug.Log("[InfraredDemo] SetVisiable Function!");
         //}
     }
-    void updateBtnSee() {
+    void updateBtnSee()
+    {
         mBtnSee.GetComponentInChildren<Text>().text = _visiable ? TextAutoLanguage2.GetTextByKey("HideInterface") : TextAutoLanguage2.GetTextByKey("DebugInfrared");//"隐藏界面" : "调试红外";
     }
-    
+
 
     Text _spText;
     Vector2 _screenPoint;
@@ -229,12 +234,18 @@ public class InfraredDemo : JCUnityLib.ViewBase
     //抖动过滤值 - 6.0
     public ParamFloatValue shakeFilterValue = new ParamFloatValue("ic_shakeFilterValue2", 6.0f);
     //亮度过滤阈值  - 0.8
+
+#if UNITY_IOS
+    public ParamFloatValue infraredFileterValue = new ParamFloatValue("ic_infraredFileterValue", 0.6f);
+#else
     public ParamFloatValue infraredFileterValue = new ParamFloatValue("ic_infraredFileterValue", 0.8f);
+#endif
+
 
     //准心的偏移值
     public ParamVector2Value cameraLocationValue = new ParamVector2Value("ic_cameraLocation", Vector2.zero);
     public ParamVector2Value screenUVValue = new ParamVector2Value("ic_screenUV", Vector2.zero);
-    
+
 
 
     //线段宽度阈值
@@ -253,7 +264,7 @@ public class InfraredDemo : JCUnityLib.ViewBase
     public ParamFloatValue duckHunterLevel = new ParamFloatValue("test_duckHunterLevelValue", 1);
 
     //存储滑块信息。camera
-    public Dictionary<string ,ParamFloatValue> ParamFloatValueCameraSlider = new Dictionary<string, ParamFloatValue>();
+    public Dictionary<string, ParamFloatValue> ParamFloatValueCameraSlider = new Dictionary<string, ParamFloatValue>();
 
     public static InfraredCameraHelper infraredCameraHelper;
     public static bool running { get => infraredCameraHelper != null; }
@@ -416,7 +427,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
                         slider.value = _Value;
                         textObj.text = _Value + "";
                     }
-                    else {
+                    else
+                    {
                         //获取设置当前值
                         int _currentValue = cameraInfo.GetValue(typeStr);
                         slider.value = _currentValue;
@@ -469,7 +481,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
 
     }
 
-    void resetUVCData() {
+    void resetUVCData()
+    {
         if (currentCameraInfo == null) return;
 
         for (int i = 0; i < sliderStrArray.Length; i++)
@@ -507,7 +520,7 @@ public class InfraredDemo : JCUnityLib.ViewBase
                 Slider slider = trans.GetComponent<Slider>();
                 Text textObj = trans.Find("text").GetComponent<Text>();
                 UVCCtrlInfo _UVCCtrlInfo = currentCameraInfo.GetInfo(typeStr);
-                ParamFloatValue paramFloatValue =  ParamFloatValueCameraSlider.GetValueOrDefault(typeStr);
+                ParamFloatValue paramFloatValue = ParamFloatValueCameraSlider.GetValueOrDefault(typeStr);
                 //重置的值
                 int _defValue = _UVCCtrlInfo.def;
                 if (typeStr == "PU_BRIGHTNESS")
@@ -601,7 +614,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
         }
     }
 
-    void resetPCData() {
+    void resetPCData()
+    {
         for (int i = 0; i < sliderStrArrayPC.Length; i++)
         {
             string typeStr = sliderStrArrayPC[i];
@@ -684,7 +698,7 @@ public class InfraredDemo : JCUnityLib.ViewBase
                     //    point.x -= halfScreenWidth; // 同步到右屏坐标系
                     //}
 
-                    if (i == 0 && leftCamera != null) 
+                    if (i == 0 && leftCamera != null)
                     {
                         Ray ray1 = leftCamera.ScreenPointToRay(point);
                         Vector3 rayEndPoint1 = ray1.GetPoint(200);
@@ -726,7 +740,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
                 {
                     FindObjectOfType<InfraredScreenPositioningView>()?.SyncScreenPosition();
                 }
-                else {
+                else
+                {
                     FindObjectOfType<InfraredScreenPositioningView>()?.onReset();
                 }
             };
@@ -764,7 +779,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
     /// 初始化一些游戏配置
     /// </summary>
     /// <returns></returns>
-    IEnumerator delayInitOhterInfo(UVCManager.CameraInfo camera) {
+    IEnumerator delayInitOhterInfo(UVCManager.CameraInfo camera)
+    {
 
         //yield return new WaitForSeconds(1f);
         yield return new WaitForEndOfFrame();
@@ -834,7 +850,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
     /// 初始化时候获取设置和存储来控制显示准心
     /// </summary>
     /// <returns></returns>
-    public bool bInitCrosshairShow() {
+    public bool bInitCrosshairShow()
+    {
         return UserSettings.ins.openCrossHair && getCrosshairValue() == 1 ? true : false;
     }
 
@@ -842,11 +859,13 @@ public class InfraredDemo : JCUnityLib.ViewBase
     /// 获取弓箭准心存储值 
     /// </summary>
     /// <returns></returns>
-    public int getCrosshairValue() {
+    public int getCrosshairValue()
+    {
         return (int)crosshairValue.Get();
     }
 
-    public void setCrosshairValue(bool bshow) {
+    public void setCrosshairValue(bool bshow)
+    {
         crosshairValue.Set(bshow ? 1 : 0);
     }
 
@@ -889,7 +908,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
                 process.CallStatic("killProcess", pid);
             }
         }
-        else {
+        else
+        {
             // 获取当前应用程序的可执行文件路径
             string executablePath = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
 
@@ -903,7 +923,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
 
             // 退出当前应用程序
             Application.Quit();
-        };
+        }
+        ;
     }
 
     void UpdateInfraredCamera()
@@ -931,8 +952,10 @@ public class InfraredDemo : JCUnityLib.ViewBase
                     _cameraRender.texture = ScreenLocate.Main.OutputTextures[4];
 
                 //底图缩小的情况下。不显示适配线段,并且隐藏points
-                if (!isFullscreen) {
-                    if (showPoints) {
+                if (!isFullscreen)
+                {
+                    if (showPoints)
+                    {
                         Transform pointsTF2 = _cameraRender.transform.Find("Points");
                         for (int i = 0; i < pointsTF2.childCount; i++)
                         {
@@ -942,9 +965,9 @@ public class InfraredDemo : JCUnityLib.ViewBase
                         }
                     }
                     SetAllToggle(false);
-                } 
+                }
             }
-           
+
             //_cameraRender.SetNativeSize();
             // _MaintainAspectRatio.AdjustSize();
         }
@@ -1022,7 +1045,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
                 showPoints = true;
             }
         }
-        else {
+        else
+        {
             for (int i = 0; i < pointsTF2.childCount; i++)
             {
                 Transform pointTF = pointsTF2.GetChild(i);
@@ -1109,16 +1133,18 @@ public class InfraredDemo : JCUnityLib.ViewBase
         dropdown.AddOptions(options);
 
         // 添加监听器来处理选择事件
-        dropdown.onValueChanged.AddListener((index) => {
+        dropdown.onValueChanged.AddListener((index) =>
+        {
             OnDropdownValueChanged(index, screenQuads);
         });
 
-        if (screenQuads[0] != null || screenQuads[1] != null) 
+        if (screenQuads[0] != null || screenQuads[1] != null)
         {
             Texture texImage6 = ScreenLocate.Main.OutputTextures[5];
             if (texImage6 != null) _cameraRenderTest6.texture = texImage6;
         }
-        if (ScreenLocate.quadUnityVectorList.Count == 4) {
+        if (ScreenLocate.quadUnityVectorList.Count == 4)
+        {
             //绘制白色线段
             var lo = new Vector2(-0.5f, -0.5f);
             CurUILineGenerator.Points = new Vector2[4] {
@@ -1227,7 +1253,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
     /// 设置全部显示
     /// </summary>
     /// <param name="value"></param>
-    private void SetAllToggle(bool value) {
+    private void SetAllToggle(bool value)
+    {
         ToggleLineGenerator(CurUILineGenerator, value);
         ToggleLineGenerator(AutoUILineGenerator, value);
         ToggleLineGenerator(SemiAutoUILineGenerator, value);
@@ -1255,7 +1282,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
     /// <summary>
     /// 更新一下菜单
     /// </summary>
-    public void UpdateLanguage() {
+    public void UpdateLanguage()
+    {
         string[] _textureNames = {
             TextAutoLanguage2.GetTextByKey("ScreenAOriginal"), // "A屏幕原图"
             TextAutoLanguage2.GetTextByKey("SemiAutoSegmentB"), // "B半自动识别线段"
@@ -1269,7 +1297,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
         textureDropdown.ClearOptions();
         textureDropdown.AddOptions(new System.Collections.Generic.List<string>(textureNames));
     }
-    void initExport() {
+    void initExport()
+    {
         UpdateLanguage();
         // 添加导出选中纹理的按钮点击事件
         exportSelectedButton.onClick.AddListener(() => SaveTextureToLocal(textureDropdown.value));
@@ -1296,7 +1325,7 @@ public class InfraredDemo : JCUnityLib.ViewBase
         Texture2D[] outputTexture2D = ScreenLocate.Main.OutputTextures;
         if (outputTexture2D == null || index >= outputTexture2D.Length || outputTexture2D[index] == null)
         {
-            Debug.LogError("Invalid texture index or texture is null.index:"+ index);
+            Debug.LogError("Invalid texture index or texture is null.index:" + index);
             return;
         }
 
@@ -1338,7 +1367,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
     /// <summary>
     /// 测试效果屏幕数据初始化
     /// </summary>
-    void InitFullScreen() {
+    void InitFullScreen()
+    {
 
         if (cameraObj1 != null)
         {
@@ -1404,7 +1434,7 @@ public class InfraredDemo : JCUnityLib.ViewBase
         toggleButton.transform.parent.gameObject.SetActive(false);
         isFullscreen = false;
     }
-#endregion
+    #endregion
 
 
 
@@ -1503,7 +1533,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
             // 保存选择的分辨率到 PlayerPrefs
             resoution.Set(index);
         }
-        else if(index == 0){
+        else if (index == 0)
+        {
             //如果是0就 使用高分辨率
             infraredCameraHelper.SetHighCameraResolution();
             // 保存选择的分辨率到 PlayerPrefs
@@ -1535,7 +1566,11 @@ public class InfraredDemo : JCUnityLib.ViewBase
         SetShakeFilterValue(6);
         SetLineWidth(4);
         SetFanWidth(90);
+#if UNITY_IOS
+        SetInfraredFilterValue(0.6f);
+#else
         SetInfraredFilterValue(0.8f);
+#endif
         SetCaptureValue(30.0f);
         SetDelayValue(30.0f);
 
@@ -1543,7 +1578,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
         SetDuckLevelTest(0);
     }
 
-    public void OnClickClearAll() {
+    public void OnClickClearAll()
+    {
         PlayerPrefs.DeleteAll();
         // 保存更改
         PlayerPrefs.Save();
@@ -1582,7 +1618,7 @@ public class InfraredDemo : JCUnityLib.ViewBase
             if (BluetoothAim.ins.isMainConnectToInfraredDevice() || BluetoothAim.ins.isMainConnectToGun())
             {
                 bEnter = true;
-             
+
             }
             else
             {
@@ -1592,15 +1628,16 @@ public class InfraredDemo : JCUnityLib.ViewBase
             }
         }
 
-        if (bEnter) {
+        if (bEnter)
+        {
             ResetCenterOffset();
             ResetPositioningData();
             infraredCameraHelper.EnterScreenLocateManualAuto();
         }
-     
+
     }
 
-   public void OnClick_SetAdjustPointsOffset()
+    public void OnClick_SetAdjustPointsOffset()
     {
         //var _sl = ScreenLocate.Main;
         //var buffer = _sl.infraredSpotBuffer;
@@ -1641,7 +1678,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
     /// <summary>
     /// 设置存储的中心偏移位置
     /// </summary>
-    public void InitCenterOffset() {
+    public void InitCenterOffset()
+    {
         infraredCameraHelper.SetCenterOffset(cameraLocationValue.Get(), "CameraLocation");
         infraredCameraHelper.SetCenterOffset(screenUVValue.Get(), "ScreenUV");
     }
@@ -1650,7 +1688,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
     /// <summary>
     /// 重置中心点
     /// </summary>
-    public void ResetCenterOffset() {
+    public void ResetCenterOffset()
+    {
         infraredCameraHelper.ResetCenterOffset();
     }
     /// <summary>
@@ -1663,7 +1702,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
     /// <summary>
     /// 重置定位数据
     /// </summary>
-    public void ResetPositioningData(bool bSyncLocal = false) {
+    public void ResetPositioningData(bool bSyncLocal = false)
+    {
         infraredCameraHelper.ClearInfraredPositioningData(bSyncLocal);
     }
 
@@ -1683,10 +1723,10 @@ public class InfraredDemo : JCUnityLib.ViewBase
         _sliderDelay.transform.Find("Value").GetComponent<Text>().text = delayValue.Get().ToString("f1");
         infraredCameraHelper.SetDelay((int)delayValue.Get());
     }
-#endregion
+    #endregion
 
 
-#region 相机感光度(默认修改对比度)
+    #region 相机感光度(默认修改对比度)
     public void onSetSliderCustomValue(Slider _slider, float min = 0.0f, float max = 10.0f)
     {
         onSetSliderValue(_slider, "PU_CONTRAST", min, max);
@@ -1704,10 +1744,11 @@ public class InfraredDemo : JCUnityLib.ViewBase
     {
         onSliderEvent(value, "PU_BRIGHTNESS", min, max);
     }
-    public void onSetSliderValue(Slider _slider,string typeStr = "PU_CONTRAST", float min = 0.0f, float max = 10.0f)
+    public void onSetSliderValue(Slider _slider, string typeStr = "PU_CONTRAST", float min = 0.0f, float max = 10.0f)
     {
-        if (BluetoothWindows.IsWindows()) {
-            float v = typeStr == "PU_CONTRAST"?infraredCameraHelper.GetContrast(): infraredCameraHelper.GetBrightness();
+        if (BluetoothWindows.IsWindows())
+        {
+            float v = typeStr == "PU_CONTRAST" ? infraredCameraHelper.GetContrast() : infraredCameraHelper.GetBrightness();
             // 目标区间 [0, 10] 的边界值
             double targetMin = min;
             double targetMax = max;
@@ -1716,7 +1757,7 @@ public class InfraredDemo : JCUnityLib.ViewBase
             // 计算转换后的值
             double v2 = MapValue(v, originalMin, originalMax, targetMin, targetMax);
 
-            Debug.Log("PC获取相机的感光度 "+ typeStr + " :" + v + " = " + v2);
+            Debug.Log("PC获取相机的感光度 " + typeStr + " :" + v + " = " + v2);
             _slider.SetValueWithoutNotify((float)v2);
             return;
         }
@@ -1743,10 +1784,10 @@ public class InfraredDemo : JCUnityLib.ViewBase
         }
         else _slider.SetValueWithoutNotify(5);
     }
-   
-    public void onSliderEvent(float value, string typeStr = "PU_CONTRAST", float min = 0.0f,float max = 10.0f)
+
+    public void onSliderEvent(float value, string typeStr = "PU_CONTRAST", float min = 0.0f, float max = 10.0f)
     {
-       // string typeStr = "PU_CONTRAST";// "PU_BRIGHTNESS";
+        // string typeStr = "PU_CONTRAST";// "PU_BRIGHTNESS";
         //pc
         if (BluetoothWindows.IsWindows())
         {
@@ -1770,7 +1811,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
                 infraredCameraHelper.SetContrast(_current);
                 pcCONTRAST.Set(_current);
             }
-            else {
+            else
+            {
                 infraredCameraHelper.SetBrightness(_current);
                 pcBRIGHTNESS.Set(_current);
             }
@@ -1785,7 +1827,7 @@ public class InfraredDemo : JCUnityLib.ViewBase
             //Slider slider = transform.Find("InfraredCamera/Layout/SliderBrightness")
             //    .GetComponent<Slider>();
 
-           // UInt64 _VALUE = currentCameraInfo.GetTypeByName(typeStr);
+            // UInt64 _VALUE = currentCameraInfo.GetTypeByName(typeStr);
             Transform trans = _cameraParameterPanel.transform.Find(typeStr);
             Slider slider = trans.GetComponent<Slider>();
 
@@ -1817,10 +1859,10 @@ public class InfraredDemo : JCUnityLib.ViewBase
         // 线性插值公式
         return targetMin + (value - originalMin) * (targetMax - targetMin) / (originalMax - originalMin);
     }
-#endregion
+    #endregion
 
 
-#region 绘制线段部分
+    #region 绘制线段部分
     public void SetLineWidth(float v)
     {
         lineWidth.Set(v);
@@ -1904,7 +1946,8 @@ public class InfraredDemo : JCUnityLib.ViewBase
     /// 设置是否是单,双点模式
     /// </summary>
     /// <param name="value"></param>
-    public void SetSinglePoint(bool value) {
+    public void SetSinglePoint(bool value)
+    {
         infraredCameraHelper.SetSinglePoint(value);
         //重新设置双点数据
         InitCenterOffsets(PlayerType.FirstPlayer);
@@ -2018,7 +2061,7 @@ public class InfraredDemo : JCUnityLib.ViewBase
         _infraredFilter.transform.Find("Value").GetComponent<Text>().text = infraredFileterValue.Get().ToString("f1");
         infraredCameraHelper.SetInfraredLocateBrightnessThreshold(infraredFileterValue.Get());
     }
-#endregion
+    #endregion
     public void resetInfraredPlayerPrefs()
     {
         //测试用
@@ -2026,7 +2069,7 @@ public class InfraredDemo : JCUnityLib.ViewBase
         PlayerPrefs.DeleteKey("hideInfraredBowAndArrow");
     }
 
-#region 显示Log部分信息
+    #region 显示Log部分信息
 
     [SerializeField] Text _calibrationFixedText;
     [SerializeField] Text _cameraSizeText;
@@ -2055,11 +2098,11 @@ public class InfraredDemo : JCUnityLib.ViewBase
     {
         _quadUnityVectorListText.text = v;
     }
-#endregion
+    #endregion
+
 
-    
     #region 错误日志
-   public  void HandleLog(string logString, string stackTrace, LogType type)
+    public void HandleLog(string logString, string stackTrace, LogType type)
     {
         if (type == LogType.Exception || type == LogType.Error)
         {
@@ -2104,7 +2147,8 @@ public class ParamFloatValue
         return _value;
     }
 
-    public float GetDefault() {
+    public float GetDefault()
+    {
         return _valueDefault;
     }
 
@@ -2121,7 +2165,8 @@ public class ParamFloatValue
     /// <summary>
     /// 重置成默认值
     /// </summary>
-    public void Reset() {
+    public void Reset()
+    {
         PlayerPrefs.SetFloat(_saveKey, _valueDefault);
         PlayerPrefs.Save();
     }

+ 25 - 2
Assets/BowArrow/Resources/Prefabs/Popups/PKInviteNotice.prefab

@@ -12,6 +12,7 @@ GameObject:
   - component: {fileID: 930672997371088150}
   - component: {fileID: 930672997371088149}
   - component: {fileID: 930672997371088148}
+  - component: {fileID: 8970856035002684248}
   m_Layer: 5
   m_Name: PKInviteNotice
   m_TagString: Untagged
@@ -57,6 +58,7 @@ Canvas:
   m_OverrideSorting: 0
   m_OverridePixelPerfect: 0
   m_SortingBucketNormalizedSize: 0
+  m_VertexColorAlwaysGammaSpace: 0
   m_AdditionalShaderChannelsFlag: 0
   m_SortingLayerID: 0
   m_SortingOrder: 100
@@ -76,9 +78,9 @@ MonoBehaviour:
   m_UiScaleMode: 1
   m_ReferencePixelsPerUnit: 100
   m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 1280, y: 720}
+  m_ReferenceResolution: {x: 2352, y: 1170}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0.5
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -101,6 +103,27 @@ MonoBehaviour:
   m_BlockingMask:
     serializedVersion: 2
     m_Bits: 4294967295
+--- !u!114 &8970856035002684248
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 930672997371088147}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 2352, y: 1170}
+    matchWidthOrHeight: 0.5
 --- !u!1 &930672997541020943
 GameObject:
   m_ObjectHideFlags: 0

+ 35 - 5
Assets/BowArrow/Resources/Prefabs/Popups/PopupRoot.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:
   - {fileID: 1245839740334839049}
   m_Father: {fileID: 593522897267678622}
@@ -105,14 +106,15 @@ 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: 7444905602164988858}
   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: 111.24698, y: -35.183662}
-  m_SizeDelta: {x: 122.49396, y: 40.367325}
+  m_AnchoredPosition: {x: 113.984375, y: -36.26953}
+  m_SizeDelta: {x: 127.96875, y: 42.539062}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &7444905601117712718
 CanvasRenderer:
@@ -182,6 +184,7 @@ GameObject:
   - component: {fileID: 7444905601432461353}
   - component: {fileID: 7444905601432461352}
   - component: {fileID: 7444905601432461355}
+  - component: {fileID: 820436076057952779}
   m_Layer: 5
   m_Name: PopupRoot
   m_TagString: Untagged
@@ -199,6 +202,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: 7444905602960695816}
   - {fileID: 593522897267678622}
@@ -227,6 +231,7 @@ Canvas:
   m_OverrideSorting: 0
   m_OverridePixelPerfect: 0
   m_SortingBucketNormalizedSize: 0
+  m_VertexColorAlwaysGammaSpace: 0
   m_AdditionalShaderChannelsFlag: 0
   m_SortingLayerID: 0
   m_SortingOrder: 1000
@@ -246,9 +251,9 @@ MonoBehaviour:
   m_UiScaleMode: 1
   m_ReferencePixelsPerUnit: 100
   m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 1280, y: 720}
+  m_ReferenceResolution: {x: 2532, y: 1170}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0.5
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -271,6 +276,27 @@ MonoBehaviour:
   m_BlockingMask:
     serializedVersion: 2
     m_Bits: 4294967295
+--- !u!114 &820436076057952779
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7444905601432461354}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 2532, y: 1170}
+    matchWidthOrHeight: 0.5
 --- !u!1 &7444905602164988861
 GameObject:
   m_ObjectHideFlags: 0
@@ -302,6 +328,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: 7444905601117712707}
   m_Father: {fileID: 7444905602960695816}
@@ -310,7 +337,7 @@ RectTransform:
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 222.49396, y: 70.367325}
+  m_SizeDelta: {x: 227.96875, y: 72.53906}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &7444905602164988856
 CanvasRenderer:
@@ -460,6 +487,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: 7444905602164988858}
   m_Father: {fileID: 7444905601432461366}
@@ -496,6 +524,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: 2679604105632667801}
   m_Father: {fileID: 7444905601432461366}
@@ -534,6 +563,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: 2679604105632667801}
   m_RootOrder: 0

+ 238 - 14
Assets/BowArrow/Resources/Prefabs/Views/Home/DeviceViewInfrared.prefab

@@ -449,6 +449,7 @@ GameObject:
   - component: {fileID: 7295578844967136960}
   - component: {fileID: 6180209457509167100}
   - component: {fileID: 1554904820333096697}
+  - component: {fileID: 4470117404291567566}
   m_Layer: 5
   m_Name: ItemShow_P1
   m_TagString: Untagged
@@ -479,7 +480,7 @@ RectTransform:
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 620, y: 750}
+  m_SizeDelta: {x: 680, y: 818.4}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &6180209457509167100
 CanvasRenderer:
@@ -537,6 +538,33 @@ MonoBehaviour:
   _TextAutoLanguage2: {fileID: 4288816417670544630}
   deviceIndex: 0
   omitText: {fileID: 5895775015745707182}
+--- !u!114 &4470117404291567566
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 932955428787593421}
+  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: 310, y: -375}
+    sizeDelta: {x: 620, y: 750}
+  iPhoneLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 310, y: -375}
+    sizeDelta: {x: 620, y: 750}
+  iPadLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 310, y: -375}
+    sizeDelta: {x: 680, y: 818.4}
 --- !u!1 &1049268609651015207
 GameObject:
   m_ObjectHideFlags: 0
@@ -1240,6 +1268,7 @@ GameObject:
   - component: {fileID: 3697929722062621677}
   - component: {fileID: 5890894762981375525}
   - component: {fileID: 7107481245058256531}
+  - component: {fileID: 1077310257611460567}
   m_Layer: 5
   m_Name: ItemShow_P2
   m_TagString: Untagged
@@ -1269,8 +1298,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: 1006, y: -375}
-  m_SizeDelta: {x: 620, y: 750}
+  m_AnchoredPosition: {x: 1096, y: -409.2}
+  m_SizeDelta: {x: 680, y: 818.4}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &5890894762981375525
 CanvasRenderer:
@@ -1328,6 +1357,33 @@ MonoBehaviour:
   _TextAutoLanguage2: {fileID: 2040204180109477403}
   deviceIndex: 1
   omitText: {fileID: 8172346654568656097}
+--- !u!114 &1077310257611460567
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1757205689841235576}
+  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: 310, y: -375}
+    sizeDelta: {x: 620, y: 750}
+  iPhoneLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 310, y: -375}
+    sizeDelta: {x: 620, y: 750}
+  iPadLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 310, y: -375}
+    sizeDelta: {x: 680, y: 818.4}
 --- !u!1 &1805942828472048259
 GameObject:
   m_ObjectHideFlags: 0
@@ -1948,6 +2004,7 @@ GameObject:
   - component: {fileID: 5634259463571438615}
   - component: {fileID: 708237231529693535}
   - component: {fileID: 3690707445959305962}
+  - component: {fileID: 9087936912802257479}
   m_Layer: 5
   m_Name: line
   m_TagString: Untagged
@@ -1973,7 +2030,7 @@ RectTransform:
   m_AnchorMin: {x: 0.5, y: 1}
   m_AnchorMax: {x: 0.5, y: 1}
   m_AnchoredPosition: {x: 0, y: -540}
-  m_SizeDelta: {x: 517.5, y: 3}
+  m_SizeDelta: {x: 610, y: 3}
   m_Pivot: {x: 0.5, y: 1}
 --- !u!222 &708237231529693535
 CanvasRenderer:
@@ -2013,6 +2070,33 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!114 &9087936912802257479
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2389249929634682338}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 0, y: -540}
+    sizeDelta: {x: 517.5, y: 3}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 0, y: -540}
+    sizeDelta: {x: 517.5, y: 3}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 0, y: -540}
+    sizeDelta: {x: 610, y: 3}
 --- !u!1 &2519187698631005381
 GameObject:
   m_ObjectHideFlags: 0
@@ -2120,6 +2204,7 @@ GameObject:
   - component: {fileID: 5189773929950453238}
   - component: {fileID: 8420911695555603658}
   - component: {fileID: 6690931337291462873}
+  - component: {fileID: 2570843068708138978}
   m_Layer: 5
   m_Name: line
   m_TagString: Untagged
@@ -2145,7 +2230,7 @@ RectTransform:
   m_AnchorMin: {x: 0.5, y: 1}
   m_AnchorMax: {x: 0.5, y: 1}
   m_AnchoredPosition: {x: 0, y: -540}
-  m_SizeDelta: {x: 517.5, y: 3}
+  m_SizeDelta: {x: 610, y: 3}
   m_Pivot: {x: 0.5, y: 1}
 --- !u!222 &8420911695555603658
 CanvasRenderer:
@@ -2185,6 +2270,33 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!114 &2570843068708138978
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2556358481352995298}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 0, y: -540}
+    sizeDelta: {x: 517.5, y: 3}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 0, y: -540}
+    sizeDelta: {x: 517.5, y: 3}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 0, y: -540}
+    sizeDelta: {x: 610, y: 3}
 --- !u!1 &2815813948246038557
 GameObject:
   m_ObjectHideFlags: 0
@@ -5146,6 +5258,7 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 5558585036946217141}
+  - component: {fileID: 3230189934581960735}
   m_Layer: 0
   m_Name: title
   m_TagString: Untagged
@@ -5170,11 +5283,38 @@ RectTransform:
   m_Father: {fileID: 8677266362471276963}
   m_RootOrder: 1
   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: -808, y: 460}
-  m_SizeDelta: {x: 600, y: 73.30005}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: -808, y: -190}
+  m_SizeDelta: {x: 600, y: 400}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &3230189934581960735
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7222998956102884019}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 400}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 400}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: -808, y: -190}
+    sizeDelta: {x: 600, y: 400}
 --- !u!1 &7332025093689908053
 GameObject:
   m_ObjectHideFlags: 0
@@ -5954,6 +6094,7 @@ GameObject:
   - component: {fileID: 4242660785307798858}
   - component: {fileID: 239668462392821851}
   - component: {fileID: 2399535694195859652}
+  - component: {fileID: 2837553587351760279}
   m_Layer: 5
   m_Name: content
   m_TagString: Untagged
@@ -5981,7 +6122,7 @@ RectTransform:
   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: 9, y: -38}
+  m_AnchoredPosition: {x: -18, y: -95}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &239668462392821851
@@ -6024,6 +6165,33 @@ MonoBehaviour:
   m_ChildScaleWidth: 0
   m_ChildScaleHeight: 0
   m_ReverseArrangement: 0
+--- !u!114 &2837553587351760279
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8032115205062346999}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 9, y: -38}
+    sizeDelta: {x: 1226, y: 750}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 9, y: -38}
+    sizeDelta: {x: 1226, y: 750}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 9, y: -95}
+    sizeDelta: {x: 1226, y: 750}
 --- !u!1 &8035895859342677344
 GameObject:
   m_ObjectHideFlags: 0
@@ -6961,6 +7129,7 @@ GameObject:
   - component: {fileID: 2238896333236035798}
   - component: {fileID: 5243982012174841481}
   - component: {fileID: 4500974771575028863}
+  - component: {fileID: 4590829288691517953}
   m_Layer: 0
   m_Name: Back
   m_TagString: Untagged
@@ -6985,9 +7154,9 @@ RectTransform:
   m_Father: {fileID: 8677266362471276963}
   m_RootOrder: 2
   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: 1009, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: 1009, y: -190}
   m_SizeDelta: {x: 290, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &5847324503461343397
@@ -7107,6 +7276,33 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!114 &4590829288691517953
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266361696092475}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 1009, y: -190}
+    sizeDelta: {x: 290, y: 50}
 --- !u!1 &8677266362401961737
 GameObject:
   m_ObjectHideFlags: 0
@@ -8135,6 +8331,7 @@ GameObject:
   m_Component:
   - component: {fileID: 8146888902267481947}
   - component: {fileID: 5092413145572670187}
+  - component: {fileID: 6649244873085326065}
   m_Layer: 5
   m_Name: modalButtons
   m_TagString: Untagged
@@ -8164,7 +8361,7 @@ RectTransform:
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 530, y: 750}
+  m_SizeDelta: {x: 577.3699, y: 818.4}
   m_Pivot: {x: 1, y: 0.5}
 --- !u!222 &5092413145572670187
 CanvasRenderer:
@@ -8174,3 +8371,30 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 9222168600980044169}
   m_CullTransparentMesh: 0
+--- !u!114 &6649244873085326065
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9222168600980044169}
+  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: 1326, y: -409.2}
+    sizeDelta: {x: 530, y: 750}
+  iPhoneLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 1326, y: -409.2}
+    sizeDelta: {x: 530, y: 750}
+  iPadLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 1326, y: -409.2}
+    sizeDelta: {x: 577.3699, y: 818.4}

+ 63 - 12
Assets/BowArrow/Resources/Prefabs/Views/Home/ModeSelectView.prefab

@@ -1704,6 +1704,7 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 5558585036946217141}
+  - component: {fileID: 1825873102400738494}
   m_Layer: 0
   m_Name: title
   m_TagString: Untagged
@@ -1727,11 +1728,38 @@ RectTransform:
   m_Father: {fileID: 8677266362471276963}
   m_RootOrder: 1
   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: -808, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: -808, y: -190}
   m_SizeDelta: {x: 600, y: 73.329956}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1825873102400738494
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7222998956102884019}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 73.329956}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 73.329956}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: -808, y: -190}
+    sizeDelta: {x: 600, y: 73.329956}
 --- !u!1 &7360663831917119848
 GameObject:
   m_ObjectHideFlags: 0
@@ -2323,6 +2351,7 @@ GameObject:
   - component: {fileID: 8677266361696092476}
   - component: {fileID: 5847324503461343397}
   - component: {fileID: 7587321336244348855}
+  - component: {fileID: 7807664799582448275}
   m_Layer: 0
   m_Name: Back
   m_TagString: Untagged
@@ -2347,9 +2376,9 @@ RectTransform:
   m_Father: {fileID: 8677266362471276963}
   m_RootOrder: 2
   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: 1009, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: 1009, y: -190}
   m_SizeDelta: {x: 290, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &5847324503461343397
@@ -2431,6 +2460,33 @@ MonoBehaviour:
   OnEndEvent:
     m_PersistentCalls:
       m_Calls: []
+--- !u!114 &7807664799582448275
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266361696092475}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 1009, y: -190}
+    sizeDelta: {x: 290, y: 50}
 --- !u!1 &8677266362401961737
 GameObject:
   m_ObjectHideFlags: 0
@@ -2650,11 +2706,6 @@ MonoBehaviour:
   - {fileID: 5335974329003615350}
   - {fileID: 8086339659889037025}
   - {fileID: 8828427261806947588}
-  buttons:
-  - {fileID: 5918711544913229050}
-  - {fileID: 5335974329003615350}
-  - {fileID: 8086339659889037025}
-  - {fileID: 8828427261806947588}
 --- !u!1 &8677266362914771145
 GameObject:
   m_ObjectHideFlags: 0
@@ -2683,7 +2734,7 @@ RectTransform:
   m_GameObject: {fileID: 8677266362914771145}
   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_LocalScale: {x: 1.6222848, y: 1.6222848, z: 1.6222848}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8677266362471276963}

+ 63 - 7
Assets/BowArrow/Resources/Prefabs/Views/Home/SmartArcheryView.prefab

@@ -964,6 +964,7 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 5558585036946217141}
+  - component: {fileID: 2483384040938309337}
   m_Layer: 0
   m_Name: title
   m_TagString: Untagged
@@ -988,11 +989,38 @@ RectTransform:
   m_Father: {fileID: 8677266362471276963}
   m_RootOrder: 1
   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: -808, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: -808, y: -190}
   m_SizeDelta: {x: 600, y: 73.30005}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2483384040938309337
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7222998956102884019}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 73.30005}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 73.30005}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: -808, y: -190}
+    sizeDelta: {x: 600, y: 73.30005}
 --- !u!1 &7737876043265953152
 GameObject:
   m_ObjectHideFlags: 0
@@ -1238,6 +1266,7 @@ GameObject:
   - component: {fileID: 5847324503461343397}
   - component: {fileID: 859834719340558410}
   - component: {fileID: 931663663287474085}
+  - component: {fileID: 1599100071882912681}
   m_Layer: 0
   m_Name: Back
   m_TagString: Untagged
@@ -1262,9 +1291,9 @@ RectTransform:
   m_Father: {fileID: 8677266362471276963}
   m_RootOrder: 2
   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: 1009, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: 1009, y: -190}
   m_SizeDelta: {x: 290, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &5847324503461343397
@@ -1361,6 +1390,33 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!114 &1599100071882912681
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266361696092475}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 1009, y: -190}
+    sizeDelta: {x: 290, y: 50}
 --- !u!1 &8677266362401961737
 GameObject:
   m_ObjectHideFlags: 0
@@ -1610,7 +1666,7 @@ RectTransform:
   m_GameObject: {fileID: 8677266362914771145}
   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_LocalScale: {x: 1.6222848, y: 1.6222848, z: 1.6222848}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8677266362471276963}

+ 63 - 7
Assets/BowArrow/Resources/Prefabs/Views/Home/SmartGunView.prefab

@@ -575,6 +575,7 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 5558585036946217141}
+  - component: {fileID: 2587538563825044827}
   m_Layer: 0
   m_Name: title
   m_TagString: Untagged
@@ -599,11 +600,38 @@ RectTransform:
   m_Father: {fileID: 8677266362471276963}
   m_RootOrder: 1
   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: -808, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: -808, y: -190}
   m_SizeDelta: {x: 600, y: 73.30005}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2587538563825044827
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7222998956102884019}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 73.30005}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 73.30005}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: -808, y: -190}
+    sizeDelta: {x: 600, y: 73.30005}
 --- !u!1 &7360663831917119848
 GameObject:
   m_ObjectHideFlags: 0
@@ -772,6 +800,7 @@ GameObject:
   - component: {fileID: 5847324503461343397}
   - component: {fileID: 859834719340558410}
   - component: {fileID: 931663663287474085}
+  - component: {fileID: 3907767001549336826}
   m_Layer: 0
   m_Name: Back
   m_TagString: Untagged
@@ -796,9 +825,9 @@ RectTransform:
   m_Father: {fileID: 8677266362471276963}
   m_RootOrder: 2
   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: 1009, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: 1009, y: -190}
   m_SizeDelta: {x: 290, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &5847324503461343397
@@ -895,6 +924,33 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!114 &3907767001549336826
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8677266361696092475}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 1009, y: -190}
+    sizeDelta: {x: 290, y: 50}
 --- !u!1 &8677266362401961737
 GameObject:
   m_ObjectHideFlags: 0
@@ -1143,7 +1199,7 @@ RectTransform:
   m_GameObject: {fileID: 8677266362914771145}
   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_LocalScale: {x: 1.6222848, y: 1.6222848, z: 1.6222848}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8677266362471276963}

+ 24 - 2
Assets/BowArrow/Resources/Prefabs/Views/PKGameView.prefab

@@ -1475,6 +1475,7 @@ GameObject:
   - component: {fileID: 2120877171394070519}
   - component: {fileID: 2120877171394070518}
   - component: {fileID: 2120877171394070516}
+  - component: {fileID: 4819371740114590460}
   m_Layer: 5
   m_Name: PKGameView
   m_TagString: Untagged
@@ -1542,9 +1543,9 @@ MonoBehaviour:
   m_UiScaleMode: 1
   m_ReferencePixelsPerUnit: 100
   m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 1280, y: 720}
+  m_ReferenceResolution: {x: 2352, y: 1170}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0.5
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -1584,6 +1585,27 @@ MonoBehaviour:
   - {fileID: 2120877171312960331}
   - {fileID: 6678106534529067554}
   - {fileID: 2120877170295618109}
+--- !u!114 &4819371740114590460
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2120877171394070515}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 2352, y: 1170}
+    matchWidthOrHeight: 0.5
 --- !u!1 &2120877171554691213
 GameObject:
   m_ObjectHideFlags: 0

+ 63 - 6
Assets/BowArrow/Resources/Prefabs/Views/PKMatchingView.prefab

@@ -257,6 +257,7 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 1807429016285992687}
+  - component: {fileID: 352458464136833998}
   m_Layer: 0
   m_Name: title
   m_TagString: Untagged
@@ -280,11 +281,38 @@ RectTransform:
   m_Father: {fileID: 8849455052383709944}
   m_RootOrder: 1
   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: -808, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: -808, y: -190}
   m_SizeDelta: {x: 600, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &352458464136833998
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5241530848727231948}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 50}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 50}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: -808, y: -190}
+    sizeDelta: {x: 600, y: 50}
 --- !u!1 &8849455050966853540
 GameObject:
   m_ObjectHideFlags: 0
@@ -1628,6 +1656,7 @@ Canvas:
   m_OverrideSorting: 0
   m_OverridePixelPerfect: 0
   m_SortingBucketNormalizedSize: 0
+  m_VertexColorAlwaysGammaSpace: 0
   m_AdditionalShaderChannelsFlag: 0
   m_SortingLayerID: 0
   m_SortingOrder: 15
@@ -2003,6 +2032,7 @@ GameObject:
   - component: {fileID: 8849455052753462229}
   - component: {fileID: 3450648541768524218}
   - component: {fileID: 5803268590297658906}
+  - component: {fileID: 4113031940684330506}
   m_Layer: 0
   m_Name: Back
   m_TagString: Untagged
@@ -2027,9 +2057,9 @@ RectTransform:
   m_Father: {fileID: 8849455052383709944}
   m_RootOrder: 2
   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: 1009, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: 1009, y: -190}
   m_SizeDelta: {x: 290, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &3450648541768524218
@@ -2111,6 +2141,33 @@ MonoBehaviour:
   OnEndEvent:
     m_PersistentCalls:
       m_Calls: []
+--- !u!114 &4113031940684330506
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8849455052753462230}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 1009, y: -190}
+    sizeDelta: {x: 290, y: 50}
 --- !u!1 &8849455052806874086
 GameObject:
   m_ObjectHideFlags: 0

+ 23 - 1
Assets/BowArrow/Resources/Prefabs/Views/TimeLimitGameDistanceSelectView.prefab

@@ -426,6 +426,7 @@ GameObject:
   - component: {fileID: 4426387084030329119}
   - component: {fileID: 4426387084030329091}
   - component: {fileID: 426918335298993}
+  - component: {fileID: 4207095065724798614}
   m_Layer: 5
   m_Name: TimeLimitGameDistanceSelectView
   m_TagString: Untagged
@@ -495,7 +496,7 @@ MonoBehaviour:
   m_ScaleFactor: 1
   m_ReferenceResolution: {x: 1280, y: 720}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -543,6 +544,27 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   buttons: []
+--- !u!114 &4207095065724798614
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4426387084030329118}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 0
 --- !u!1 &4426387084049413462
 GameObject:
   m_ObjectHideFlags: 0

+ 31 - 9
Assets/BowArrow/Resources/Prefabs/Views/TimeLimitGameSettleView.prefab

@@ -629,6 +629,7 @@ GameObject:
   - component: {fileID: 3829421759520498772}
   - component: {fileID: 7513718634091623890}
   - component: {fileID: 8544657246554375789}
+  - component: {fileID: 7533115142227387559}
   m_Layer: 5
   m_Name: TimeLimitGameSettleView
   m_TagString: Untagged
@@ -704,7 +705,7 @@ MonoBehaviour:
   m_ScaleFactor: 1
   m_ReferenceResolution: {x: 1280, y: 720}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -755,6 +756,27 @@ MonoBehaviour:
   buttons:
   - {fileID: 6677380829209997352}
   - {fileID: 4313400893094234830}
+--- !u!114 &7533115142227387559
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3829421759520498773}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 0
 --- !u!1 &3860576517953394078
 GameObject:
   m_ObjectHideFlags: 0
@@ -793,8 +815,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: 35.692307, y: -34.153847}
-  m_SizeDelta: {x: 71.38461, y: 0}
+  m_AnchoredPosition: {x: 35.859375, y: -34.628906}
+  m_SizeDelta: {x: 71.215225, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &1584491533125695203
 CanvasRenderer:
@@ -997,8 +1019,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: 115.07692, y: -28.923077}
-  m_SizeDelta: {x: 87.38461, y: 0}
+  m_AnchoredPosition: {x: 115.66406, y: -29.179688}
+  m_SizeDelta: {x: 87.14494, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &5393253313812614068
 CanvasRenderer:
@@ -1647,8 +1669,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: 34.46154, y: -19.692308}
-  m_SizeDelta: {x: 68.92308, y: 0}
+  m_AnchoredPosition: {x: 34.98047, y: -19.863281}
+  m_SizeDelta: {x: 70.27818, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &2732726379489701053
 CanvasRenderer:
@@ -1758,8 +1780,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: 85.30769, y: -19.692308}
-  m_SizeDelta: {x: 22.76923, y: 0}
+  m_AnchoredPosition: {x: 86.38672, y: -19.863281}
+  m_SizeDelta: {x: 22.957539, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &199998092357563418
 CanvasRenderer:

+ 53 - 3
Assets/BowArrow/Resources/Prefabs/Views/TimeLimitGameView.prefab

@@ -612,6 +612,7 @@ GameObject:
   - component: {fileID: 8253119064957421752}
   - component: {fileID: 8253119064957421758}
   - component: {fileID: 8253119064957421753}
+  - component: {fileID: 6471070877426448144}
   m_Layer: 5
   m_Name: TimeBG
   m_TagString: Untagged
@@ -637,7 +638,7 @@ RectTransform:
   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: 295}
+  m_AnchoredPosition: {x: 0, y: 600}
   m_SizeDelta: {x: 119, y: 46}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &8253119064957421758
@@ -678,6 +679,33 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!114 &6471070877426448144
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8253119064957421755}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 295}
+    sizeDelta: {x: 119, y: 46}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 295}
+    sizeDelta: {x: 119, y: 46}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 600}
+    sizeDelta: {x: 119, y: 46}
 --- !u!1 &8253119065230897574
 GameObject:
   m_ObjectHideFlags: 0
@@ -691,6 +719,7 @@ GameObject:
   - component: {fileID: 8253119065230897573}
   - component: {fileID: 8253119065230897572}
   - component: {fileID: 8253119065230897592}
+  - component: {fileID: 55366157410903177}
   m_Layer: 5
   m_Name: TimeLimitGameView
   m_TagString: Untagged
@@ -758,9 +787,9 @@ MonoBehaviour:
   m_UiScaleMode: 1
   m_ReferencePixelsPerUnit: 100
   m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 1280, y: 720}
+  m_ReferenceResolution: {x: 2352, y: 1170}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0.5
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -799,6 +828,27 @@ MonoBehaviour:
   highestScoreTxt: {fileID: 8169147450205014220}
   currentScoreTxt: {fileID: 3917169569503660400}
   timeTxt: {fileID: 8253119065852609745}
+--- !u!114 &55366157410903177
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8253119065230897574}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 2352, y: 1170}
+    matchWidthOrHeight: 0.5
 --- !u!1 &8253119065575480668
 GameObject:
   m_ObjectHideFlags: 0

+ 89 - 5
Assets/BowArrow/Resources/Textures/GameIcon/Prefabs/Views/Home/HomeView.prefab

@@ -4834,8 +4834,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: 16, y: -20}
-  m_SizeDelta: {x: 32, y: 38}
+  m_AnchoredPosition: {x: 15.755491, y: -20}
+  m_SizeDelta: {x: 31.510983, y: 38}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &5099759915330397004
 CanvasRenderer:
@@ -8989,6 +8989,7 @@ GameObject:
   - component: {fileID: 4900885815709082620}
   - component: {fileID: 1274929365206349517}
   - component: {fileID: 2003854950683551590}
+  - component: {fileID: 6685677822314011807}
   m_Layer: 5
   m_Name: bottomBarView
   m_TagString: Untagged
@@ -9020,7 +9021,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 0}
-  m_AnchoredPosition: {x: -696, y: 252}
+  m_AnchoredPosition: {x: -696, y: 350}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 1, y: 1}
 --- !u!114 &4900885815709082620
@@ -9075,6 +9076,33 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 2
   m_VerticalFit: 2
+--- !u!114 &6685677822314011807
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7143410646340839466}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0, y: 0}
+    anchorMax: {x: 1, y: 0}
+    anchoredPosition: {x: -696, y: 252}
+    sizeDelta: {x: -1697, y: 123}
+  iPhoneLayout:
+    anchorMin: {x: 0, y: 0}
+    anchorMax: {x: 1, y: 0}
+    anchoredPosition: {x: -696, y: 252}
+    sizeDelta: {x: -1697, y: 123}
+  iPadLayout:
+    anchorMin: {x: 0, y: 0}
+    anchorMax: {x: 1, y: 0}
+    anchoredPosition: {x: -696, y: 350}
+    sizeDelta: {x: -1697, y: 123}
 --- !u!1 &7182223867882892694
 GameObject:
   m_ObjectHideFlags: 0
@@ -9088,6 +9116,7 @@ GameObject:
   - component: {fileID: 5919385858652433058}
   - component: {fileID: 3577033952502524492}
   - component: {fileID: 125990134998578575}
+  - component: {fileID: 4868027848553873471}
   m_Layer: 5
   m_Name: currentTime
   m_TagString: Untagged
@@ -9112,7 +9141,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 1, y: 1}
   m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: -120, y: -103}
+  m_AnchoredPosition: {x: -120, y: -166}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 1, y: 1}
 --- !u!222 &7732603048965957667
@@ -9183,6 +9212,33 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 2
   m_VerticalFit: 2
+--- !u!114 &4868027848553873471
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7182223867882892694}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 1, y: 1}
+    anchorMax: {x: 1, y: 1}
+    anchoredPosition: {x: -120, y: -103}
+    sizeDelta: {x: 226.13763, y: 32.437775}
+  iPhoneLayout:
+    anchorMin: {x: 1, y: 1}
+    anchorMax: {x: 1, y: 1}
+    anchoredPosition: {x: -120, y: -103}
+    sizeDelta: {x: 226.13763, y: 32.437775}
+  iPadLayout:
+    anchorMin: {x: 1, y: 1}
+    anchorMax: {x: 1, y: 1}
+    anchoredPosition: {x: -120, y: -160}
+    sizeDelta: {x: 226.13763, y: 32.437775}
 --- !u!1 &7407283733132541178
 GameObject:
   m_ObjectHideFlags: 0
@@ -9347,6 +9403,7 @@ GameObject:
   m_Component:
   - component: {fileID: 190124190528749874}
   - component: {fileID: 5251867793821932507}
+  - component: {fileID: 316007436825853341}
   m_Layer: 0
   m_Name: UserInfo
   m_TagString: Untagged
@@ -9375,7 +9432,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: 145, y: -130}
+  m_AnchoredPosition: {x: 145, y: -190}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0, y: 1}
 --- !u!114 &5251867793821932507
@@ -9392,6 +9449,33 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 2
   m_VerticalFit: 2
+--- !u!114 &316007436825853341
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7499085999201143821}
+  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: 145, y: -130}
+    sizeDelta: {x: 0, y: 0}
+  iPhoneLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 145, y: -130}
+    sizeDelta: {x: 0, y: 0}
+  iPadLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 145, y: -190}
+    sizeDelta: {x: 0, y: 0}
 --- !u!1 &7617334959610815547
 GameObject:
   m_ObjectHideFlags: 0

+ 122 - 10
Assets/BowArrow/Resources/Textures/GameIcon/Prefabs/Views/Home/PKMatchView.prefab

@@ -105,6 +105,7 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 7925811600837882785}
+  - component: {fileID: 4690363236803829613}
   m_Layer: 0
   m_Name: title (1)
   m_TagString: Untagged
@@ -128,11 +129,38 @@ RectTransform:
   m_Father: {fileID: 4672314268748912425}
   m_RootOrder: 3
   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: -808, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: -808, y: -190}
   m_SizeDelta: {x: 600, y: 40}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &4690363236803829613
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1278410012827994757}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 40}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 40}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: -808, y: -190}
+    sizeDelta: {x: 600, y: 40}
 --- !u!1 &1368934892712672271
 GameObject:
   m_ObjectHideFlags: 0
@@ -144,6 +172,7 @@ GameObject:
   - component: {fileID: 4837503175715193756}
   - component: {fileID: 9059739630350976077}
   - component: {fileID: 5770903893858727593}
+  - component: {fileID: 8763862718295572651}
   m_Layer: 0
   m_Name: Back (1)
   m_TagString: Untagged
@@ -168,9 +197,9 @@ RectTransform:
   m_Father: {fileID: 4672314268748912425}
   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: 1009, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: 1009, y: -190}
   m_SizeDelta: {x: 290, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &9059739630350976077
@@ -252,6 +281,33 @@ MonoBehaviour:
   OnEndEvent:
     m_PersistentCalls:
       m_Calls: []
+--- !u!114 &8763862718295572651
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1368934892712672271}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 1009, y: -190}
+    sizeDelta: {x: 290, y: 50}
 --- !u!1 &1669443614924306429
 GameObject:
   m_ObjectHideFlags: 0
@@ -263,6 +319,7 @@ GameObject:
   - component: {fileID: 7976559821232684265}
   - component: {fileID: 2102788808196596608}
   - component: {fileID: 6017149831869335049}
+  - component: {fileID: 8033973611371766782}
   m_Layer: 5
   m_Name: PanelLeft
   m_TagString: Untagged
@@ -329,6 +386,32 @@ MonoBehaviour:
   m_FillOrigin: 0
   m_UseSpriteMesh: 0
   m_PixelsPerUnitMultiplier: 1
+--- !u!114 &8033973611371766782
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1669443614924306429}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 4
+  m_Spacing: 0
+  m_ChildForceExpandWidth: 0
+  m_ChildForceExpandHeight: 0
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
 --- !u!1 &1764228811883129033
 GameObject:
   m_ObjectHideFlags: 0
@@ -1166,9 +1249,9 @@ RectTransform:
   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: -187.75}
-  m_SizeDelta: {x: 0, y: -444.5}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 550, y: 388}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &216639655723583921
 CanvasRenderer:
@@ -1554,6 +1637,7 @@ Canvas:
   m_OverrideSorting: 0
   m_OverridePixelPerfect: 0
   m_SortingBucketNormalizedSize: 0
+  m_VertexColorAlwaysGammaSpace: 0
   m_AdditionalShaderChannelsFlag: 0
   m_SortingLayerID: 0
   m_SortingOrder: 5
@@ -3208,6 +3292,7 @@ GameObject:
   - component: {fileID: 4672314269773115054}
   - component: {fileID: 4672314269773115055}
   - component: {fileID: 4672314269773115052}
+  - component: {fileID: 2795631694668479814}
   m_Layer: 5
   m_Name: BtnMatch
   m_TagString: Untagged
@@ -3233,7 +3318,7 @@ RectTransform:
   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: -21, y: -436}
+  m_AnchoredPosition: {x: -21, y: -520}
   m_SizeDelta: {x: 403.8, y: 90.8}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &4672314269773115054
@@ -3318,6 +3403,33 @@ MonoBehaviour:
   m_OnClick:
     m_PersistentCalls:
       m_Calls: []
+--- !u!114 &2795631694668479814
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4672314269773115050}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -21, y: -436}
+    sizeDelta: {x: 403.8, y: 90.8}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -21, y: -436}
+    sizeDelta: {x: 403.8, y: 90.8}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -21, y: -520}
+    sizeDelta: {x: 403.8, y: 90.8}
 --- !u!1 &4672314269879537829
 GameObject:
   m_ObjectHideFlags: 0

+ 92 - 7
Assets/BowArrow/Resources/Textures/GameIcon/Prefabs/Views/Home/RoleSelectView.prefab

@@ -102,6 +102,7 @@ GameObject:
   - component: {fileID: 2271556579277350283}
   - component: {fileID: 4518461987977483938}
   - component: {fileID: 7381694357288615278}
+  - component: {fileID: 6377706194538703125}
   m_Layer: 0
   m_Name: Back
   m_TagString: Untagged
@@ -126,9 +127,9 @@ RectTransform:
   m_Father: {fileID: 4507770291199562698}
   m_RootOrder: 2
   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: 1009, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: 1009, y: -190}
   m_SizeDelta: {x: 290, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &4518461987977483938
@@ -210,6 +211,33 @@ MonoBehaviour:
   OnEndEvent:
     m_PersistentCalls:
       m_Calls: []
+--- !u!114 &6377706194538703125
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3061568478711900722}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 1009, y: -190}
+    sizeDelta: {x: 290, y: 50}
 --- !u!1 &4488298387908185532
 GameObject:
   m_ObjectHideFlags: 0
@@ -389,6 +417,7 @@ GameObject:
   - component: {fileID: 4507770289858357973}
   - component: {fileID: 4507770289858357970}
   - component: {fileID: 4507770289858357971}
+  - component: {fileID: 8237154647627567360}
   m_Layer: 5
   m_Name: BtnStart
   m_TagString: Untagged
@@ -414,7 +443,7 @@ RectTransform:
   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: -453}
+  m_AnchoredPosition: {x: 0, y: -520}
   m_SizeDelta: {x: 441.1, y: 101.9}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &4507770289858357973
@@ -511,6 +540,33 @@ MonoBehaviour:
           m_StringArgument: 
           m_BoolArgument: 0
         m_CallState: 2
+--- !u!114 &8237154647627567360
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4507770289858357969}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: -453}
+    sizeDelta: {x: 441.1, y: 101.9}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: -453}
+    sizeDelta: {x: 441.1, y: 101.9}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: -520}
+    sizeDelta: {x: 441.1, y: 101.9}
 --- !u!1 &4507770290061189277
 GameObject:
   m_ObjectHideFlags: 0
@@ -1415,6 +1471,7 @@ Canvas:
   m_OverrideSorting: 0
   m_OverridePixelPerfect: 0
   m_SortingBucketNormalizedSize: 0
+  m_VertexColorAlwaysGammaSpace: 0
   m_AdditionalShaderChannelsFlag: 0
   m_SortingLayerID: 0
   m_SortingOrder: 3
@@ -2337,6 +2394,7 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 8465568281239410559}
+  - component: {fileID: 1226549453096569362}
   m_Layer: 0
   m_Name: title
   m_TagString: Untagged
@@ -2360,11 +2418,38 @@ RectTransform:
   m_Father: {fileID: 4507770291199562698}
   m_RootOrder: 1
   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: -808, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: -808, y: -190}
   m_SizeDelta: {x: 600, y: 73.329956}
   m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1226549453096569362
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7933119558730839000}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 73.329956}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 73.329956}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: -808, y: -190}
+    sizeDelta: {x: 600, y: 73.329956}
 --- !u!1 &9219350960200539855
 GameObject:
   m_ObjectHideFlags: 0

+ 130 - 22
Assets/BowArrow/Scenes/Game.unity

@@ -569,8 +569,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: 29.692308, y: -16.5}
-  m_SizeDelta: {x: 39.384617, y: 33}
+  m_AnchoredPosition: {x: 29.63651, y: -16.5}
+  m_SizeDelta: {x: 39.27302, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &54381832
 MonoBehaviour:
@@ -3479,7 +3479,7 @@ RectTransform:
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
   m_AnchoredPosition: {x: 0, y: -35}
-  m_SizeDelta: {x: 98.76923, y: 33}
+  m_SizeDelta: {x: 98.54604, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &308687317
 MonoBehaviour:
@@ -3919,6 +3919,7 @@ GameObject:
   - component: {fileID: 322948731}
   - component: {fileID: 322948733}
   - component: {fileID: 322948732}
+  - component: {fileID: 322948734}
   m_Layer: 5
   m_Name: Button4
   m_TagString: Untagged
@@ -3945,7 +3946,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: 64}
+  m_AnchoredPosition: {x: -40, y: 350}
   m_SizeDelta: {x: 120, y: 120}
   m_Pivot: {x: 1, y: 0}
 --- !u!114 &322948732
@@ -4000,6 +4001,33 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 322948730}
   m_CullTransparentMesh: 1
+--- !u!114 &322948734
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 322948730}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 1, y: 0}
+    anchorMax: {x: 1, y: 0}
+    anchoredPosition: {x: -40, y: 64}
+    sizeDelta: {x: 120, y: 120}
+  iPhoneLayout:
+    anchorMin: {x: 1, y: 0}
+    anchorMax: {x: 1, y: 0}
+    anchoredPosition: {x: -40, y: 64}
+    sizeDelta: {x: 120, y: 120}
+  iPadLayout:
+    anchorMin: {x: 1, y: 0}
+    anchorMax: {x: 1, y: 0}
+    anchoredPosition: {x: -40, y: 350}
+    sizeDelta: {x: 120, y: 120}
 --- !u!1 &341882859
 GameObject:
   m_ObjectHideFlags: 0
@@ -6140,8 +6168,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: 30, y: -16.5}
-  m_SizeDelta: {x: 40, y: 33}
+  m_AnchoredPosition: {x: 29.63651, y: -16.5}
+  m_SizeDelta: {x: 39.27302, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &589339043
 MonoBehaviour:
@@ -7690,8 +7718,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: 30, y: -16.5}
-  m_SizeDelta: {x: 40, y: 33}
+  m_AnchoredPosition: {x: 29.63651, y: -16.5}
+  m_SizeDelta: {x: 39.27302, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &694545845
 MonoBehaviour:
@@ -8010,6 +8038,7 @@ GameObject:
   - component: {fileID: 725327533}
   - component: {fileID: 725327535}
   - component: {fileID: 725327534}
+  - component: {fileID: 725327536}
   m_Layer: 5
   m_Name: Button6
   m_TagString: Untagged
@@ -8036,7 +8065,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: 24}
+  m_AnchoredPosition: {x: -40, y: 324}
   m_SizeDelta: {x: 120, y: 120}
   m_Pivot: {x: 1, y: 0}
 --- !u!114 &725327534
@@ -8091,6 +8120,33 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 725327532}
   m_CullTransparentMesh: 1
+--- !u!114 &725327536
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 725327532}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 1, y: 0}
+    anchorMax: {x: 1, y: 0}
+    anchoredPosition: {x: -40, y: 24}
+    sizeDelta: {x: 120, y: 120}
+  iPhoneLayout:
+    anchorMin: {x: 1, y: 0}
+    anchorMax: {x: 1, y: 0}
+    anchoredPosition: {x: -40, y: 24}
+    sizeDelta: {x: 120, y: 120}
+  iPadLayout:
+    anchorMin: {x: 1, y: 0}
+    anchorMax: {x: 1, y: 0}
+    anchoredPosition: {x: -40, y: 324}
+    sizeDelta: {x: 120, y: 120}
 --- !u!1 &732849660
 GameObject:
   m_ObjectHideFlags: 0
@@ -8717,7 +8773,9 @@ MonoBehaviour:
   speedText2: {fileID: 0}
   speedLabel2: {fileID: 0}
   bulletManager: {fileID: 1871105675}
+  bulletManagerSecond: {fileID: 0}
   canvasBB: {fileID: 317472495}
+  canvasBBSecond: {fileID: 0}
 --- !u!1 &785919752
 GameObject:
   m_ObjectHideFlags: 0
@@ -11264,7 +11322,7 @@ RectTransform:
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
   m_AnchoredPosition: {x: 0, y: -35}
-  m_SizeDelta: {x: 59.384617, y: 33}
+  m_SizeDelta: {x: 59.27302, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1032459395
 MonoBehaviour:
@@ -13062,8 +13120,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: 30, y: -16.5}
-  m_SizeDelta: {x: 40, y: 33}
+  m_AnchoredPosition: {x: 29.63651, y: -16.5}
+  m_SizeDelta: {x: 39.27302, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1218454288
 MonoBehaviour:
@@ -13176,7 +13234,7 @@ RectTransform:
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
   m_AnchoredPosition: {x: 0, y: -35}
-  m_SizeDelta: {x: 59.384617, y: 33}
+  m_SizeDelta: {x: 59.27302, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1219175806
 MonoBehaviour:
@@ -14656,8 +14714,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: 49.384617, y: -16.5}
-  m_SizeDelta: {x: 78.76923, y: 33}
+  m_AnchoredPosition: {x: 49.27302, y: -16.5}
+  m_SizeDelta: {x: 78.54604, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1338115114
 MonoBehaviour:
@@ -18912,6 +18970,7 @@ GameObject:
   - component: {fileID: 1639774509}
   - component: {fileID: 1639774508}
   - component: {fileID: 1639774507}
+  - component: {fileID: 1639774511}
   m_Layer: 5
   m_Name: Canvas
   m_TagString: Untagged
@@ -18951,9 +19010,9 @@ MonoBehaviour:
   m_UiScaleMode: 1
   m_ReferencePixelsPerUnit: 100
   m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 1280, y: 720}
+  m_ReferenceResolution: {x: 2352, y: 1170}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0.5
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -19007,6 +19066,27 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0, y: 0}
+--- !u!114 &1639774511
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1639774506}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 2352, y: 1170}
+    matchWidthOrHeight: 0.5
 --- !u!1 &1659282381
 GameObject:
   m_ObjectHideFlags: 0
@@ -20887,8 +20967,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: 80, y: -20}
-  m_SizeDelta: {x: 80, y: 40}
+  m_AnchoredPosition: {x: 79.273026, y: -20}
+  m_SizeDelta: {x: 78.54604, y: 40}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1845023679
 MonoBehaviour:
@@ -22924,6 +23004,7 @@ GameObject:
   - component: {fileID: 1964354870}
   - component: {fileID: 1964354872}
   - component: {fileID: 1964354871}
+  - component: {fileID: 1964354873}
   m_Layer: 5
   m_Name: Button5
   m_TagString: Untagged
@@ -22950,7 +23031,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: 144}
+  m_AnchoredPosition: {x: -40, y: 444}
   m_SizeDelta: {x: 120, y: 120}
   m_Pivot: {x: 1, y: 0}
 --- !u!114 &1964354871
@@ -23005,6 +23086,33 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1964354869}
   m_CullTransparentMesh: 1
+--- !u!114 &1964354873
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1964354869}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 1, y: 0}
+    anchorMax: {x: 1, y: 0}
+    anchoredPosition: {x: -40, y: 144}
+    sizeDelta: {x: 120, y: 120}
+  iPhoneLayout:
+    anchorMin: {x: 1, y: 0}
+    anchorMax: {x: 1, y: 0}
+    anchoredPosition: {x: -40, y: 144}
+    sizeDelta: {x: 120, y: 120}
+  iPadLayout:
+    anchorMin: {x: 1, y: 0}
+    anchorMax: {x: 1, y: 0}
+    anchoredPosition: {x: -40, y: 444}
+    sizeDelta: {x: 120, y: 120}
 --- !u!1 &1966458870
 GameObject:
   m_ObjectHideFlags: 0
@@ -23356,8 +23464,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: 29.692308, y: -16.5}
-  m_SizeDelta: {x: 39.384617, y: 33}
+  m_AnchoredPosition: {x: 29.63651, y: -16.5}
+  m_SizeDelta: {x: 39.27302, y: 33}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1995867605
 MonoBehaviour:

+ 124 - 149
Assets/BowArrow/Scenes/GameChallengeScene/GameChallenge.unity

@@ -1350,7 +1350,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 14aff0d213a308e49a0b1be19a1c8ef4, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  inited: 0
 --- !u!1 &72051717
 GameObject:
   m_ObjectHideFlags: 0
@@ -7080,7 +7079,6 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   userGameAnalyse: {fileID: 0}
-  guideFinish: 0
 --- !u!4 &279869869
 Transform:
   m_ObjectHideFlags: 0
@@ -7223,7 +7221,6 @@ MonoBehaviour:
   textKey: game_settle_win
   layoutRebuildObject: {fileID: 0}
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!1 &285922295
 GameObject:
   m_ObjectHideFlags: 0
@@ -7541,8 +7538,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 8c9eb7c0279935d4dbd06b78068302cd, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  dayToNight: {fileID: 0}
-  toggle: {fileID: 0}
 --- !u!1001 &318201437
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -8875,7 +8870,6 @@ MonoBehaviour:
   textKey: game_settle_fail
   layoutRebuildObject: {fileID: 0}
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!1001 &391893132
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -16050,7 +16044,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: ee039538a33cc6c409dcf7cea30ea8fc, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  lineRenderer: {fileID: 0}
 --- !u!1001 &698525135
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -16609,9 +16602,6 @@ MonoBehaviour:
   sphereMaterials:
   - {fileID: 2100000, guid: fc5566de11103b94a9b40926832bed2c, type: 2}
   - {fileID: 2100000, guid: cbbee1f4f5a61824d838f04095b03582, type: 2}
-  debugDrawing: 0
-  debugNewAreaMatrix: 0
-  runBackPointIndex: -1
 --- !u!1001 &725091103
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -21261,6 +21251,7 @@ GameObject:
   - component: {fileID: 909015803}
   - component: {fileID: 909015802}
   - component: {fileID: 909015806}
+  - component: {fileID: 909015807}
   m_Layer: 5
   m_Name: HunterGameSettleView
   m_TagString: Untagged
@@ -21338,7 +21329,7 @@ MonoBehaviour:
   m_ScaleFactor: 1
   m_ReferenceResolution: {x: 1280, y: 720}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -21382,6 +21373,27 @@ MonoBehaviour:
   - {fileID: 208075073}
   - {fileID: 265571731}
   - {fileID: 1936560198}
+--- !u!114 &909015807
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 909015800}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 0
 --- !u!1 &909366394
 GameObject:
   m_ObjectHideFlags: 0
@@ -22680,20 +22692,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 86975e1a6e97a5a4fa876920fe285f38, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  _cameraComp: {fileID: 0}
-  _armBow: {fileID: 0}
-  localEulerAngles: {x: 0, y: 0, z: 0}
-  limitRangeRotateY:
-  - -80
-  - 80
-  limitRangeRotateX:
-  - -80
-  - 80
-  needLookAtPoint: 0
-  _bowRotateConvertRate: []
-  cameraFieldOfView: 60
-  isArrowFollowing: 0
-  isScaleAimDisplaying: 0
 --- !u!81 &954346088
 AudioListener:
   m_ObjectHideFlags: 0
@@ -22772,9 +22770,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: dd6d4281e5d7cd44d8c6e38bc2c1b8d8, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  supportHDRTextures: 1
-  supportDX11: 0
-  isSupported: 1
   mode: 0
   intensity: 0.178
   chromaticAberration: 2.38
@@ -22786,9 +22781,6 @@ MonoBehaviour:
   vignetteShader: {fileID: 4800000, guid: 627943dc7a9a74286b70a4f694a0acd5, type: 3}
   separableBlurShader: {fileID: 4800000, guid: e97c14fbb5ea04c3a902cc533d7fc5d1, type: 3}
   chromAberrationShader: {fileID: 4800000, guid: 2b4f29398d9484ccfa9fd220449f5eee, type: 3}
-  m_VignetteMaterial: {fileID: 0}
-  m_SeparableBlurMaterial: {fileID: 0}
-  m_ChromAberrationMaterial: {fileID: 0}
 --- !u!114 &954346092
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -22801,9 +22793,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 76b5ec6153a1d55438228df10fe66844, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  supportHDRTextures: 1
-  supportDX11: 0
-  isSupported: 1
   distanceFog: 1
   excludeFarPixels: 1
   useRadialDistance: 0
@@ -22812,7 +22801,6 @@ MonoBehaviour:
   heightDensity: 1.9
   startDistance: 0
   fogShader: {fileID: 4800000, guid: 70d8568987ac0499f952b54c7c13e265, type: 3}
-  fogMaterial: {fileID: 0}
 --- !u!114 &954346093
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -22825,9 +22813,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 75febd242c999f04d9654522a10c006b, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  supportHDRTextures: 1
-  supportDX11: 0
-  isSupported: 1
   intensity: 0.59
   radius: 0.2
   blurIterations: 1
@@ -22835,7 +22820,6 @@ MonoBehaviour:
   downsample: 0
   rand: {fileID: 2800000, guid: a181ca8e3c62f3e4b8f183f6c586b032, type: 3}
   aoShader: {fileID: 4800000, guid: 95616c020c5604dda96cf76afbbc0272, type: 3}
-  aoMaterial: {fileID: 0}
 --- !u!1 &962051369
 GameObject:
   m_ObjectHideFlags: 0
@@ -23363,17 +23347,6 @@ MonoBehaviour:
   bullet: {fileID: 0}
   armObj: {fileID: 0}
   bowObj: {fileID: 0}
-  _bowCamera: {fileID: 0}
-  cameraRotations:
-  - {x: 0, y: 0, z: 0, w: 0}
-  - {x: 0, y: 0, z: 0, w: 0}
-  - {x: 0, y: 0, z: 0, w: 0}
-  - {x: 0, y: 0, z: 0, w: 0}
-  - {x: 0, y: 0, z: 0, w: 0}
-  - {x: 0, y: 0, z: 0, w: 0}
-  cameraRotationHasRecordCount: 0
-  arm_ani_index_cur: -1
-  bow_ani_index_cur: -1
 --- !u!114 &1000019355
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -23387,17 +23360,6 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   speed: 2
-  animationMain: {fileID: 0}
-  _animationClips: []
-  _wrapMode: 0
-  _index: 0
-  _playing: 0
-  _playingTime: 0
-  _animationTime: 0
-  _animationName: 
-  _completeCount: 0
-  animationPauseTime: 0
-  _pausing: 0
 --- !u!111 &1000019356
 Animation:
   m_ObjectHideFlags: 0
@@ -24114,8 +24076,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: 29.692308, y: -16.5}
-  m_SizeDelta: {x: 39.384617, y: 33}
+  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 &1047161075
 MonoBehaviour:
@@ -24133,7 +24095,6 @@ MonoBehaviour:
   layoutRebuildObject: {fileID: 1104609464}
   textFormatArgs: []
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!114 &1047161076
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -25223,7 +25184,6 @@ MonoBehaviour:
   layoutRebuildObject: {fileID: 0}
   textFormatArgs: []
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!114 &1107490634
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -27335,6 +27295,7 @@ GameObject:
   - component: {fileID: 1193034922}
   - component: {fileID: 1193034921}
   - component: {fileID: 1193034920}
+  - component: {fileID: 1193034923}
   m_Layer: 5
   m_Name: Canvas
   m_TagString: Untagged
@@ -27399,9 +27360,9 @@ MonoBehaviour:
   m_UiScaleMode: 1
   m_ReferencePixelsPerUnit: 100
   m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 1280, y: 720}
+  m_ReferenceResolution: {x: 2532, y: 1170}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0.5
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -27429,6 +27390,27 @@ Canvas:
   m_SortingLayerID: 0
   m_SortingOrder: 0
   m_TargetDisplay: 0
+--- !u!114 &1193034923
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1193034918}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 2532, y: 1170}
+    matchWidthOrHeight: 0.5
 --- !u!1001 &1195150059
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -27641,8 +27623,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: 29.692308, y: -16.5}
-  m_SizeDelta: {x: 39.384617, y: 33}
+  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 &1203594963
 MonoBehaviour:
@@ -27660,7 +27642,6 @@ MonoBehaviour:
   layoutRebuildObject: {fileID: 1697724863}
   textFormatArgs: []
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!114 &1203594964
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -30609,7 +30590,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 1317dbe2cd7cd5f42a07b105aab238e0, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  eularAngles: {x: 0, y: 0, z: 0}
 --- !u!1 &1328648116
 GameObject:
   m_ObjectHideFlags: 0
@@ -31032,7 +31012,6 @@ MonoBehaviour:
   textKey: game_challenge_settle_back
   layoutRebuildObject: {fileID: 0}
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!1 &1362056193
 GameObject:
   m_ObjectHideFlags: 0
@@ -31737,7 +31716,6 @@ MonoBehaviour:
   layoutRebuildObject: {fileID: 0}
   textFormatArgs: []
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!114 &1382641480
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -34145,25 +34123,6 @@ MonoBehaviour:
   outlight: {fileID: 2100000, guid: 502f08d2109aaeb4d92b1b552bfed15c, type: 2}
   text1: {fileID: 1107490634}
   text2: {fileID: 2001817781}
-  btnScaleAim: {fileID: 0}
-  btnScaleShoot: {fileID: 0}
-  playerScaleAimRecords: 
-  playerScaleShootRecords: 
-  scaleAimFieldOfViews:
-  - 30
-  - 20
-  - 12
-  - 6
-  - 3
-  scaleAimScopeScales:
-  - 150
-  - 98
-  - 58
-  - 29
-  - 14.5
-  isScaleAimDisplaying: 0
-  aimScaleDisplayValue: -1
-  scaleShootOn: 0
 --- !u!114 &1470787747
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -34927,8 +34886,6 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   outTip: {fileID: 727934330}
-  tips: []
-  tipIndex: -1
 --- !u!1 &1496457052
 GameObject:
   m_ObjectHideFlags: 0
@@ -35427,6 +35384,7 @@ GameObject:
   - component: {fileID: 1541152746}
   - component: {fileID: 1541152745}
   - component: {fileID: 1541152744}
+  - component: {fileID: 1541152748}
   m_Layer: 5
   m_Name: HunterGameView
   m_TagString: Untagged
@@ -35470,16 +35428,13 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: ba1b283f27688604fa8d16515e2dc72d, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  animalNames: []
   animalCountValue: {fileID: 658932068}
   animalCountText: {fileID: 1514790975}
   animalCountProgress: {fileID: 1420011521}
   arrowCountValue: {fileID: 480176802}
   arrowCountText: {fileID: 637364630}
   arrowCountProgress: {fileID: 1190140579}
-  str_surplus_arrow: 
   timeText: {fileID: 1217415904}
-  lastRenderTime: -1
   hpUI: {fileID: 851501000}
   hpBar: {fileID: 370321382}
   hpText: {fileID: 386563511}
@@ -35515,9 +35470,9 @@ MonoBehaviour:
   m_UiScaleMode: 1
   m_ReferencePixelsPerUnit: 100
   m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 1280, y: 720}
+  m_ReferenceResolution: {x: 2352, y: 1170}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0.5
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -35545,6 +35500,27 @@ Canvas:
   m_SortingLayerID: 0
   m_SortingOrder: 0
   m_TargetDisplay: 0
+--- !u!114 &1541152748
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1541152742}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 2352, y: 1170}
+    matchWidthOrHeight: 0.5
 --- !u!1 &1544215144
 GameObject:
   m_ObjectHideFlags: 0
@@ -35641,7 +35617,6 @@ MonoBehaviour:
   textKey: game_challenge_settle_again
   layoutRebuildObject: {fileID: 0}
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!1001 &1554041397
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -37685,7 +37660,6 @@ MonoBehaviour:
   layoutRebuildObject: {fileID: 787970663}
   textFormatArgs: []
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!114 &1637809569
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -38009,7 +37983,7 @@ RectTransform:
   m_AnchorMin: {x: 1, y: 0.5}
   m_AnchorMax: {x: 1, y: 0.5}
   m_AnchoredPosition: {x: -46, y: -28}
-  m_SizeDelta: {x: 69.53846, y: 22.153847}
+  m_SizeDelta: {x: 69.42909, y: 22.441727}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1666431716
 MonoBehaviour:
@@ -38737,7 +38711,6 @@ MonoBehaviour:
   layoutRebuildObject: {fileID: 142345965}
   textFormatArgs: []
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!114 &1706315210
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -39206,7 +39179,6 @@ MonoBehaviour:
   textKey: game_challenge_settle_next-level
   layoutRebuildObject: {fileID: 0}
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!1 &1729123942
 GameObject:
   m_ObjectHideFlags: 0
@@ -39525,6 +39497,7 @@ GameObject:
   - component: {fileID: 1731683005}
   - component: {fileID: 1731683004}
   - component: {fileID: 1731683007}
+  - component: {fileID: 1731683008}
   m_Layer: 5
   m_Name: HunterGameView_LocalPK
   m_TagString: Untagged
@@ -39586,9 +39559,9 @@ MonoBehaviour:
   m_UiScaleMode: 1
   m_ReferencePixelsPerUnit: 100
   m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 1280, y: 720}
+  m_ReferenceResolution: {x: 2352, y: 1170}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0.5
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -39628,9 +39601,27 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: bc382051b24b258418f84de2350c0c56, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  hitScores: 0000000000000000
-  dieList: 
-  curPlayerIndex: -1
+--- !u!114 &1731683008
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1731683002}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 2352, y: 1170}
+    matchWidthOrHeight: 0.5
 --- !u!1001 &1732196589
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -40069,6 +40060,7 @@ GameObject:
   - component: {fileID: 1746986227}
   - component: {fileID: 1746986226}
   - component: {fileID: 1746986230}
+  - component: {fileID: 1746986231}
   m_Layer: 5
   m_Name: HuntGameSelectLevelView
   m_TagString: Untagged
@@ -40115,7 +40107,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 3835ccb487b587b44b38cb093b122216, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  bPlayStartAudio: 0
 --- !u!114 &1746986227
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -40150,7 +40141,7 @@ MonoBehaviour:
   m_ScaleFactor: 1
   m_ReferenceResolution: {x: 1280, y: 720}
   m_ScreenMatchMode: 0
-  m_MatchWidthOrHeight: 1
+  m_MatchWidthOrHeight: 0
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -40196,6 +40187,27 @@ MonoBehaviour:
   - {fileID: 1310389977}
   - {fileID: 826834288}
   - {fileID: 622687155}
+--- !u!114 &1746986231
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1746986224}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 1280, y: 720}
+    matchWidthOrHeight: 0
 --- !u!1 &1750222688
 GameObject:
   m_ObjectHideFlags: 0
@@ -41703,7 +41715,6 @@ MonoBehaviour:
   textKey: CalibrationOffset
   layoutRebuildObject: {fileID: 1301234375}
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!114 &1827374452
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -42440,7 +42451,6 @@ MonoBehaviour:
   absoluteAngleText: {fileID: 372149789}
   offsetAngleInput: {fileID: 2097453750}
   logText: {fileID: 537554554}
-  loaded: 0
 --- !u!1001 &1847340462
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -43278,17 +43288,6 @@ MonoBehaviour:
   bullet: {fileID: 0}
   armObj: {fileID: 422648801}
   bowObj: {fileID: 1189110575}
-  _bowCamera: {fileID: 0}
-  cameraRotations:
-  - {x: 0, y: 0, z: 0, w: 0}
-  - {x: 0, y: 0, z: 0, w: 0}
-  - {x: 0, y: 0, z: 0, w: 0}
-  - {x: 0, y: 0, z: 0, w: 0}
-  - {x: 0, y: 0, z: 0, w: 0}
-  - {x: 0, y: 0, z: 0, w: 0}
-  cameraRotationHasRecordCount: 0
-  arm_ani_index_cur: -1
-  bow_ani_index_cur: -1
 --- !u!4 &1892287023
 Transform:
   m_ObjectHideFlags: 0
@@ -43319,17 +43318,6 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   speed: 2
-  animationMain: {fileID: 0}
-  _animationClips: []
-  _wrapMode: 0
-  _index: 0
-  _playing: 0
-  _playingTime: 0
-  _animationTime: 0
-  _animationName: 
-  _completeCount: 0
-  animationPauseTime: 0
-  _pausing: 0
 --- !u!111 &1892287025
 Animation:
   m_ObjectHideFlags: 0
@@ -43463,7 +43451,7 @@ RectTransform:
   m_AnchorMin: {x: 0.5, y: 1}
   m_AnchorMax: {x: 0.5, y: 1}
   m_AnchoredPosition: {x: 0, y: -18}
-  m_SizeDelta: {x: 78.76923, y: 25.846153}
+  m_SizeDelta: {x: 78.54604, y: 25.948246}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1892642526
 MonoBehaviour:
@@ -43481,7 +43469,6 @@ MonoBehaviour:
   layoutRebuildObject: {fileID: 0}
   textFormatArgs: []
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!114 &1892642527
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -46175,7 +46162,6 @@ MonoBehaviour:
   layoutRebuildObject: {fileID: 0}
   textFormatArgs: []
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!114 &2001817781
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -47282,7 +47268,6 @@ MonoBehaviour:
   textKey: CrossHairButton
   layoutRebuildObject: {fileID: 1615012327}
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!114 &2052740747
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -47512,7 +47497,6 @@ MonoBehaviour:
   layoutRebuildObject: {fileID: 0}
   textFormatArgs: []
   languageFontSizes: []
-  defaultFontSize: -1
 --- !u!114 &2061808087
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -49416,14 +49400,6 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: b6e9790273457c544a146bb1266a6f61, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  image: {fileID: 0}
-  open: 0
-  visiable: 0
-  onlyShow: 1
-  infraredGuiderObj: {fileID: 0}
-  _parentRTF: {fileID: 0}
-  centerPoint: {x: 0.5, y: 0.5, z: 0}
-  targetPosition: {x: 0, y: 0, z: 0}
 --- !u!222 &2138174005
 CanvasRenderer:
   m_ObjectHideFlags: 0
@@ -49523,7 +49499,6 @@ MonoBehaviour:
   - language: 1
     fontSize: 18
     lineSpacing: 0
-  defaultFontSize: -1
 --- !u!114 &2142579591
 MonoBehaviour:
   m_ObjectHideFlags: 0

File diff suppressed because it is too large
+ 375 - 419
Assets/BowArrow/Scenes/Login.unity


+ 44 - 4
Assets/BowArrow/Scripts/Manager/LoginMgr/LoginMgr.cs

@@ -3,28 +3,65 @@ using System.Collections.Generic;
 using UnityEngine;
 using Newtonsoft.Json;
 using JCUnityLib;
+using AdaptUI;
 /* 登录管理者,用户数据定义和存储 */
 public class LoginMgr : MonoBehaviour
 {
     [SerializeField] GameObject loginView;
+
     [SerializeField] GameObject registerView;
 
+    [SerializeField] GameObject loginView_iPad;
+    [SerializeField] GameObject registerView_iPad;
+
     public static UserInfo myUserInfo = new UserInfo();
 
     public void showRegisterView()
     {
-        loginView.SetActive(false);
-        registerView.SetActive(true);
+        // loginView.SetActive(false);
+        // registerView.SetActive(true);
+         //获取设备类型
+        DeviceTypeHelper.DeviceType detectedType = DeviceTypeHelper.DetectDeviceType();
+        Debug.Log($"showRegisterView设备类型: {detectedType}");
+        //根据设备类型显示不同的登录界面
+        if(detectedType == DeviceTypeHelper.DeviceType.iPad)
+        {
+            loginView_iPad.SetActive(false);
+            registerView_iPad.SetActive(true);
+        }
+        else
+        {
+             loginView.SetActive(false);
+             registerView.SetActive(true);
+        }
         AgreenmentOption.ins.gameObject.SetActive(true);
     }
 
     public void showLoginView()
     {
-        loginView.SetActive(true);
-        registerView.SetActive(false);
+        //loginView.SetActive(true);
+        //registerView.SetActive(false);
+
+        DeviceTypeHelper.DeviceType detectedType = DeviceTypeHelper.DetectDeviceType();
+        Debug.Log($"showLoginView设备类型: {detectedType}");
+        //根据设备类型显示不同的登录界面
+        if(detectedType == DeviceTypeHelper.DeviceType.iPad)
+        {
+            loginView.SetActive(false);
+            loginView_iPad.SetActive(true);
+            registerView_iPad.SetActive(false);
+        }
+        else
+        {
+             loginView.SetActive(true);
+             loginView_iPad.SetActive(false);
+             registerView.SetActive(false);
+        }
+
         AgreenmentOption.ins.gameObject.SetActive(true);
     }
 
+
     public void showForgetPWD_View()
     {
         Instantiate(SceneResourceManager.Instance.GetPrefab("RetrievePasswordView"));
@@ -38,6 +75,9 @@ public class LoginMgr : MonoBehaviour
 
     void Awake()
     {
+        //显示登录界面
+        showLoginView();
+
         transform.Find("AgreementPopup").gameObject.SetActive(true);
         ViewMgr.Instance.DestroyAllViews();
     }

+ 1 - 1
Assets/BowArrow/Scripts/Manager/LoginMgr/WeChatLoginHelper.cs

@@ -18,7 +18,7 @@ public class WeChatLoginHelper
      
 #endif
 
-#if UNITY_IPHONE
+#if UNITY_IPHONE && !UNITY_EDITOR
        return IsWechatInstalled_iOS();
 #endif
 

+ 23 - 1
Assets/DuckHunter/Scenes/DuckHunter.unity

@@ -5375,6 +5375,7 @@ GameObject:
   - component: {fileID: 1372090168}
   - component: {fileID: 1372090171}
   - component: {fileID: 1372090172}
+  - component: {fileID: 1372090173}
   m_Layer: 5
   m_Name: GameUI
   m_TagString: Untagged
@@ -5450,7 +5451,7 @@ MonoBehaviour:
   m_UiScaleMode: 1
   m_ReferencePixelsPerUnit: 100
   m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 1920, y: 1080}
+  m_ReferenceResolution: {x: 2532, y: 1170}
   m_ScreenMatchMode: 1
   m_MatchWidthOrHeight: 1
   m_PhysicalUnit: 3
@@ -5526,6 +5527,27 @@ MonoBehaviour:
   buttons:
   - {fileID: 1995187172}
   - {fileID: 1180745910}
+--- !u!114 &1372090173
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1372090166}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7424d90f7c2573e4da3e34a55968f1cd, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultScaler:
+    referenceResolution: {x: 1920, y: 1080}
+    matchWidthOrHeight: 1
+  iPhoneScaler:
+    referenceResolution: {x: 1920, y: 1080}
+    matchWidthOrHeight: 1
+  iPadScaler:
+    referenceResolution: {x: 2532, y: 1170}
+    matchWidthOrHeight: 1
 --- !u!1 &1376653938
 GameObject:
   m_ObjectHideFlags: 0

+ 0 - 150
Assets/InfraredProject/InfraredCamera/Scripts/UVCInterface.cs

@@ -1,150 +0,0 @@
-using UnityEngine;
-using System;
-using System.Runtime.InteropServices;
-
-namespace SLAMUVC
-{
-	[StructLayout(LayoutKind.Sequential, Pack = 4)]
-	public struct UVCCtrlInfo
-	{
-		public string name;
-		public Int32 current;
-		public Int32 min;
-		public Int32 max;
-		public Int32 def;
-
-		public override string ToString()
-		{
-			return $"{base.ToString()}(name={name},min={min},max={max},def={def},current={current})";
-		}
-	}
-
-	[System.Serializable]
-	public class UVCCtrl
-	{
-		public string name;
-		public bool isAuto;
-		public bool isEnable;
-		public int[] limit;
-		public int value;
-	}
-	[System.Serializable]
-	public class UVCCtrlWrapper
-	{
-		public UVCCtrl[] uvcCtrls;
-	}
-	public enum CameraFormat
-	{
-		MJPEG,
-		YUV,
-	}
-	public enum CameraMirror
-	{
-		NONE,
-		HORIZONTAL,//ˮƽ��ת
-		VERTICAL//��ֱ��ת
-	}
-	public enum UVCCameraPixelFormat
-	{
-		PIXEL_FORMAT_RAW,
-		PIXEL_FORMAT_YUV,
-		PIXEL_FORMAT_NV12, // one format of YUV420SemiPlanar
-		PIXEL_FORMAT_NV21, // one format of YUV420SemiPlanar
-		PIXEL_FORMAT_RGB,
-		PIXEL_FORMAT_RGB565,
-		PIXEL_FORMAT_RGBX
-	}
-	public enum CameraStatus
-	{
-		Stopped = 0,                // 摄像头停止
-		Started = 1,                // 摄像头启动
-		Connecting = 2,             // 连接设备中
-		Active = 3,                 // UI 激活
-		Idle = 4,                   // UI 空闲
-		Scanning = 5,               // 硬件扫描中
-		NoDevice = 6,               // 无设备
-		ResolutionChanged = 7,      // 分辨率修改
-		RenderUpdate = 8,           // 渲染更新
-	}
-	//UVC������
-	public abstract class UVCInterface : MonoBehaviour
-	{
-		// 初始化相机
-		public abstract void InitCamera(int width, int height);
-
-		// 打开相机
-		public abstract void OpenCamera();
-
-		// 关闭相机
-		public abstract void CloseCamera();
-
-		// 改变相机分辨率
-		public abstract void ChangeCameraInfo(int width, int height);
-
-		// 改变相机分辨率回调
-		public abstract void ChangeCameraInfoCallback(int width, int height);
-		// 获取支持的分辨率列表
-		public abstract string[] GetSupportedResolutions();
-
-		// 获取 UVC 控制列表(如亮度、对比度等控制功能)
-		public abstract string GetUvcCtrlList();
-
-		// 控制亮度
-		public abstract void SetBrightness(int value);
-
-		// 控制对比度
-		public abstract void SetContrast(int value);
-
-		// 设置 UVC 控制功能的值(如亮度、对比度)
-		public abstract int SetCtrlValue(string type, int value);
-
-		//
-		public abstract void FlipHorizontally();
-
-		//
-		public abstract void FlipVertically();
-
-		//重置参数
-		public abstract void resetControlParams();
-
-		public abstract bool GetIsPreviewing();
-
-		public abstract void OnTextureUpdate(int width, int height, bool bUpdate);
-
-
-		// 相机纹理
-		public abstract Texture2D CameraTexture { get; }
-
-		// UVC属性
-		public abstract UVCCtrl[] UVCCtrls { get; }
-
-		// 过度分辨率
-		public abstract int[] tempCameraSize { get; }
-		/// <summary>
-		/// 摄像头权限成功事件
-		/// </summary>
-		public event Action systemCameraPermissionHandle;
-
-		/// <summary>
-		/// 摄像头纹理更新事件
-		/// </summary>
-		public event Action cameraTextureHandle;
-
-		/// <summary>
-		/// 触发摄像头权限成功事件(供子类调用)
-		/// </summary>
-		public void OnCameraPermissionGranted()
-		{
-			systemCameraPermissionHandle?.Invoke();
-		}
-
-		/// <summary>
-		/// 触发摄像头纹理更新事件(供子类调用)
-		/// </summary>
-		public void OnCameraTextureUpdated()
-		{
-			cameraTextureHandle?.Invoke();
-		}
-
-	}
-}

+ 0 - 388
Assets/InfraredProject/InfraredCamera/Scripts/UVCInterface_Android.cs

@@ -1,388 +0,0 @@
-using UnityEngine;
-using System;
-using System.Collections;
-using System.Runtime.InteropServices;
-using SLAMUVC;
-using UnityEngine.UI;
-using System.Collections.Generic;
-using AOT;
-using System.Threading;
-using UnityEngine.Events;
-using UnityEngine.Android;
-
-namespace SLAMUVC
-{
-	
-	//UVC������
-	public class UVCInterface_Android : UVCInterface
-	{
-		private const string UVC_MANAGER = "com.slambb.myuvc.MyUVCManager";
-		//java����
-		private AndroidJavaObject uvcManagerObj = null;
-
-		CameraFormat mCameraFormat = CameraFormat.MJPEG;
-		CameraMirror mCameraMirror = CameraMirror.VERTICAL;//Ĭ�ϴ�ֱ
-		int Width = 1280;
-		int Height = 720;
-		Texture2D _cameraTexture;
-		public override Texture2D CameraTexture => _cameraTexture;
-
-		private UVCCtrl[] uvcCtrls;
-		public override UVCCtrl[] UVCCtrls => uvcCtrls;
-
-		//修改时候的分辨率
-		int[] tempSize = new int[2] { 1280, 720 };
-		public override int[] tempCameraSize => tempSize;
-
-		private SynchronizationContext mainContext;
-
-		///// <summary>
-		///// ��ʼ�����Ȩ�޳ɹ�
-		///// </summary>
-		//public CameraPermissionHandle systemCameraPermissionHandle;
-		//public void CameraPermissionHandle();
-		///// <summary>
-		///// ��������¼�
-		///// </summary>
-		//public CameraTextureHandle cameraTextureHandle;
-		//public  void CameraTextureHandle();
-
-
-
-		private static readonly string ActivityClassName = "com.slambb.myuvc.UsbPermissionActivity";
-
-		//public void RequestUsbPermission()
-		//{
-		//	using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
-		//	{
-		//		AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
-		//		AndroidJavaClass usbPermissionActivity = new AndroidJavaClass(ActivityClassName);
-
-		//		// Start UsbPermissionActivity
-		//		activity.Call("startActivity", usbPermissionActivity.CallStatic<AndroidJavaObject>("newIntent", activity));
-		//	}
-		//}
-
-		void Awake()
-		{
-			try
-			{
-				// ���� uvcManagerObj ����
-				uvcManagerObj = new AndroidJavaObject(UVC_MANAGER);
-
-			}
-			catch (Exception e)
-			{
-				Debug.LogError("UVC_MANAGER Exception: " + e.Message);
-			}
-
-			//RequestUsbPermission();
-		}
-
-		void Start()
-		{
-
-			OpenCameraPermisson();
-
-		}
-
-		private void OnDestroy()
-		{
-			Remove(this);
-			uvcManagerObj.Call("clearCameraHelper");
-
-		}
-		/// <summary>
-		/// ����һ������id�����
-		/// </summary>
-		private void CreateTextureAndPassToPlugin()
-		{
-			// ��������
-			if (_cameraTexture != null)
-			{
-				Destroy(_cameraTexture);
-				_cameraTexture = null;
-			}
-			// Create a texture
-			Texture2D tex = new Texture2D(Width, Height, TextureFormat.ARGB32, false);
-			// ���õ���ˣ��Ա����ǿ�������ؿ�������
-			tex.filterMode = FilterMode.Point;
-			// ����Apply()��ʹ��ʵ���ϴ���GPU
-			tex.Apply();
-			_cameraTexture = tex;
-			//������ָ�봫�ݸ����
-			SetTexture(tex.GetNativeTexturePtr(), tex.width, tex.height);
-
-			//cameraTextureHandle?.Invoke();
-			OnCameraTextureUpdated();
-		}
-		//private IEnumerator CallPluginAtEndOfFrames()
-		//{
-		//	while (true)
-		//	{
-		//		//�ȴ�����֡��Ⱦ���
-		//		yield return new WaitForEndOfFrame();
-		//		//������������������ʶ���IJ���¼���
-		//		//�ò���������ֲ�ͬ��
-		//		//����Ҫ�������ID�������顣
-		//		//�������ǵļ򵥲�������������ﴫ���ĸ�ID������Ҫ��
-		//		if(GetIsPreviewing()) GL.IssuePluginEvent(GetRenderEventFunc(), 1);
-		//	}
-		//}
-		/// <summary>
-		/// ��������
-		/// </summary>
-		/// <param name="width"></param>
-		/// <param name="height"></param>
-		/// <param name="bUpdate"></param>
-		public override void OnTextureUpdate(int width, int height, bool bUpdate)
-		{
-
-			mainContext.Post(__ =>
-			{
-				if (bUpdate)
-				{
-					Debug.Log("�����������size=[" + width + "," + height + "]");
-					Width = width;
-					Height = height;
-					CreateTextureAndPassToPlugin();
-				}
-				else
-				{
-					GL.IssuePluginEvent(GetRenderEventFunc(), 1);
-				}
-
-			}, null);
-		}
-		public override bool GetIsPreviewing()
-		{
-			if (uvcManagerObj != null)
-			{
-				if (uvcManagerObj.Call<int>("GetIsPreviewing") == 1)
-				{
-					return true;
-				}
-			}
-
-			return false;
-		}
-		/// <summary>
-		/// ��ʼ������Ͷ�Ӧ�IJ�������ʼ������Զ������
-		/// </summary>
-		/// <param name="width"></param>
-		/// <param name="height"></param>
-		public override void InitCamera(int width, int height)
-		{
-			Width = width;
-			Height = height;
-			uvcManagerObj.Call("initCameraHelper", Width, Height, mCameraFormat.ToString(), mCameraMirror.ToString());
-			//���߳�
-			mainContext = SynchronizationContext.Current;
-			//ע��c�ص�
-			Add(this);
-			//mainContext.Post(__ =>
-			//{
-			//	//CreateTextureAndPassToPlugin();
-			//}, null);
-			//StartCoroutine("CallPluginAtEndOfFrames");
-		}
-
-		public override void OpenCamera()
-		{
-			uvcManagerObj.Call("OpenCamera");
-		}
-		public override void CloseCamera()
-		{
-			uvcManagerObj.Call("CloseCamera");
-		}
-		public override void ChangeCameraInfo(int width, int height)
-		{
-			uvcManagerObj.Call("ChangeCameraInfo", width, height, mCameraFormat.ToString());
-		}
-		public override string[] GetSupportedResolutions()
-		{
-			if (uvcManagerObj != null)
-			{
-				var objPtr = uvcManagerObj.Call<AndroidJavaObject>("GetSupportedResolutions").GetRawObject();
-
-				if (objPtr != IntPtr.Zero)
-					return AndroidJNIHelper.ConvertFromJNIArray<string[]>(objPtr);
-			}
-
-			return null;
-		}
-
-		/// <summary>
-		/// ˮƽ��ת
-		/// </summary>
-		public override void FlipHorizontally()
-		{
-			uvcManagerObj.Call("FlipHorizontally");
-		}
-
-		/// <summary>
-		/// ��ֱ��ת
-		/// </summary>
-		public override void FlipVertically()
-		{
-			uvcManagerObj.Call("FlipVertically");
-		}
-		public override void resetControlParams()
-		{
-			uvcManagerObj.Call("resetControlParams");
-		}
-		public override string GetUvcCtrlList()
-		{
-
-			if (uvcManagerObj != null)
-			{
-				string json = uvcManagerObj.Call<string>("GetUvcCtrlList");
-
-				UVCCtrlWrapper wrapper = JsonUtility.FromJson<UVCCtrlWrapper>("{\"uvcCtrls\":" + json + "}");
-				if (wrapper != null && wrapper.uvcCtrls != null)
-				{
-
-					//��ֵ
-					uvcCtrls = wrapper.uvcCtrls;
-
-					//foreach (UVCCtrl ctrl in wrapper.uvcCtrls)
-					//{
-					//	Debug.Log($"name:{ctrl.name}, isAuto: {ctrl.isAuto}, isEnable: {ctrl.isEnable}, limit: {string.Join(", ", ctrl.limit)}, value: {ctrl.value}");
-					//}
-				}
-				else
-				{
-					Debug.LogError("Failed to parse JSON data.");
-				}
-			}
-			return "";
-
-		}
-		public override void SetBrightness(int value)
-		{
-			uvcManagerObj.Call("SetBrightness", value);
-		}
-		public override void SetContrast(int value)
-		{
-			uvcManagerObj.Call("SetContrast", value);
-		}
-
-		public override int SetCtrlValue(string type, Int32 value)
-		{
-			int result = -1;
-			if (type == "PU_BRIGHTNESS")
-			{
-				uvcManagerObj.Call("SetBrightness", value);
-				result = 0;
-			}
-			else if (type == "PU_CONTRAST")
-			{
-				uvcManagerObj.Call("SetContrast", value);
-				result = 0;
-			}
-			return result;
-		}
-
-		//--------------------------------------------------------------------------------
-		/**
-		 * �ȴ������Ȩ��
-		*/
-		private void OpenCameraPermisson()
-		{
-
-			if (Permission.HasUserAuthorizedPermission(Permission.Camera))
-			{
-				Debug.LogError("HasUserAuthorizedPermission��");
-				//systemCameraPermissionHandle?.Invoke();
-				OnCameraPermissionGranted();
-				return;
-			}
-
-			bool useCallbacks = true;
-			if (!useCallbacks)
-			{
-				// We do not have permission to use the microphone.
-				// Ask for permission or proceed without the functionality enabled.
-				Permission.RequestUserPermission(Permission.Camera);
-			}
-			else
-			{
-				var callbacks = new PermissionCallbacks();
-				callbacks.PermissionDenied += PermissionCallbacks_PermissionDenied;
-				callbacks.PermissionGranted += PermissionCallbacks_PermissionGranted;
-				callbacks.PermissionDeniedAndDontAskAgain += PermissionCallbacks_PermissionDeniedAndDontAskAgain;
-				Permission.RequestUserPermission(Permission.Camera, callbacks);
-			}
-		}
-
-
-		void PermissionCallbacks_PermissionDenied(string PermissionName)
-		{
-			Debug.LogError($"PermissionCallbacks_PermissionDenied[{PermissionName}]");
-		}
-
-		//��������
-		void PermissionCallbacks_PermissionGranted(string PermissionName)
-		{
-			Debug.Log($"PermissionCallbacks_PermissionGranted[{PermissionName}]");
-			//systemCameraPermissionHandle?.Invoke();
-			OnCameraPermissionGranted();
-		}
-		void PermissionCallbacks_PermissionDeniedAndDontAskAgain(string PermissionName)
-		{
-			Debug.Log($"PermissionCallbacks_PermissionDeniedAndDontAskAgain[{PermissionName}]");
-			//systemCameraPermissionHandle?.Invoke();
-			OnCameraPermissionGranted();
-		}
-
-		//����GL����
-		[DllImport("TransferTexture")]
-		private static extern void SetTexture(IntPtr texture, int w, int h);
-		//GL��Ⱦ�¼�
-		[DllImport("TransferTexture")]
-		private static extern IntPtr GetRenderEventFunc();
-
-
-		[UnmanagedFunctionPointer(CallingConvention.StdCall)]
-		public delegate void TextureUpdateDelegate(Int32 id, int width, int height, bool bUpdate);
-
-		[DllImport("TransferTexture")]
-		private static extern void RegisterTextureUpdateCallback(Int32 id, TextureUpdateDelegate callback);
-		[DllImport("TransferTexture")]
-		private static extern void UnregisterTextureUpdateCallback(Int32 id, TextureUpdateDelegate callback);
-		//��¼MyUVCInterface
-		private static Dictionary<Int32, UVCInterface> mUVCInterfaces = new Dictionary<Int32, UVCInterface>();
-
-		private static TextureUpdateDelegate textureUpdateDelegate;
-		//ע��ص��¼�
-		public static void Add(UVCInterface myUVCInterface)
-		{
-			Int32 id = myUVCInterface.GetHashCode();
-			textureUpdateDelegate = new TextureUpdateDelegate(TextureUpdateHandler);
-			mUVCInterfaces.Add(id, myUVCInterface);
-			RegisterTextureUpdateCallback(id, textureUpdateDelegate);
-		}
-		//�Ƴ��ص��¼�
-		public static void Remove(UVCInterface myUVCInterface)
-		{
-			Int32 id = myUVCInterface.GetHashCode();
-			UnregisterTextureUpdateCallback(id, textureUpdateDelegate);
-			mUVCInterfaces.Remove(id);
-		}
-		//���ݸ���ʱ��ص�
-		[MonoPInvokeCallback(typeof(TextureUpdateDelegate))]
-		private static void TextureUpdateHandler(Int32 id, int width, int height, bool bUpdate)
-		{
-			var myUVCInterface = mUVCInterfaces.ContainsKey(id) ? mUVCInterfaces[id] : null;
-			if (myUVCInterface != null)
-			{
-				myUVCInterface.OnTextureUpdate(width, height, bUpdate);
-			}
-		}
-
-        public override void ChangeCameraInfoCallback(int width, int height)
-        {
-            throw new NotImplementedException();
-        }
-    }
-}

+ 0 - 350
Assets/InfraredProject/InfraredCamera/Scripts/UVCInterface_IOS.cs

@@ -1,350 +0,0 @@
-using System;
-using UnityEngine;
-using System.Runtime.InteropServices;
-using System.Collections;
-using UnityEngine.Rendering;
-using AOT;
-using System.Collections.Generic;
-using UnityEngine.Events;
-
-namespace SLAMUVC
-{
-    //public class MonoPInvokeCallbackAttribute : Attribute { }
-    //UVC������
-    public class UVCInterface_IOS : UVCInterface
-    {
-        // 导入iOS插件中的方法
-        [DllImport("__Internal")]
-        private static extern void Lib_InitCamera(int w, int h, [MarshalAs(UnmanagedType.LPStr)] string format, [MarshalAs(UnmanagedType.LPStr)] string mirror);
-
-        [DllImport("__Internal")]
-        static extern IntPtr GetTextureUpdateCallback();
-
-        [DllImport("__Internal")]
-        private static extern void Lib_OpenCamera();
-
-        [DllImport("__Internal")]
-        private static extern void Lib_CloseCamera();
-
-        [DllImport("__Internal")]
-        private static extern void Lib_SetCameraMirror([MarshalAs(UnmanagedType.LPStr)] string mirror);
-
-        [DllImport("__Internal")]
-        private static extern void Lib_SetBrightness(float brightness);
-
-        [DllImport("__Internal")]
-        private static extern void Lib_SetContrast(float contrast);
-
-        [DllImport("__Internal")]
-        private static extern void Lib_SetSaturation(float saturation);
-
-        [DllImport("__Internal")]
-        private static extern void Lib_ResetControlParams();
-
-        [DllImport("__Internal")]
-        private static extern IntPtr Lib_GetUvcCtrlList();
-
-        [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl)]
-        private static extern IntPtr Lib_GetSupportedResolutions(out int count);
-        [DllImport("__Internal")]
-        private static extern void Lib_FreeResolutions(IntPtr resArray, int count);
-
-        [DllImport("__Internal")]
-        private static extern void Lib_ChangeCameraInfo(int width, int height, [MarshalAs(UnmanagedType.LPStr)] string format);
-
-        [DllImport("__Internal")]
-        private static extern bool Lib_GetIsPreviewing();
-
-        // 定义 C# 回调函数委托
-        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
-        public delegate void CameraCallback(int id, int status);
-
-        // 用于存储 UVC 接口实例
-        private static Dictionary<int, UVCInterface> mUVCInterfaces = new Dictionary<int, UVCInterface>();
-
-        // 用于持有回调,防止 GC 清理
-        private static CameraCallback CameraCallbackDelegate;
-
-        // ✅ 确保 C# 代码和 iOS 端方法匹配
-        [DllImport("__Internal")]
-        private static extern void RegisterCameraCallback(int id, CameraCallback callback);
-
-        [DllImport("__Internal")]
-        private static extern void UnregisterCameraCallback(int id);
-
-
-        public static void Add(UVCInterface myUVCInterface)
-        {
-            int id = myUVCInterface.GetHashCode();
-            if (mUVCInterfaces.ContainsKey(id)) return;
-
-            mUVCInterfaces.Add(id, myUVCInterface);
-
-            // ✅ 这里要存储委托,防止 GC 清理
-            CameraCallbackDelegate = OnCameraStatusChanged;
-            RegisterCameraCallback(id, CameraCallbackDelegate);
-
-        }
-
-        public static void Remove(UVCInterface myUVCInterface)
-        {
-            int id = myUVCInterface.GetHashCode();
-            if (!mUVCInterfaces.ContainsKey(id)) return;
-
-            UnregisterCameraCallback(id);
-            mUVCInterfaces.Remove(id);
-        }
-
-        // ✅ 添加 MonoPInvokeCallback,防止崩溃
-        [MonoPInvokeCallback(typeof(CameraCallback))]
-        private static void OnCameraStatusChanged(int id, int status)
-        {
-            if (mUVCInterfaces.TryGetValue(id, out UVCInterface myUVCInterface))
-            {
-                CameraStatus cameraStatus = (CameraStatus)status;
-                switch (cameraStatus)
-                {
-                    case CameraStatus.Active:
-                        Debug.Log($"[Unity] 摄像头状态更新: {cameraStatus}");
-                        myUVCInterface.GetUvcCtrlList();
-                        myUVCInterface.GetSupportedResolutions();
-                        myUVCInterface.OnCameraTextureUpdated();
-                        break;
-
-                    case CameraStatus.ResolutionChanged:
-                        Debug.Log($"[Unity] 摄像头状态更新: {cameraStatus}");
-                        myUVCInterface.ChangeCameraInfoCallback(myUVCInterface.tempCameraSize[0], myUVCInterface.tempCameraSize[1]);
-                        break;
-
-                    case CameraStatus.RenderUpdate:
-                        myUVCInterface.OnTextureUpdate(myUVCInterface.tempCameraSize[0], myUVCInterface.tempCameraSize[1], true);
-                        break;
-                }
-            }
-        }
-
-        Texture2D _cameraTexture;
-        public override Texture2D CameraTexture => _cameraTexture;
-
-        private UVCCtrl[] uvcCtrls;
-        public override UVCCtrl[] UVCCtrls => uvcCtrls;
-        //修改时候的分辨率
-        int[] tempSize = new int[2] { 1280, 720 };
-        public override int[] tempCameraSize => tempSize;
-        CommandBuffer _command;
-        CameraFormat mCameraFormat = CameraFormat.MJPEG;
-        CameraMirror mCameraMirror = CameraMirror.NONE;
-
-        public UnityEvent<bool> updateUVCManager;
-
-        /// <summary>
-        /// 更新纹理
-        /// </summary>
-        /// <param name="newWidth"></param>
-        /// <param name="newHeight"></param>
-        /// <param name="isInit"></param>
-        void UpdateCameraTexture(int newWidth, int newHeight, bool isInit = true)
-        {
-            // 销毁旧纹理
-            if (_cameraTexture != null)
-            {
-                Destroy(_cameraTexture);
-                _cameraTexture = null;
-            }
-
-            // 重新创建新的纹理
-            _cameraTexture = new Texture2D(newWidth, newHeight, TextureFormat.BGRA32, false);
-            _cameraTexture.filterMode = FilterMode.Point;
-            _cameraTexture.Apply();
-
-
-            if (isInit)
-            {
-                tempSize = new int[2] { newWidth, newHeight };
-                Debug.Log($"[Unity] 重新获取 " + tempSize[0] + "=" + tempSize[1]);
-                // 重新初始化 Camera
-                string format = mCameraFormat == CameraFormat.MJPEG ? "MJPEG" : "YUV";
-                string mirror = mCameraMirror == CameraMirror.NONE ? "NONE" :
-                                mCameraMirror == CameraMirror.HORIZONTAL ? "HORIZONTAL" : "VERTICAL";
-                Lib_InitCamera(_cameraTexture.width, _cameraTexture.height, format, mirror);
-            }
-
-        }
-
-        private void Awake()
-        {
-            Add(this);
-        }
-        private void Start()
-        {
-            OnCameraPermissionGranted();
-        }
-
-        void OnDestroy()
-        {
-            Remove(this);
-            if (_command != null)
-            {
-                _command.Dispose();
-                _command = null;
-            }
-            if (_cameraTexture != null)
-            {
-                Destroy(_cameraTexture);
-                _cameraTexture = null;
-            }
-        }
-
-        public override void InitCamera(int width, int height)
-        {
-            Debug.Log($"[Unity] InitCamera Texture1 : " + width + "=" + height);
-            if (_command == null) _command = new CommandBuffer();
-            UpdateCameraTexture(width, height);
-            Debug.LogWarning("初始化 texture 成功!.");
-        }
-
-        public override void OpenCamera()
-        {
-            Lib_OpenCamera();
-        }
-
-        public override void CloseCamera()
-        {
-            Lib_CloseCamera();
-        }
-
-        public override void ChangeCameraInfo(int width, int height)
-        {
-            string format = mCameraFormat == CameraFormat.MJPEG ? "MJPEG" : "YUV";
-            tempSize = new int[2] { width, height };
-            Debug.Log($"[Unity]  ChangeCameraInfo:" + tempSize[0] + "=" + tempSize[1]);
-            Lib_ChangeCameraInfo(width, height, format);
-        }
-
-        public override void ChangeCameraInfoCallback(int width, int height)
-        {
-            Debug.Log($"[Unity] ChangeCameraInfoCallback Texture1 : " + width + "=" + height);
-            if (_command == null) _command = new CommandBuffer();
-            UpdateCameraTexture(width, height, false);
-            OnCameraTextureUpdated();
-        }
-
-        public override string[] GetSupportedResolutions()
-        {
-            int count = 0;
-            IntPtr resPtr = Lib_GetSupportedResolutions(out count);
-
-            if (count == 0 || resPtr == IntPtr.Zero)
-            {
-                Debug.LogError("[Unity] GetSupportedResolutions 失败: count=0 或 resPtr 为 null");
-                return new string[0];
-            }
-
-            string[] resolutions = new string[count];
-            IntPtr[] ptrArray = new IntPtr[count];
-            Marshal.Copy(resPtr, ptrArray, 0, count);
-
-            for (int i = 0; i < count; i++)
-            {
-                resolutions[i] = Marshal.PtrToStringAnsi(ptrArray[i]);
-            }
-
-            // 释放 C 端内存
-            Lib_FreeResolutions(resPtr, count);
-
-            Debug.Log("[Unity] UVC支持的分辨率列表: " + string.Join(", ", resolutions));
-            return resolutions;
-        }
-
-        public override string GetUvcCtrlList()
-        {
-            IntPtr ptr = Lib_GetUvcCtrlList();
-            if (ptr == IntPtr.Zero)
-            {
-                Debug.LogError("[Unity] Lib_GetUvcCtrlList 返回空指针");
-                return string.Empty;
-            }
-
-            string json = Marshal.PtrToStringAnsi(ptr); // 读取完就好,绝对不能 FreeHGlobal
-            // 解析 JSON 并包裹在 wrapper 里
-            try
-            {
-                UVCCtrlWrapper wrapper = JsonUtility.FromJson<UVCCtrlWrapper>("{\"uvcCtrls\":" + json + "}");
-                if (wrapper != null && wrapper.uvcCtrls != null)
-                {
-                    uvcCtrls = wrapper.uvcCtrls;
-                }
-                else
-                {
-                    Debug.LogError("[Unity] JSON 解析失败,UVC 控制列表为空!");
-                }
-            }
-            catch (Exception e)
-            {
-                Debug.LogError("[Unity] 解析 JSON 出错: " + e.Message);
-            }
-
-            return json;
-        }
-
-        public override void SetBrightness(int value)
-        {
-            Lib_SetBrightness(value);
-        }
-
-        public override void SetContrast(int value)
-        {
-            Lib_SetContrast(value);
-        }
-
-        public override void FlipHorizontally()
-        {
-            mCameraMirror = CameraMirror.HORIZONTAL;
-            Lib_SetCameraMirror("HORIZONTAL");
-        }
-
-        public override void FlipVertically()
-        {
-            mCameraMirror = CameraMirror.VERTICAL;
-            Lib_SetCameraMirror("VERTICAL");
-        }
-        public override void resetControlParams()
-        {
-            Lib_ResetControlParams();
-        }
-        public override bool GetIsPreviewing()
-        {
-            return Lib_GetIsPreviewing();
-        }
-        public override int SetCtrlValue(string type, int value)
-        {
-            int result = -1;
-            if (type == "PU_BRIGHTNESS")
-            {
-                Lib_SetBrightness(value);
-                result = 0;
-            }
-            else if (type == "PU_CONTRAST")
-            {
-                Lib_SetContrast(value);
-                result = 0;
-            }
-            return result;
-        }
-
-        public override void OnTextureUpdate(int width, int height, bool bUpdate)
-        {
-            if (_cameraTexture == null) return;
-
-            if (!GetIsPreviewing()) return;
-
-            _command.IssuePluginCustomTextureUpdateV2(
-                GetTextureUpdateCallback(), _cameraTexture, (uint)(Time.time * 60)
-            );
-            Graphics.ExecuteCommandBuffer(_command);
-            _command.Clear();
-        }
-
-
-    }
-}

+ 8 - 0
Assets/InfraredProject/uvc.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 719e9516e51112a46a65e912b23ee4e6
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/InfraredProject/uvc/UVCInfrared.dll


+ 33 - 0
Assets/InfraredProject/uvc/UVCInfrared.dll.meta

@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: 8577533f96485a6478d6004691e751f3
+PluginImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  iconMap: {}
+  executionOrder: {}
+  defineConstraints: []
+  isPreloaded: 0
+  isOverridable: 0
+  isExplicitlyReferenced: 0
+  validateReferences: 1
+  platformData:
+  - first:
+      Any: 
+    second:
+      enabled: 1
+      settings: {}
+  - first:
+      Editor: Editor
+    second:
+      enabled: 0
+      settings:
+        DefaultValueInitialized: true
+  - first:
+      Windows Store Apps: WindowsStoreApps
+    second:
+      enabled: 0
+      settings:
+        CPU: AnyCPU
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Plugins/iOS/libSlambbUVC.a → Assets/Plugins/iOS/libuvccamera.a


+ 1 - 1
Assets/Plugins/iOS/libSlambbUVC.a.meta → Assets/Plugins/iOS/libuvccamera.a.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 345fe111e7282c84db15171985582cfa
+guid: 82d1fed937455964da45998d2db6eed1
 PluginImporter:
   externalObjects: {}
   serializedVersion: 2

+ 164 - 14
Assets/SmartBow/Resources/SmartBow/Prefabs/Views/GameResultView.prefab

@@ -1745,6 +1745,8 @@ GameObject:
   - component: {fileID: 2809629714688895086}
   - component: {fileID: 6499048052760202826}
   - component: {fileID: 8848757712332236261}
+  - component: {fileID: 3356986602132548267}
+  - component: {fileID: 484386033222689954}
   m_Layer: 5
   m_Name: ContentProfile
   m_TagString: Untagged
@@ -1761,8 +1763,8 @@ RectTransform:
   m_GameObject: {fileID: 6029731900343337491}
   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_LocalScale: {x: 1.4, y: 1.4, z: 1.4}
+  m_ConstrainProportionsScale: 1
   m_Children:
   - {fileID: 2458203782904626130}
   - {fileID: 7422063681481786385}
@@ -1770,11 +1772,11 @@ RectTransform:
   m_Father: {fileID: 7060471199435239518}
   m_RootOrder: 1
   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: 0, y: -251}
+  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: 1199.54, y: 596}
-  m_Pivot: {x: 0.5, y: 1}
+  m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &6499048052760202826
 CanvasRenderer:
   m_ObjectHideFlags: 0
@@ -1800,7 +1802,7 @@ MonoBehaviour:
     m_Right: 0
     m_Top: 0
     m_Bottom: 0
-  m_ChildAlignment: 0
+  m_ChildAlignment: 4
   m_Spacing: 78
   m_ChildForceExpandWidth: 1
   m_ChildForceExpandHeight: 1
@@ -1809,6 +1811,54 @@ MonoBehaviour:
   m_ChildScaleWidth: 0
   m_ChildScaleHeight: 0
   m_ReverseArrangement: 0
+--- !u!114 &3356986602132548267
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6029731900343337491}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 0}
+    sizeDelta: {x: 1199.54, y: 596}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 0}
+    sizeDelta: {x: 1199.54, y: 596}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 0}
+    sizeDelta: {x: 1500, y: 800}
+--- !u!114 &484386033222689954
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6029731900343337491}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 101e2c2315aaf3546b4cfd9be49c8aa2, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultTransform:
+    rotation: {x: -0, y: 0, z: 0}
+    scale: {x: 1, y: 1, z: 1}
+  iPhoneTransform:
+    rotation: {x: -0, y: 0, z: 0}
+    scale: {x: 1, y: 1, z: 1}
+  iPadTransform:
+    rotation: {x: -0, y: 0, z: 0}
+    scale: {x: 1.4, y: 1.4, z: 1.4}
 --- !u!1 &6656598585206727642
 GameObject:
   m_ObjectHideFlags: 0
@@ -2036,9 +2086,9 @@ MonoBehaviour:
   m_UiScaleMode: 1
   m_ReferencePixelsPerUnit: 100
   m_ScaleFactor: 1
-  m_ReferenceResolution: {x: 1920, y: 1080}
-  m_ScreenMatchMode: 1
-  m_MatchWidthOrHeight: 1
+  m_ReferenceResolution: {x: 2352, y: 1170}
+  m_ScreenMatchMode: 0
+  m_MatchWidthOrHeight: 0
   m_PhysicalUnit: 3
   m_FallbackScreenDPI: 96
   m_DefaultSpriteDPI: 96
@@ -2326,6 +2376,8 @@ GameObject:
   - component: {fileID: 7060471199492895128}
   - component: {fileID: 7060471199492895129}
   - component: {fileID: 3007993126277153162}
+  - component: {fileID: 3990655176160504193}
+  - component: {fileID: 392824028146298983}
   m_Layer: 5
   m_Name: BtnBack
   m_TagString: Untagged
@@ -2342,7 +2394,7 @@ RectTransform:
   m_GameObject: {fileID: 7060471199492895132}
   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_LocalScale: {x: 1.2, y: 1.2, z: 1.2}
   m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 5494337471595944845}
@@ -2353,7 +2405,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0}
   m_AnchorMax: {x: 0.5, y: 0}
-  m_AnchoredPosition: {x: -395, y: 67}
+  m_AnchoredPosition: {x: -480, y: 200}
   m_SizeDelta: {x: 790, y: 80}
   m_Pivot: {x: 0, y: 0}
 --- !u!222 &7060471199492895128
@@ -2420,6 +2472,54 @@ MonoBehaviour:
   m_ChildScaleWidth: 0
   m_ChildScaleHeight: 0
   m_ReverseArrangement: 0
+--- !u!114 &3990655176160504193
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7060471199492895132}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0}
+    anchorMax: {x: 0.5, y: 0}
+    anchoredPosition: {x: -395, y: 67}
+    sizeDelta: {x: 790, y: 80}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0}
+    anchorMax: {x: 0.5, y: 0}
+    anchoredPosition: {x: -395, y: 67}
+    sizeDelta: {x: 790, y: 80}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 0}
+    anchorMax: {x: 0.5, y: 0}
+    anchoredPosition: {x: -480, y: 200}
+    sizeDelta: {x: 790, y: 80}
+--- !u!114 &392824028146298983
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7060471199492895132}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 101e2c2315aaf3546b4cfd9be49c8aa2, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultTransform:
+    rotation: {x: -0, y: 0, z: 0}
+    scale: {x: 1, y: 1, z: 1}
+  iPhoneTransform:
+    rotation: {x: -0, y: 0, z: 0}
+    scale: {x: 1, y: 1, z: 1}
+  iPadTransform:
+    rotation: {x: -0, y: 0, z: 0}
+    scale: {x: 1.2, y: 1.2, z: 1.2}
 --- !u!1 &7064635436682709180
 GameObject:
   m_ObjectHideFlags: 0
@@ -3200,6 +3300,8 @@ GameObject:
   m_Component:
   - component: {fileID: 483308614463441237}
   - component: {fileID: 6613733549090348077}
+  - component: {fileID: 3076805395066173960}
+  - component: {fileID: 543400465755858068}
   m_Layer: 5
   m_Name: top
   m_TagString: Untagged
@@ -3216,7 +3318,7 @@ RectTransform:
   m_GameObject: {fileID: 9060665991228818113}
   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_LocalScale: {x: 1.2, y: 1.2, z: 1.2}
   m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 4015081912712196568}
@@ -3227,7 +3329,7 @@ RectTransform:
   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: 0, y: -134}
+  m_AnchoredPosition: {x: 0, y: -200}
   m_SizeDelta: {x: 1756, y: 40}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &6613733549090348077
@@ -3256,6 +3358,54 @@ MonoBehaviour:
   m_ChildScaleWidth: 0
   m_ChildScaleHeight: 0
   m_ReverseArrangement: 0
+--- !u!114 &3076805395066173960
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9060665991228818113}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 0, y: -134}
+    sizeDelta: {x: 1756, y: 40}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 0, y: -134}
+    sizeDelta: {x: 1756, y: 40}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 0, y: -200}
+    sizeDelta: {x: 1756, y: 40}
+--- !u!114 &543400465755858068
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9060665991228818113}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 101e2c2315aaf3546b4cfd9be49c8aa2, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultTransform:
+    rotation: {x: -0, y: 0, z: 0}
+    scale: {x: 1, y: 1, z: 1}
+  iPhoneTransform:
+    rotation: {x: -0, y: 0, z: 0}
+    scale: {x: 1, y: 1, z: 1}
+  iPadTransform:
+    rotation: {x: -0, y: 0, z: 0}
+    scale: {x: 1.2, y: 1.2, z: 1.2}
 --- !u!1 &9126971201387436072
 GameObject:
   m_ObjectHideFlags: 0

+ 210 - 14
Assets/SmartBow/Resources/SmartBow/Prefabs/Views/Home/ConnectGuidanceView.prefab

@@ -514,8 +514,8 @@ RectTransform:
   m_GameObject: {fileID: 1254516241781985499}
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1.2, y: 1.2, z: 1.2}
-  m_ConstrainProportionsScale: 0
+  m_LocalScale: {x: 1.3, y: 1.3, z: 1.3}
+  m_ConstrainProportionsScale: 1
   m_Children:
   - {fileID: 1254516241887691377}
   m_Father: {fileID: 1254516242548659640}
@@ -836,6 +836,7 @@ GameObject:
   - component: {fileID: 1254516242006829827}
   - component: {fileID: 1254516242006829826}
   - component: {fileID: 1254516242006829829}
+  - component: {fileID: 499999032523033156}
   m_Layer: 5
   m_Name: Layout
   m_TagString: Untagged
@@ -863,7 +864,7 @@ RectTransform:
   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: 60}
+  m_AnchoredPosition: {x: 0, y: 150}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &1254516242006829824
@@ -944,6 +945,33 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 2
   m_VerticalFit: 2
+--- !u!114 &499999032523033156
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1254516242006829831}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 60}
+    sizeDelta: {x: 1678, y: 504}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 60}
+    sizeDelta: {x: 1678, y: 504}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 150}
+    sizeDelta: {x: 1678, y: 504}
 --- !u!1 &1254516242017813035
 GameObject:
   m_ObjectHideFlags: 0
@@ -1541,6 +1569,7 @@ GameObject:
   - component: {fileID: 1254516242548659623}
   - component: {fileID: 1254516242548659622}
   - component: {fileID: 1254516242548659641}
+  - component: {fileID: 3196615673849319978}
   m_Layer: 5
   m_Name: ConfirmStep
   m_TagString: Untagged
@@ -1567,7 +1596,7 @@ RectTransform:
   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: -294}
+  m_AnchoredPosition: {x: 0, y: -230}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &1254516242548659620
@@ -1648,6 +1677,33 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 2
   m_VerticalFit: 2
+--- !u!114 &3196615673849319978
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1254516242548659643}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: -294}
+    sizeDelta: {x: 714.0967, y: 37.071743}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: -294}
+    sizeDelta: {x: 714.0967, y: 37.071743}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: -230}
+    sizeDelta: {x: 714.0967, y: 37.071743}
 --- !u!1 &1254516242565904549
 GameObject:
   m_ObjectHideFlags: 0
@@ -1662,6 +1718,7 @@ GameObject:
   - component: {fileID: 1254516242565904545}
   - component: {fileID: 1254516242565904544}
   - component: {fileID: 1254516242565904547}
+  - component: {fileID: 4768833217593542223}
   m_Layer: 5
   m_Name: BtnConnectBLE
   m_TagString: Untagged
@@ -1688,7 +1745,7 @@ RectTransform:
   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: -416}
+  m_AnchoredPosition: {x: 0, y: -430}
   m_SizeDelta: {x: 0, y: 96}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &1254516242565904559
@@ -1825,6 +1882,33 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 2
   m_VerticalFit: 0
+--- !u!114 &4768833217593542223
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1254516242565904549}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: -416}
+    sizeDelta: {x: 476, y: 96}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: -416}
+    sizeDelta: {x: 476, y: 96}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: -430}
+    sizeDelta: {x: 476, y: 96}
 --- !u!1 &1254516242596103305
 GameObject:
   m_ObjectHideFlags: 0
@@ -1934,6 +2018,7 @@ GameObject:
   - component: {fileID: 1254516242749286048}
   - component: {fileID: 1254516242749286051}
   - component: {fileID: 7526930593107175942}
+  - component: {fileID: 1957408439636325996}
   m_Layer: 5
   m_Name: BtnBack
   m_TagString: Untagged
@@ -1958,9 +2043,9 @@ RectTransform:
   m_Father: {fileID: 6942982441339297973}
   m_RootOrder: 8
   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: 1009, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: 1009, y: -190}
   m_SizeDelta: {x: 290, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &1254516242749286049
@@ -2080,6 +2165,33 @@ MonoBehaviour:
   OnEndEvent:
     m_PersistentCalls:
       m_Calls: []
+--- !u!114 &1957408439636325996
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1254516242749286055}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 1009, y: -190}
+    sizeDelta: {x: 290, y: 50}
 --- !u!1 &1254516242951852258
 GameObject:
   m_ObjectHideFlags: 0
@@ -2491,7 +2603,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_Material: {fileID: 0}
   m_Color: {r: 0, g: 0, b: 0, a: 1}
-  m_RaycastTarget: 1
+  m_RaycastTarget: 0
   m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
   m_Maskable: 1
   m_OnCullStateChanged:
@@ -2617,6 +2729,7 @@ GameObject:
   - component: {fileID: 1254516243596033485}
   - component: {fileID: 1254516243596033484}
   - component: {fileID: 963888489234101719}
+  - component: {fileID: 7424310720712351570}
   m_Layer: 5
   m_Name: Title
   m_TagString: Untagged
@@ -2639,9 +2752,9 @@ RectTransform:
   m_Father: {fileID: 6942982441339297973}
   m_RootOrder: 1
   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: -808, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: -808, y: -190}
   m_SizeDelta: {x: 600, y: 30}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &1254516243596033485
@@ -2701,6 +2814,33 @@ MonoBehaviour:
   textKey: Guidance_Title
   layoutRebuildObject: {fileID: 0}
   languageFontSizes: []
+--- !u!114 &7424310720712351570
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1254516243596033486}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 30}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: -808, y: 460}
+    sizeDelta: {x: 600, y: 30}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: -808, y: -190}
+    sizeDelta: {x: 600, y: 30}
 --- !u!1 &1254516243689083524
 GameObject:
   m_ObjectHideFlags: 0
@@ -3015,6 +3155,7 @@ GameObject:
   - component: {fileID: 8991039254382567996}
   - component: {fileID: 4432120319966050709}
   - component: {fileID: 1290147393908934458}
+  - component: {fileID: 1357785691750095132}
   m_Layer: 5
   m_Name: Layout_Artemis
   m_TagString: Untagged
@@ -3041,7 +3182,7 @@ RectTransform:
   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: 60}
+  m_AnchoredPosition: {x: 0, y: 200}
   m_SizeDelta: {x: 1684, y: 504}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &1932617419059044495
@@ -3122,6 +3263,33 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 2
   m_VerticalFit: 2
+--- !u!114 &1357785691750095132
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3902116191185670344}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 60}
+    sizeDelta: {x: 1684, y: 504}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 60}
+    sizeDelta: {x: 1684, y: 504}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 200}
+    sizeDelta: {x: 1684, y: 504}
 --- !u!1 &4237865584230050049
 GameObject:
   m_ObjectHideFlags: 0
@@ -4066,6 +4234,7 @@ GameObject:
   - component: {fileID: 2636649588132183142}
   - component: {fileID: 4789337959124776431}
   - component: {fileID: 3238722021975074352}
+  - component: {fileID: 682560622213208836}
   m_Layer: 5
   m_Name: Layout_Pistol
   m_TagString: Untagged
@@ -4092,7 +4261,7 @@ RectTransform:
   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: 60}
+  m_AnchoredPosition: {x: 0, y: 200}
   m_SizeDelta: {x: 1684, y: 504}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &6788542740146356796
@@ -4173,6 +4342,33 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 2
   m_VerticalFit: 2
+--- !u!114 &682560622213208836
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7114980679318373955}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 60}
+    sizeDelta: {x: 1684, y: 504}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 60}
+    sizeDelta: {x: 1684, y: 504}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 0, y: 200}
+    sizeDelta: {x: 1684, y: 504}
 --- !u!1 &7279536001665279125
 GameObject:
   m_ObjectHideFlags: 0

+ 182 - 16
Assets/SmartBow/Resources/SmartBow/Prefabs/Views/Home/InfraredView.prefab

@@ -13,6 +13,7 @@ GameObject:
   - component: {fileID: 4724567438371117362}
   - component: {fileID: 5890308980760972331}
   - component: {fileID: 440716929173766414}
+  - component: {fileID: 8942249232209844611}
   m_Layer: 5
   m_Name: LayoutNew
   m_TagString: Untagged
@@ -39,7 +40,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: -45.3}
+  m_AnchoredPosition: {x: 0, y: -45.30005}
   m_SizeDelta: {x: 0, y: 0}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &2570255970790985724
@@ -112,7 +113,7 @@ MonoBehaviour:
     m_Top: 0
     m_Bottom: 0
   m_ChildAlignment: 4
-  m_Spacing: 28.06
+  m_Spacing: 50
   m_ChildForceExpandWidth: 1
   m_ChildForceExpandHeight: 1
   m_ChildControlWidth: 0
@@ -120,6 +121,60 @@ MonoBehaviour:
   m_ChildScaleWidth: 0
   m_ChildScaleHeight: 0
   m_ReverseArrangement: 0
+--- !u!114 &8942249232209844611
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 501852795612752706}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: d6ff25dba7d067948885d4fe334e8a5c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    paddingLeft: 0
+    paddingRight: 0
+    paddingTop: 0
+    paddingBottom: 0
+    spacing: 20
+    childAlignment: 4
+    reverseArrangement: 0
+    controlChildWidth: 0
+    controlChildHeight: 0
+    useChildScaleWidth: 0
+    useChildScaleHeight: 0
+    childForceExpandWidth: 1
+    childForceExpandHeight: 1
+  iPhoneLayout:
+    paddingLeft: 0
+    paddingRight: 0
+    paddingTop: 0
+    paddingBottom: 0
+    spacing: 20
+    childAlignment: 4
+    reverseArrangement: 0
+    controlChildWidth: 0
+    controlChildHeight: 0
+    useChildScaleWidth: 0
+    useChildScaleHeight: 0
+    childForceExpandWidth: 1
+    childForceExpandHeight: 1
+  iPadLayout:
+    paddingLeft: 0
+    paddingRight: 0
+    paddingTop: 0
+    paddingBottom: 0
+    spacing: 50
+    childAlignment: 4
+    reverseArrangement: 0
+    controlChildWidth: 0
+    controlChildHeight: 0
+    useChildScaleWidth: 0
+    useChildScaleHeight: 0
+    childForceExpandWidth: 1
+    childForceExpandHeight: 1
 --- !u!1 &575528124666787529
 GameObject:
   m_ObjectHideFlags: 0
@@ -409,7 +464,7 @@ RectTransform:
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 600, y: 577}
+  m_SizeDelta: {x: 520.6791, y: 535}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &3574952487640376463
 MonoBehaviour:
@@ -775,6 +830,7 @@ GameObject:
   - component: {fileID: 3367342650323003526}
   - component: {fileID: 3400640804592948125}
   - component: {fileID: 2961210538681748150}
+  - component: {fileID: 8749323604262535010}
   m_Layer: 5
   m_Name: GameObject
   m_TagString: Untagged
@@ -801,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: -125}
+  m_AnchoredPosition: {x: 156.1, y: -190}
   m_SizeDelta: {x: 1500, y: 78}
   m_Pivot: {x: 0, y: 0.5}
 --- !u!114 &3400640804592948125
@@ -844,6 +900,33 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_HorizontalFit: 0
   m_VerticalFit: 0
+--- !u!114 &8749323604262535010
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2392643086014881808}
+  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: 156.1, y: -125}
+    sizeDelta: {x: 1500, y: 78}
+  iPhoneLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 156.1, y: -125}
+    sizeDelta: {x: 1500, y: 78}
+  iPadLayout:
+    anchorMin: {x: 0, y: 1}
+    anchorMax: {x: 0, y: 1}
+    anchoredPosition: {x: 156.1, y: -190}
+    sizeDelta: {x: 1500, y: 78}
 --- !u!1 &2397657128313122477
 GameObject:
   m_ObjectHideFlags: 0
@@ -1293,7 +1376,7 @@ RectTransform:
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 600, y: 577}
+  m_SizeDelta: {x: 520.6791, y: 495}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &4100461672202028801
 MonoBehaviour:
@@ -1993,6 +2076,7 @@ GameObject:
   - component: {fileID: 5651314242594850833}
   - component: {fileID: 5651314242594850834}
   - component: {fileID: 7713953647772329699}
+  - component: {fileID: 4577562181219238267}
   m_Layer: 5
   m_Name: BtnBack
   m_TagString: Untagged
@@ -2017,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: 0.5}
-  m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: 1009, y: 460}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: 1009, y: -190}
   m_SizeDelta: {x: 290, y: 50}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &5651314242594850832
@@ -2139,6 +2223,33 @@ MonoBehaviour:
   OnEndEvent:
     m_PersistentCalls:
       m_Calls: []
+--- !u!114 &4577562181219238267
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5651314242594850862}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7615d60203293054182d7947313a52c8, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPhoneLayout:
+    anchorMin: {x: 0.5, y: 0.5}
+    anchorMax: {x: 0.5, y: 0.5}
+    anchoredPosition: {x: 1009, y: 460}
+    sizeDelta: {x: 290, y: 50}
+  iPadLayout:
+    anchorMin: {x: 0.5, y: 1}
+    anchorMax: {x: 0.5, y: 1}
+    anchoredPosition: {x: 1009, y: -190}
+    sizeDelta: {x: 290, y: 50}
 --- !u!1 &5651314242670474724
 GameObject:
   m_ObjectHideFlags: 0
@@ -3017,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: -654.06}
+  m_AnchoredPosition: {x: 1006.465, y: -898}
   m_SizeDelta: {x: 444, y: 96}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &3037373131455025564
@@ -3536,6 +3647,7 @@ GameObject:
   - component: {fileID: 7644054724635316563}
   - component: {fileID: 6817529352353233077}
   - component: {fileID: 9159261030246870936}
+  - component: {fileID: 8010283695002594467}
   m_Layer: 5
   m_Name: Item0
   m_TagString: Untagged
@@ -3564,7 +3676,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: 578}
+  m_SizeDelta: {x: 2012.93, y: 800}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!222 &7644054724635316563
 CanvasRenderer:
@@ -3619,17 +3731,71 @@ MonoBehaviour:
   m_Padding:
     m_Left: 0
     m_Right: 0
-    m_Top: 0
+    m_Top: 150
     m_Bottom: 0
-  m_ChildAlignment: 0
-  m_Spacing: 0
-  m_ChildForceExpandWidth: 1
-  m_ChildForceExpandHeight: 1
+  m_ChildAlignment: 1
+  m_Spacing: 100
+  m_ChildForceExpandWidth: 0
+  m_ChildForceExpandHeight: 0
   m_ChildControlWidth: 0
   m_ChildControlHeight: 0
   m_ChildScaleWidth: 0
   m_ChildScaleHeight: 0
   m_ReverseArrangement: 0
+--- !u!114 &8010283695002594467
+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: cdf2e727a453a654792a316a3a653ef4, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  defaultLayout:
+    paddingLeft: 0
+    paddingRight: 0
+    paddingTop: 150
+    paddingBottom: 0
+    spacing: 40
+    childAlignment: 1
+    reverseArrangement: 0
+    controlChildWidth: 0
+    controlChildHeight: 0
+    useChildScaleWidth: 0
+    useChildScaleHeight: 0
+    childForceExpandWidth: 0
+    childForceExpandHeight: 0
+  iPhoneLayout:
+    paddingLeft: 0
+    paddingRight: 0
+    paddingTop: 150
+    paddingBottom: 0
+    spacing: 40
+    childAlignment: 1
+    reverseArrangement: 0
+    controlChildWidth: 0
+    controlChildHeight: 0
+    useChildScaleWidth: 0
+    useChildScaleHeight: 0
+    childForceExpandWidth: 0
+    childForceExpandHeight: 0
+  iPadLayout:
+    paddingLeft: 0
+    paddingRight: 0
+    paddingTop: 150
+    paddingBottom: 0
+    spacing: 100
+    childAlignment: 1
+    reverseArrangement: 0
+    controlChildWidth: 0
+    controlChildHeight: 0
+    useChildScaleWidth: 0
+    useChildScaleHeight: 0
+    childForceExpandWidth: 0
+    childForceExpandHeight: 0
 --- !u!1 &8726777307050236018
 GameObject:
   m_ObjectHideFlags: 0
@@ -3667,7 +3833,7 @@ RectTransform:
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 600, y: 577}
+  m_SizeDelta: {x: 520.6791, y: 510.09998}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &9028448675417149743
 MonoBehaviour:

+ 8 - 0
Assets/SmartBow/Scripts/AdaptUI.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 527f01c182398e8409796537c714a437
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 87 - 0
Assets/SmartBow/Scripts/AdaptUI/AddressableImageLoader.cs

@@ -0,0 +1,87 @@
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.AddressableAssets;
+using UnityEngine.ResourceManagement.AsyncOperations;
+using System.Collections.Generic;
+using UnityEngine.SceneManagement;
+namespace AdaptUI
+{
+    public class AddressableImageLoader : MonoBehaviour
+    {
+        public enum DeviceType { Auto, iPhone, iPad }
+        [Header("设备类型 (Auto = 自动检测)")]
+        public DeviceType selectedDevice = DeviceType.Auto;
+        public string resourceKey = "LoginBG"; // Addressable 资源 Key
+
+        private void Awake()
+        {
+            LoadImage(); // 运行时加载
+                         // SceneManager.sceneLoaded += OnSceneLoaded; // 监听场景切换
+        }
+
+        private void OnDestroy()
+        {
+            //SceneManager.sceneLoaded -= OnSceneLoaded;
+        }
+
+        // private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
+        // {
+        //     Debug.Log($"📌 [Runtime] 场景切换: {scene.name}, 重新加载 UI");
+        //     LoadImage();
+        // }
+
+        public void LoadImage()
+        {
+            if (string.IsNullOrEmpty(resourceKey))
+            {
+                Debug.LogWarning("⚠️ 资源 Key 为空,请在 Inspector 面板中输入 Key!");
+                return;
+            }
+
+            string label = GetDeviceLabel();
+            Debug.Log($"📌 加载资源 Key:{resourceKey},Label:{label}");
+
+            Addressables.LoadAssetsAsync<Sprite>(new List<object> { resourceKey, label }, null, Addressables.MergeMode.Intersection)
+                .Completed += OnSpriteLoaded;
+        }
+
+        private void OnSpriteLoaded(AsyncOperationHandle<IList<Sprite>> handle)
+        {
+            if (handle.Status == AsyncOperationStatus.Succeeded && handle.Result.Count > 0)
+            {
+                ApplySprite(handle.Result[0]);
+            }
+            else
+            {
+                Debug.LogError("⚠️ 图片加载失败或未找到匹配的资源!");
+            }
+        }
+
+        private void ApplySprite(Sprite sprite)
+        {
+            Image image = GetComponent<Image>();
+            if (image != null) image.sprite = sprite;
+        }
+
+        // private string GetDeviceLabel()
+        // {
+        //     if (selectedDevice == DeviceType.iPad) return "iPad";
+        //     if (selectedDevice == DeviceType.iPhone) return "iPhone";
+
+        //     float aspectRatio = (float)Screen.width / Screen.height;
+        //     Debug.Log($"📌 运行时计算屏幕分辨率: width = {Screen.width}, height = {Screen.height}, aspectRatio = {aspectRatio}");
+
+        //     return aspectRatio < 1.4f ? "iPad" : "iPhone";
+        // }
+        private string GetDeviceLabel()
+        {
+            if (selectedDevice == DeviceType.iPad) return "iPad";
+            if (selectedDevice == DeviceType.iPhone) return "iPhone";
+
+            DeviceTypeHelper.DeviceType detectedType = DeviceTypeHelper.DetectDeviceType();
+           // Debug.Log($"📌 运行时设备检测结果: {detectedType}");
+
+            return detectedType == DeviceTypeHelper.DeviceType.iPad ? "iPad" : "iPhone";
+        }
+    }
+}

+ 1 - 1
Assets/InfraredProject/InfraredCamera/Scripts/UVCInterface_IOS.cs.meta → Assets/SmartBow/Scripts/AdaptUI/AddressableImageLoader.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: bfa89516df6ddcd4492aa51fb5d29505
+guid: 78c4a64cc0323094696857e97986f164
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 69 - 0
Assets/SmartBow/Scripts/AdaptUI/DeviceTypeHelper.cs

@@ -0,0 +1,69 @@
+using UnityEngine;
+
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+namespace AdaptUI
+{
+    public static class DeviceTypeHelper
+    {
+        public enum DeviceType { iPhone, iPad }
+
+        public static DeviceType DetectDeviceType()
+        {
+#if UNITY_IOS && !UNITY_EDITOR
+        return DetectDeviceRuntime(); // 在 iOS 真机上运行
+#else
+            return DetectDeviceEditor(); // 在 Editor 或其他平台运行
+#endif
+        }
+
+        // 运行时(iOS 设备)检测
+        private static DeviceType DetectDeviceRuntime()
+        {
+#if UNITY_IOS && !UNITY_EDITOR
+        // switch (UnityEngine.iOS.Device.generation)
+        // {
+        //     case UnityEngine.iOS.DeviceGeneration.iPad1Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPad2Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPad3Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPad4Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadAir1:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadAir2:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadMini1Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadMini2Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadMini3Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadMini4Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadPro1Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadPro2Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadPro3Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadPro4Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadPro5Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadPro6Gen:
+        //     case UnityEngine.iOS.DeviceGeneration.iPadUnknown:
+        //         return DeviceType.iPad;
+        //     default:
+        //         return DeviceType.iPhone;
+        // }
+        var deviceGen = UnityEngine.iOS.Device.generation;
+        bool isIpad = deviceGen.ToString().Contains("iPad");
+
+        Debug.Log($"📱 [Runtime] 设备识别: {deviceGen}, isIpad={isIpad}");
+        return isIpad ? DeviceType.iPad : DeviceType.iPhone;
+#else
+            // 非 iOS 平台,回退到分辨率检测
+            return DetectDeviceEditor();
+
+#endif
+        }
+
+        // 编辑器模式下,通过 Game 视图大小检测设备类型
+        private static DeviceType DetectDeviceEditor()
+        {
+            Vector2 gameViewSize = GameViewSizeHelper.GetGameViewSize();
+            float aspectRatio = gameViewSize.x / gameViewSize.y;
+            Debug.Log($"[Editor] Game View: width={gameViewSize.x}, height={gameViewSize.y}, aspectRatio={aspectRatio}");
+            return aspectRatio < 1.5f ? DeviceType.iPad : DeviceType.iPhone;
+        }
+    }
+}

+ 1 - 1
Assets/InfraredProject/InfraredCamera/Scripts/UVCInterface.cs.meta → Assets/SmartBow/Scripts/AdaptUI/DeviceTypeHelper.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 5f1c2725f9e681e4b9141e0214161630
+guid: 9bc03c345bc1e2a4580a0898759911c8
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 8 - 0
Assets/SmartBow/Scripts/AdaptUI/Editor.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4a75b1d79e34c08468aacd91438b3971
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 100 - 0
Assets/SmartBow/Scripts/AdaptUI/Editor/AddressableImageLoaderEditor.cs

@@ -0,0 +1,100 @@
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UI;
+using UnityEngine.AddressableAssets;
+using UnityEngine.ResourceManagement.AsyncOperations;
+namespace AdaptUI
+{
+    [CustomEditor(typeof(AddressableImageLoader))]
+    public class AddressableImageLoaderEditor : Editor
+    {
+
+        private Vector2 lastGameViewSize;
+
+        private void OnEnable()
+        {
+            //EditorApplication.update += CheckGameViewSizeChange;
+        }
+
+        private void OnDisable()
+        {
+            //EditorApplication.update -= CheckGameViewSizeChange;
+        }
+
+        private void CheckGameViewSizeChange()
+        {
+            Vector2 currentSize = GameViewSizeHelper.GetGameViewSize();
+            if (currentSize != lastGameViewSize)  // 仅在尺寸变化时触发
+            {
+                lastGameViewSize = currentSize;
+                //Debug.Log($"📌 [Editor] Game 视图分辨率变化: {currentSize.x} x {currentSize.y}");
+                AddressableImageLoader loader = (AddressableImageLoader)target;
+                LoadImageInEditor(loader);
+                // loader.LoadImage(); // 重新加载 UI 资源
+            }
+        }
+        public override void OnInspectorGUI()
+        {
+            DrawDefaultInspector(); // 默认 Inspector UI
+
+            AddressableImageLoader loader = (AddressableImageLoader)target;
+
+            if (GUILayout.Button("🔄 刷新 UI(Editor 模式)"))
+            {
+                LoadImageInEditor(loader);
+            }
+        }
+
+        public static void LoadImageInEditor(AddressableImageLoader loader)
+        {
+            if (!Application.isPlaying) // 仅在 Editor 模式下执行
+            {
+                string label = GetDeviceLabel(loader);
+                string key = loader.resourceKey;
+                //Debug.Log($"📌 [Editor] 加载 Addressable 资源: Key = {key}, Label = {label}");
+
+                Addressables.LoadAssetsAsync<Sprite>(new[] { key, label }, null, Addressables.MergeMode.Intersection)
+                    .Completed += handle =>
+                    {
+                        if (handle.Status == AsyncOperationStatus.Succeeded && handle.Result.Count > 0)
+                        {
+                            Sprite sprite = handle.Result[0];
+                            Image image = loader.GetComponent<Image>();
+                            if (image != null)
+                            {
+                                Undo.RecordObject(image, "Change Sprite"); // 支持 Undo
+                                image.sprite = sprite;
+                                Debug.Log($"✅ [Editor] UI 资源已更新: {sprite.name}");
+                                EditorUtility.SetDirty(image);
+                            }
+                        }
+                        else
+                        {
+                            Debug.LogWarning($"⚠️ [Editor] 未找到匹配的 Addressable 资源! Key={key}, Label={label}");
+                        }
+                    };
+            }
+        }
+        // private static string GetDeviceLabel(AddressableImageLoader loader)
+        // {
+        //     if (loader.selectedDevice == AddressableImageLoader.DeviceType.iPad) return "iPad";
+        //     if (loader.selectedDevice == AddressableImageLoader.DeviceType.iPhone) return "iPhone";
+
+        //     Vector2 gameViewSize = GameViewSizeHelper.GetGameViewSize();
+        //     float aspectRatio = gameViewSize.x / gameViewSize.y;
+        //     Debug.Log($"📌 [Editor] 计算 Game 视图分辨率: width = {gameViewSize.x}, height = {gameViewSize.y}, aspectRatio = {aspectRatio}");
+
+        //     return aspectRatio < 1.4f ? "iPad" : "iPhone"; // 修正判定逻辑
+        // }
+        private static string GetDeviceLabel(AddressableImageLoader loader)
+        {
+            if (loader.selectedDevice == AddressableImageLoader.DeviceType.iPad) return "iPad";
+            if (loader.selectedDevice == AddressableImageLoader.DeviceType.iPhone) return "iPhone";
+
+            DeviceTypeHelper.DeviceType detectedType = DeviceTypeHelper.DetectDeviceType();
+            //Debug.Log($"📌 [Editor] 设备检测结果: {detectedType}");
+
+            return detectedType == DeviceTypeHelper.DeviceType.iPad ? "iPad" : "iPhone";
+        }
+    }
+}

+ 1 - 1
Assets/InfraredProject/InfraredCamera/Scripts/UVCInterface_Android.cs.meta → Assets/SmartBow/Scripts/AdaptUI/Editor/AddressableImageLoaderEditor.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 99d28997f3efc0a43b15caf5108eb73c
+guid: be29f0e761b9cc3439506ffb1837d223
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 78 - 0
Assets/SmartBow/Scripts/AdaptUI/Editor/AddressableImageLoaderWindow.cs

@@ -0,0 +1,78 @@
+using UnityEngine;
+using UnityEditor;
+using System.Collections.Generic;
+namespace AdaptUI
+{
+    public class AddressableImageLoaderWindow : EditorWindow
+    {
+        private List<AddressableImageLoader> loaders = new List<AddressableImageLoader>();
+
+        [MenuItem("Window/My Addressable UI Manager")]
+        public static void ShowWindow()
+        {
+            GetWindow<AddressableImageLoaderWindow>("Addressable UI Manager");
+        }
+
+        private void OnGUI()
+        {
+            EditorGUILayout.LabelField("Addressable UI 管理器", EditorStyles.boldLabel);
+
+            if (GUILayout.Button("🔄 查找所有 AddressableImageLoader"))
+            {
+                FindAllLoaders();
+            }
+
+            if (loaders.Count > 0)
+            {
+                EditorGUILayout.Space();
+                EditorGUILayout.LabelField($"发现 {loaders.Count} 个 AddressableImageLoader", EditorStyles.boldLabel);
+
+                if (GUILayout.Button("🔄 刷新全部 UI 资源"))
+                {
+                    RefreshAllLoaders();
+                }
+
+                EditorGUILayout.Space();
+                foreach (var loader in loaders)
+                {
+                    EditorGUILayout.BeginHorizontal();
+                    EditorGUILayout.ObjectField(loader.gameObject, typeof(GameObject), true);
+                    if (GUILayout.Button("刷新", GUILayout.Width(60)))
+                    {
+                        RefreshLoader(loader);
+                    }
+                    EditorGUILayout.EndHorizontal();
+                }
+            }
+            else
+            {
+                EditorGUILayout.HelpBox("没有找到 AddressableImageLoader 组件,请点击查找按钮。", MessageType.Info);
+            }
+        }
+
+        private void FindAllLoaders()
+        {
+            loaders.Clear();
+            AddressableImageLoader[] allLoaders = FindObjectsOfType<AddressableImageLoader>();
+            loaders.AddRange(allLoaders);
+            //Debug.Log($"发现 {loaders.Count} 个 AddressableImageLoader 组件");
+        }
+
+        private void RefreshAllLoaders()
+        {
+            foreach (var loader in loaders)
+            {
+                RefreshLoader(loader);
+            }
+        }
+
+        private void RefreshLoader(AddressableImageLoader loader)
+        {
+            if (loader != null)
+            {
+                AddressableImageLoaderEditor.LoadImageInEditor(loader);
+                //Debug.Log($"已刷新 {loader.gameObject.name}");
+            }
+        }
+    }
+}

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

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

+ 91 - 0
Assets/SmartBow/Scripts/AdaptUI/Editor/UIAdaptiveRectEditor.cs

@@ -0,0 +1,91 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEditor;
+using UnityEngine;
+
+namespace AdaptUI
+{
+
+    [CustomEditor(typeof(UIAdaptiveRect))]
+    public class UIAdaptiveRectEditor : Editor
+    {
+        private enum DeviceType { init, iPhone, iPad }
+
+        public override void OnInspectorGUI()
+        {
+            UIAdaptiveRect script = (UIAdaptiveRect)target;
+            RectTransform rectTransform = script.GetComponent<RectTransform>();
+
+            EditorGUILayout.Space();
+            EditorGUILayout.LabelField("自定义 UI 适配", EditorStyles.boldLabel);
+
+            // 📌 初始 布局
+            DrawLayoutEditor(script, "初始 布局", DeviceType.init, ref script.defaultLayout, rectTransform);
+
+            // 📌 iPhone 布局
+            DrawLayoutEditor(script, "iPhone 布局", DeviceType.iPhone, ref script.iPhoneLayout, rectTransform);
+
+            // 📌 iPad 布局
+            DrawLayoutEditor(script, "iPad 布局", DeviceType.iPad, ref script.iPadLayout, rectTransform);
+
+            EditorGUILayout.Space();
+            if (GUILayout.Button("自动 UI 适配"))
+            {
+                script.ApplyLayout();
+            }
+        }
+
+        // 📌 可视化 RectTransformData(类似官方 Anchor Presets)
+        private void DrawLayoutEditor(UIAdaptiveRect script, string title, DeviceType deviceType, ref RectTransformData layout, RectTransform rectTransform)
+        {
+            EditorGUILayout.LabelField(title, EditorStyles.boldLabel);
+            EditorGUI.indentLevel++;
+
+            // 直接修改 layout,而不是创建新的变量
+            layout.anchorMin = EditorGUILayout.Vector2Field("Anchor Min", layout.anchorMin);
+            layout.anchorMax = EditorGUILayout.Vector2Field("Anchor Max", layout.anchorMax);
+            layout.anchoredPosition = EditorGUILayout.Vector2Field("Anchored Position", layout.anchoredPosition);
+            layout.sizeDelta = EditorGUILayout.Vector2Field("Size Delta", layout.sizeDelta);
+
+            // 📌 直接应用当前数据到 RectTransform
+            if (GUILayout.Button("应用 " + deviceType + " 布局"))
+            {
+                // 将 layout 中的数据应用到当前对象的 RectTransform 上
+                rectTransform.anchorMin = layout.anchorMin;
+                rectTransform.anchorMax = layout.anchorMax;
+                rectTransform.anchoredPosition = layout.anchoredPosition;
+                rectTransform.sizeDelta = layout.sizeDelta;
+
+                // 📌 记录修改,确保数据保存
+                Undo.RecordObject(script, "Set " + deviceType + " Layout");
+                EditorUtility.SetDirty(script);
+            }
+
+            // 📌 获取当前 RectTransform 组件的值并赋值给当前布局
+            if (deviceType != DeviceType.init)
+            {
+                if (GUILayout.Button("获取当前组件的值"))
+                {
+                    layout = new RectTransformData(rectTransform);  // 直接更新 layout 数据
+
+                    // 把数据存储到对应的布局变量
+                    if (deviceType == DeviceType.iPhone)
+                    {
+                        script.iPhoneLayout = layout;
+                    }
+                    else if (deviceType == DeviceType.iPad)
+                    {
+                        script.iPadLayout = layout;
+                    }
+
+                    Undo.RecordObject(script, "Get " + deviceType + " Layout");
+                    EditorUtility.SetDirty(script);
+                }
+            }
+
+
+            EditorGUI.indentLevel--;
+            EditorGUILayout.Space();
+        }
+    }
+}

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

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

+ 82 - 0
Assets/SmartBow/Scripts/AdaptUI/Editor/UIAdaptiveTransformEditor.cs

@@ -0,0 +1,82 @@
+using UnityEditor;
+using UnityEngine;
+
+namespace AdaptUI
+{
+    [CustomEditor(typeof(UIAdaptiveTransform))]
+    public class UIAdaptiveTransformEditor : Editor
+    {
+        private enum DeviceType { Default, iPhone, iPad }
+
+        public override void OnInspectorGUI()
+        {
+            UIAdaptiveTransform script = (UIAdaptiveTransform)target;
+            Transform targetTransform = script.transform;
+
+            EditorGUILayout.Space();
+            EditorGUILayout.LabelField("🎛 自定义 Transform 适配", EditorStyles.boldLabel);
+
+            // 📌 初始 Transform
+            DrawTransformEditor(script, "初始 Transform", DeviceType.Default, ref script.defaultTransform, targetTransform);
+
+            // 📌 iPhone Transform
+            DrawTransformEditor(script, "iPhone Transform", DeviceType.iPhone, ref script.iPhoneTransform, targetTransform);
+
+            // 📌 iPad Transform
+            DrawTransformEditor(script, "iPad Transform", DeviceType.iPad, ref script.iPadTransform, targetTransform);
+
+            EditorGUILayout.Space();
+            if (GUILayout.Button("自动 Transform 适配"))
+            {
+                script.ApplyTransform();
+            }
+        }
+
+        // 📌 可视化 TransformData
+        private void DrawTransformEditor(UIAdaptiveTransform script, string title, DeviceType deviceType, ref TransformData transformData, Transform targetTransform)
+        {
+            EditorGUILayout.LabelField(title, EditorStyles.boldLabel);
+            EditorGUI.indentLevel++;
+
+            // 直接修改 transformData,而不是创建新的变量
+            transformData.rotation = EditorGUILayout.Vector3Field("Rotation (Euler)", transformData.rotation);
+            transformData.scale = EditorGUILayout.Vector3Field("Scale", transformData.scale);
+
+            // 📌 直接应用当前数据到 Transform 组件
+            if (GUILayout.Button("应用 " + deviceType + " Transform"))
+            {
+                targetTransform.eulerAngles = transformData.rotation;
+                targetTransform.localScale = transformData.scale;
+
+                // 记录修改,确保数据保存
+                Undo.RecordObject(script, "Set " + deviceType + " Transform");
+                EditorUtility.SetDirty(script);
+            }
+
+            // 📌 获取当前 Transform 组件的值并赋值给当前布局
+            if (deviceType != DeviceType.Default)
+            {
+                if (GUILayout.Button("获取当前组件的值"))
+                {
+                    transformData = new TransformData(targetTransform);  // 直接更新 transformData
+
+                    // 把数据存储到对应的 Transform 变量
+                    if (deviceType == DeviceType.iPhone)
+                    {
+                        script.iPhoneTransform = transformData;
+                    }
+                    else if (deviceType == DeviceType.iPad)
+                    {
+                        script.iPadTransform = transformData;
+                    }
+
+                    Undo.RecordObject(script, "Get " + deviceType + " Transform");
+                    EditorUtility.SetDirty(script);
+                }
+            }
+
+            EditorGUI.indentLevel--;
+            EditorGUILayout.Space();
+        }
+    }
+}

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

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

+ 81 - 0
Assets/SmartBow/Scripts/AdaptUI/Editor/UICanvasScalerAdaptiveEditor.cs

@@ -0,0 +1,81 @@
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace AdaptUI
+{
+    [CustomEditor(typeof(UICanvasScalerAdaptive))]
+    public class UICanvasScalerAdaptiveEditor : Editor
+    {
+        private enum DeviceType { Default, iPhone, iPad }
+
+        public override void OnInspectorGUI()
+        {
+            UICanvasScalerAdaptive script = (UICanvasScalerAdaptive)target;
+            CanvasScaler canvasScaler = script.GetComponent<CanvasScaler>();
+
+            EditorGUILayout.Space();
+            EditorGUILayout.LabelField("🎛 自定义 CanvasScaler 适配", EditorStyles.boldLabel);
+
+            // 📌 默认 Scaler
+            DrawScalerEditor(script, "默认 Scaler", DeviceType.Default, ref script.defaultScaler, canvasScaler);
+
+            // 📌 iPhone Scaler
+            DrawScalerEditor(script, "iPhone Scaler", DeviceType.iPhone, ref script.iPhoneScaler, canvasScaler);
+
+            // 📌 iPad Scaler
+            DrawScalerEditor(script, "iPad Scaler", DeviceType.iPad, ref script.iPadScaler, canvasScaler);
+
+            EditorGUILayout.Space();
+            if (GUILayout.Button("自动 CanvasScaler 适配"))
+            {
+                script.ApplyScaler();
+            }
+        }
+
+        private void DrawScalerEditor(UICanvasScalerAdaptive script, string title, DeviceType deviceType, ref CanvasScalerData scalerData, CanvasScaler canvasScaler)
+        {
+            EditorGUILayout.LabelField(title, EditorStyles.boldLabel);
+            EditorGUI.indentLevel++;
+
+            // 直接修改 scalerData,而不是创建新的变量
+            scalerData.referenceResolution = EditorGUILayout.Vector2Field("Reference Resolution", scalerData.referenceResolution);
+            scalerData.matchWidthOrHeight = EditorGUILayout.Slider("Match Width Or Height", scalerData.matchWidthOrHeight, 0f, 1f);
+
+            // 📌 直接应用当前数据到 CanvasScaler 组件
+            if (GUILayout.Button("应用 " + deviceType + " Scaler"))
+            {
+                canvasScaler.referenceResolution = scalerData.referenceResolution;
+                canvasScaler.matchWidthOrHeight = scalerData.matchWidthOrHeight;
+
+                // 记录修改,确保数据保存
+                Undo.RecordObject(script, "Set " + deviceType + " Scaler");
+                EditorUtility.SetDirty(script);
+            }
+
+            // 📌 获取当前 CanvasScaler 组件的值并赋值给当前布局
+            if (deviceType != DeviceType.Default)
+            {
+                if (GUILayout.Button("获取当前组件的值"))
+                {
+                    scalerData = new CanvasScalerData(canvasScaler);
+
+                    if (deviceType == DeviceType.iPhone)
+                    {
+                        script.iPhoneScaler = scalerData;
+                    }
+                    else if (deviceType == DeviceType.iPad)
+                    {
+                        script.iPadScaler = scalerData;
+                    }
+
+                    Undo.RecordObject(script, "Get " + deviceType + " Scaler");
+                    EditorUtility.SetDirty(script);
+                }
+            }
+
+            EditorGUI.indentLevel--;
+            EditorGUILayout.Space();
+        }
+    }
+}

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

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

+ 94 - 0
Assets/SmartBow/Scripts/AdaptUI/Editor/UIHorizomtalLayoutGroupEditor.cs

@@ -0,0 +1,94 @@
+#if UNITY_EDITOR
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace AdaptUI
+{
+
+    [CustomEditor(typeof(UIHorizontalLayoutGroup))]
+    [CanEditMultipleObjects]
+    public class UIHorizontalLayoutGroupEditor : Editor
+    {
+        private SerializedProperty defaultLayout;
+        private SerializedProperty iPhoneLayout;
+        private SerializedProperty iPadLayout;
+
+        private void OnEnable()
+        {
+            defaultLayout = serializedObject.FindProperty("defaultLayout");
+            iPhoneLayout = serializedObject.FindProperty("iPhoneLayout");
+            iPadLayout = serializedObject.FindProperty("iPadLayout");
+        }
+
+        public override void OnInspectorGUI()
+        {
+            UIHorizontalLayoutGroup script = (UIHorizontalLayoutGroup)target;
+            HorizontalLayoutGroup horizontal = script.GetComponent<HorizontalLayoutGroup>();
+
+            EditorGUILayout.Space();
+            EditorGUILayout.LabelField("UI 垂直布局", EditorStyles.boldLabel);
+
+            DrawLayoutEditor(script, "默认布局", ref script.defaultLayout, horizontal);
+            DrawLayoutEditor(script, "iPhone 布局", ref script.iPhoneLayout, horizontal);
+            DrawLayoutEditor(script, "iPad 布局", ref script.iPadLayout, horizontal);
+
+            EditorGUILayout.Space();
+            if (GUILayout.Button("应用当前布局"))
+            {
+                script.ApplyLayout();
+            }
+
+            serializedObject.ApplyModifiedProperties();
+        }
+
+        private void DrawLayoutEditor(UIHorizontalLayoutGroup script, string title, ref UILayoutData layout, HorizontalLayoutGroup horizontalLayout)
+        {
+            EditorGUILayout.LabelField(title, EditorStyles.boldLabel);
+            EditorGUI.indentLevel++;
+
+            EditorGUILayout.LabelField("Padding", EditorStyles.boldLabel);
+            layout.paddingLeft = EditorGUILayout.IntField("Left", layout.paddingLeft);
+            layout.paddingRight = EditorGUILayout.IntField("Right", layout.paddingRight);
+            layout.paddingTop = EditorGUILayout.IntField("Top", layout.paddingTop);
+            layout.paddingBottom = EditorGUILayout.IntField("Bottom", layout.paddingBottom);
+
+            layout.spacing = EditorGUILayout.FloatField("Spacing", layout.spacing);
+            layout.childAlignment = (TextAnchor)EditorGUILayout.EnumPopup("Child Alignment", layout.childAlignment);
+            layout.reverseArrangement = EditorGUILayout.Toggle("Reverse Arrangement", layout.reverseArrangement);
+            layout.controlChildWidth = EditorGUILayout.Toggle("Control Child Width", layout.controlChildWidth);
+            layout.controlChildHeight = EditorGUILayout.Toggle("Control Child Height", layout.controlChildHeight);
+            layout.useChildScaleWidth = EditorGUILayout.Toggle("Use Child Scale Width", layout.useChildScaleWidth);
+            layout.useChildScaleHeight = EditorGUILayout.Toggle("Use Child Scale Height", layout.useChildScaleHeight);
+            layout.childForceExpandWidth = EditorGUILayout.Toggle("Child Force Expand Width", layout.childForceExpandWidth);
+            layout.childForceExpandHeight = EditorGUILayout.Toggle("Child Force Expand Height", layout.childForceExpandHeight);
+
+            if (GUILayout.Button("应用 " + title + " 布局"))
+            {
+                //script.ApplyLayout();
+                horizontalLayout.padding.left = layout.paddingLeft;
+                horizontalLayout.padding.right = layout.paddingRight;
+                horizontalLayout.padding.top = layout.paddingTop;
+                horizontalLayout.padding.bottom = layout.paddingBottom;
+                horizontalLayout.spacing = layout.spacing;
+                horizontalLayout.childAlignment = layout.childAlignment;
+                horizontalLayout.reverseArrangement = layout.reverseArrangement;
+                horizontalLayout.childControlWidth = layout.controlChildWidth;
+                horizontalLayout.childControlHeight = layout.controlChildHeight;
+                horizontalLayout.childScaleWidth = layout.useChildScaleWidth;
+                horizontalLayout.childScaleHeight = layout.useChildScaleHeight;
+                horizontalLayout.childForceExpandWidth = layout.childForceExpandWidth;
+                horizontalLayout.childForceExpandHeight = layout.childForceExpandHeight;
+
+                Undo.RecordObject(script, "Set " + title + " Layout");
+                EditorUtility.SetDirty(script);
+            }
+
+            EditorGUI.indentLevel--;
+            EditorGUILayout.Space();
+        }
+    }
+
+
+}
+#endif

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

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

+ 90 - 0
Assets/SmartBow/Scripts/AdaptUI/Editor/UIVerticalLayoutGroupEditor.cs

@@ -0,0 +1,90 @@
+#if UNITY_EDITOR
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace AdaptUI
+{
+    [CustomEditor(typeof(UIVerticalLayoutGroup))]
+    [CanEditMultipleObjects]
+    public class UIVerticalLayoutGroupEditor : Editor
+    {
+        private SerializedProperty defaultLayout;
+        private SerializedProperty iPhoneLayout;
+        private SerializedProperty iPadLayout;
+
+        private void OnEnable()
+        {
+            defaultLayout = serializedObject.FindProperty("defaultLayout");
+            iPhoneLayout = serializedObject.FindProperty("iPhoneLayout");
+            iPadLayout = serializedObject.FindProperty("iPadLayout");
+        }
+
+        public override void OnInspectorGUI()
+        {
+            UIVerticalLayoutGroup script = (UIVerticalLayoutGroup)target;
+            VerticalLayoutGroup vertical = script.GetComponent<VerticalLayoutGroup>();
+
+            EditorGUILayout.Space();
+            EditorGUILayout.LabelField("UI 垂直布局", EditorStyles.boldLabel);
+
+            DrawLayoutEditor(script, "默认布局", ref script.defaultLayout, vertical);
+            DrawLayoutEditor(script, "iPhone 布局", ref script.iPhoneLayout, vertical);
+            DrawLayoutEditor(script, "iPad 布局", ref script.iPadLayout, vertical);
+
+            EditorGUILayout.Space();
+            if (GUILayout.Button("应用当前布局"))
+            {
+                script.ApplyLayout();
+            }
+
+            serializedObject.ApplyModifiedProperties();
+        }
+
+        private void DrawLayoutEditor(UIVerticalLayoutGroup script, string title, ref UILayoutData layout, VerticalLayoutGroup verticalLayout)
+        {
+            EditorGUILayout.LabelField(title, EditorStyles.boldLabel);
+            EditorGUI.indentLevel++;
+
+            EditorGUILayout.LabelField("Padding", EditorStyles.boldLabel);
+            layout.paddingLeft = EditorGUILayout.IntField("Left", layout.paddingLeft);
+            layout.paddingRight = EditorGUILayout.IntField("Right", layout.paddingRight);
+            layout.paddingTop = EditorGUILayout.IntField("Top", layout.paddingTop);
+            layout.paddingBottom = EditorGUILayout.IntField("Bottom", layout.paddingBottom);
+
+            layout.spacing = EditorGUILayout.FloatField("Spacing", layout.spacing);
+            layout.childAlignment = (TextAnchor)EditorGUILayout.EnumPopup("Child Alignment", layout.childAlignment);
+            layout.reverseArrangement = EditorGUILayout.Toggle("Reverse Arrangement", layout.reverseArrangement);
+            layout.controlChildWidth = EditorGUILayout.Toggle("Control Child Width", layout.controlChildWidth);
+            layout.controlChildHeight = EditorGUILayout.Toggle("Control Child Height", layout.controlChildHeight);
+            layout.useChildScaleWidth = EditorGUILayout.Toggle("Use Child Scale Width", layout.useChildScaleWidth);
+            layout.useChildScaleHeight = EditorGUILayout.Toggle("Use Child Scale Height", layout.useChildScaleHeight);
+            layout.childForceExpandWidth = EditorGUILayout.Toggle("Child Force Expand Width", layout.childForceExpandWidth);
+            layout.childForceExpandHeight = EditorGUILayout.Toggle("Child Force Expand Height", layout.childForceExpandHeight);
+
+            if (GUILayout.Button("应用 " + title + " 布局"))
+            {
+                verticalLayout.padding.left = layout.paddingLeft;
+                verticalLayout.padding.right = layout.paddingRight;
+                verticalLayout.padding.top = layout.paddingTop;
+                verticalLayout.padding.bottom = layout.paddingBottom;
+                verticalLayout.spacing = layout.spacing;
+                verticalLayout.childAlignment = layout.childAlignment;
+                verticalLayout.reverseArrangement = layout.reverseArrangement;
+                verticalLayout.childControlWidth = layout.controlChildWidth;
+                verticalLayout.childControlHeight = layout.controlChildHeight;
+                verticalLayout.childScaleWidth = layout.useChildScaleWidth;
+                verticalLayout.childScaleHeight = layout.useChildScaleHeight;
+                verticalLayout.childForceExpandWidth = layout.childForceExpandWidth;
+                verticalLayout.childForceExpandHeight = layout.childForceExpandHeight;
+
+                Undo.RecordObject(script, "Set " + title + " Layout");
+                EditorUtility.SetDirty(script);
+            }
+
+            EditorGUI.indentLevel--;
+            EditorGUILayout.Space();
+        }
+    }
+}
+#endif

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

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

+ 35 - 0
Assets/SmartBow/Scripts/AdaptUI/GameViewSizeHelper.cs

@@ -0,0 +1,35 @@
+
+using UnityEngine;
+
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+namespace AdaptUI
+{
+    public static class GameViewSizeHelper
+    {
+        public static Vector2 GetGameViewSize()
+        {
+#if UNITY_EDITOR
+            return GetGameViewSize_Editor();
+#else
+        return new Vector2(Screen.width, Screen.height); // 运行时使用 Screen 分辨率
+#endif
+        }
+
+#if UNITY_EDITOR
+        // private static Vector2 GetGameViewSize_Editor()
+        // {
+        //     System.Type gameViewType = System.Type.GetType("UnityEditor.GameView,UnityEditor");
+        //     var gameView = EditorWindow.GetWindow(gameViewType);
+        //     var gameViewSize = gameView.position.size; // 获取 Game 视图窗口大小
+        //     return new Vector2(gameViewSize.x, gameViewSize.y);
+        // }
+
+        public static Vector2 GetGameViewSize_Editor()
+        {
+            return Handles.GetMainGameViewSize();
+        }
+#endif
+    }
+}

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

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

+ 124 - 0
Assets/SmartBow/Scripts/AdaptUI/UIAdaptiveRect.cs

@@ -0,0 +1,124 @@
+using UnityEngine;
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+
+namespace AdaptUI
+{
+    [System.Serializable]
+    public struct RectTransformData
+    {
+        public Vector2 anchorMin;
+        public Vector2 anchorMax;
+        public Vector2 anchoredPosition;
+        public Vector2 sizeDelta;
+
+        public RectTransformData(RectTransform rect)
+        {
+            anchorMin = rect.anchorMin;
+            anchorMax = rect.anchorMax;
+            anchoredPosition = rect.anchoredPosition;
+            sizeDelta = rect.sizeDelta;
+        }
+
+        public bool IsValid()
+        {
+            return anchorMin != Vector2.zero || anchorMax != Vector2.zero || anchoredPosition != Vector2.zero || sizeDelta != Vector2.zero;
+        }
+    }
+
+    [ExecuteAlways]
+    [RequireComponent(typeof(RectTransform))]
+    public class UIAdaptiveRect : MonoBehaviour
+    {
+        [Header("初始 布局")]
+        [SerializeField] public RectTransformData defaultLayout;
+        [Header("iPhone 布局")]
+        [SerializeField] public RectTransformData iPhoneLayout;
+
+        [Header("iPad 布局")]
+        [SerializeField] public RectTransformData iPadLayout;
+
+        private RectTransform rectTransform;
+
+        //添加 isInitialized 变量,默认未初始化
+        private bool isInitialized = false;
+
+        private void Awake()
+        {
+            rectTransform = GetComponent<RectTransform>();
+#if UNITY_EDITOR
+            // 如果未初始化,不要应用布局,等待 Reset() 赋值
+            if (!isInitialized)
+            {
+                //Debug.Log("UIAdaptiveRect: 未初始化,跳过 ApplyLayout()");
+                return;
+            }
+#endif
+            ApplyLayout();  // 运行时应用 UI 适配
+        }
+
+
+#if UNITY_EDITOR
+        private void Reset()
+        {
+            rectTransform = GetComponent<RectTransform>();
+
+            if (!isInitialized)
+            {
+                //Debug.Log("UIAdaptiveRect: 首次挂载,自动记录当前 UI 作为默认布局");
+                defaultLayout = new RectTransformData(rectTransform);
+                iPhoneLayout = new RectTransformData(rectTransform);
+                iPadLayout = new RectTransformData(rectTransform);
+                isInitialized = true;  // ✅ 记录已初始化,避免 Awake() 误触
+            }
+        }
+
+        // private void OnValidate()
+        // {
+        //     if (rectTransform == null)
+        //         rectTransform = GetComponent<RectTransform>();
+
+        //     if (!iPhoneLayout.IsValid() || !iPadLayout.IsValid())
+        //     {
+        //         Debug.Log("📌 OnValidate: 重新初始化 iPhone & iPad 布局");
+        //         iPhoneLayout = new RectTransformData(rectTransform);
+        //         iPadLayout = new RectTransformData(rectTransform);
+        //     }
+        // }
+
+#endif
+
+
+        public void ApplyLayout()
+        {
+            if (rectTransform == null) return;
+
+            DeviceTypeHelper.DeviceType deviceType = DeviceTypeHelper.DetectDeviceType();
+            RectTransformData targetLayout = (deviceType == DeviceTypeHelper.DeviceType.iPhone) ? iPhoneLayout : iPadLayout;
+
+            rectTransform.anchorMin = targetLayout.anchorMin;
+            rectTransform.anchorMax = targetLayout.anchorMax;
+            rectTransform.anchoredPosition = targetLayout.anchoredPosition;
+            rectTransform.sizeDelta = targetLayout.sizeDelta;
+           // Debug.Log($"📌 UI 适配完成: 设备 = {deviceType}, 位置 = {targetLayout.anchoredPosition}");
+        }
+
+        public RectTransformData GetLayout(bool isIpad)
+        {
+            return isIpad ? iPadLayout : iPhoneLayout;
+        }
+        public void SetLayout(bool isIpad, RectTransform rect)
+        {
+            if (isIpad)
+            {
+                iPadLayout = new RectTransformData(rect);
+            }
+            else
+            {
+                iPhoneLayout = new RectTransformData(rect);
+            }
+           // Debug.Log($"📌 UIAdaptiveRect: 设置布局为 {(isIpad ? "iPad" : "iPhone")}");
+        }
+    }
+}

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

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

Some files were not shown because too many files changed in this diff